4.6. Informaci�n espec�fica de Red Hat Enterprise Linux
Debido a la complejidad inherente de un sistema operativo con memoria virtual en demanda, la supervisi�n de los recursos relacionados con la memoria bajo Red Hat Enterprise Linux, pueden ser un poco confusos. Por lo tanto, lo mejor es comenzar con las herramientas m�s directas y partir de all�.
Usando free es posible obtener una vista general concisa (quiz�s hasta un poco simplistica) de la utilizaci�n de la memoria principal y de intercambio. He aqu� un ejemplo:
total used free shared buffers cached
Mem: 1288720 361448 927272 0 27844 187632
-/+ buffers/cache: 145972 1142748
Swap: 522104 0 522104
|
Podemos ver que este sistema tiene 1.2GB de RAM, de los que solamente 350MB estan realmente en uso. Como se puede esperar para un sistema con esta cantidad de RAM disponible, no se utiliza nada de los 500MB de memoria de intercambio.
Compare ese ejemplo con el que sigue:
total used free shared buffers cached
Mem: 255088 246604 8484 0 6492 111320
-/+ buffers/cache: 128792 126296
Swap: 530136 111308 418828
|
Este sistema tiena alrededor de 256MB de RAM, la mayor�a de la cual est� en uso, dejando solamente 8MB libres. M�s de 100MB de los 512MB de swap estan en uso. A�n cuando el sistema est� ciertamente m�s limitado en t�rminos de memoria que el primer sistema, para determinar si esta limitaci�n de memoria est� causando problemas de rendimiento, tenemos que investigar un poco m�s.
vmstat, a�n cuando es m�s cr�ptico que free, tiene el beneficio de que muestra m�s que simplemente las estad�sticas de utilizaci�n de memoria. He aqu� la salida de vmstat 1 10:
procs memory swap io system cpu
r b w swpd free buff cache si so bi bo in cs us sy id
2 0 0 111304 9728 7036 107204 0 0 6 10 120 24 10 2 89
2 0 0 111304 9728 7036 107204 0 0 0 0 526 1653 96 4 0
1 0 0 111304 9616 7036 107204 0 0 0 0 552 2219 94 5 1
1 0 0 111304 9616 7036 107204 0 0 0 0 624 699 98 2 0
2 0 0 111304 9616 7052 107204 0 0 0 48 603 1466 95 5 0
3 0 0 111304 9620 7052 107204 0 0 0 0 768 932 90 4 6
3 0 0 111304 9440 7076 107360 92 0 244 0 820 1230 85 9 6
2 0 0 111304 9276 7076 107368 0 0 0 0 832 1060 87 6 7
3 0 0 111304 9624 7092 107372 0 0 16 0 813 1655 93 5 2
2 0 2 111304 9624 7108 107372 0 0 0 972 1189 1165 68 9 23
|
Durante esta muestra de 10 segundos, la cantidad de memoria libre (el campo free) var�a de alguna forma, y hay un poco de E/S relacionada con la memoria de intercambio (los campos si y so), pero en general, este sistema est� funcionando bien. Sin embargo, se duda cu�nta carga adicional de trabajo pueda manejar, dada la utilizaci�n actual de memoria.
Cuando se investiga sobre cuestiones relacionadas a la memoria, a menudo es necesario determinar c�mo el subsistema de memoria virtual de Red Hat Enterprise Linux est� utilizando el sistema de memoria. Usando sar, es posible examinar este aspecto de rendimiento del sistema con muchos m�s detalles.
Revisando el informe de sar -r, podemos examinar la utilizaci�n de memoria principal y de intercambio m�s de cerca:
Linux 2.4.20-1.1931.2.231.2.10.ent (pigdog.example.com) 07/22/2003
12:00:01 AM kbmemfree kbmemused %memused kbmemshrd kbbuffers kbcached
12:10:00 AM 240468 1048252 81.34 0 133724 485772
12:20:00 AM 240508 1048212 81.34 0 134172 485600
…
08:40:00 PM 934132 354588 27.51 0 26080 185364
Average: 324346 964374 74.83 0 96072 467559
|
Los campos kbmemfree y kbmemused muestran las estad�sticas t�picas de memoria libre y en uso, mostrando el porcentage de memoria utilizada en el campo %memused. Los campos kbbuffers and kbcached muestran cu�ntos kilobytes de memoria son asignados a la memoria intermedia (buffers) y a la cach� de datos global del sistema.
El campo kbmemshrd siempre es cero para los sistemas usando el kernel 2.4 de Linux (tal como Red Hat Enterprise Linux).
Se han truncado las l�neas de este informe para que encajen en la p�gina. He aqu� el resto de cada l�nea, con la marca de tiempo agregada a la izquierda para facilitar la lectura:
12:00:01 AM kbswpfree kbswpused %swpused
12:10:00 AM 522104 0 0.00
12:20:00 AM 522104 0 0.00
…
08:40:00 PM 522104 0 0.00
Average: 522104 0 0.00
|
Para la utilizaci�n de la memoria de intercambio, los campos kbswpfree y kbswpused muestran la cantidad de espacio de intercambio libre y utilizado, en kilobytes, con el campo %swpused mostrando el espacio de intercambio utilizado como un porcentaje.
Utilice el informe sar -W para conocer un poco m�s sobre la actividad de memoria de intercambio. A continuaci�n se muestra un ejemplo:
Linux 2.4.20-1.1931.2.231.2.10.entsmp (raptor.example.com) 07/22/2003
12:00:01 AM pswpin/s pswpout/s
12:10:01 AM 0.15 2.56
12:20:00 AM 0.00 0.00
…
03:30:01 PM 0.42 2.56
Average: 0.11 0.37
|
Observe que, en promedio, hay tres veces menos p�ginas tra�das desde la memoria de intercambio (pswpin/s) que las que se devuelven a esta (pswpout/s).
Para entender mejor c�mo se utilizan las p�ginas, consulte el informe sar -B:
Linux 2.4.20-1.1931.2.231.2.10.entsmp (raptor.example.com) 07/22/2003
12:00:01 AM pgpgin/s pgpgout/s activepg inadtypg inaclnpg inatarpg
12:10:00 AM 0.03 8.61 195393 20654 30352 49279
12:20:00 AM 0.01 7.51 195385 20655 30336 49275
…
08:40:00 PM 0.00 7.79 71236 1371 6760 15873
Average: 201.54 201.54 169367 18999 35146 44702
|
Aqu� podemos determinar cu�ntos bloques por segundo son paginados desde el disco (pgpgin/s) y paginados de vuelta al disco (pgpgout/s). Estas estad�sticas sirven como un bar�metro para la actividad general de la memoria virtual.
Sin embargo, se puede aprender mucho m�s examinando los otros campos en este informe. El kernel de Red Hat Enterprise Linux marca todas las p�ginas como activas o inactivas. Como su nombre lo implica, las p�ginas activas son las que est�n siendo utilizadas de alguna manera (como p�ginas de procesos o de memoria intermedia, por ejemplo), mientras que las inactivas no. Este informe de ejemplo muestra que la lista de p�ginas activas (el campo activepg) promedia aproximadamente 660MB[1].
El resto de los campos en este informe se concentran en la lista inactiva — p�ginas que, por alguna raz�n o la otra, no se han utilizado recientemente. El campo inadtypg muestra cu�ntas p�ginas inactivas estan sucias (dirty o modificadas) y requieren ser escritas al disco. Por otro lado, el campo inaclnpg, muestra cu�ntas p�ginas inactivas est�n limpias (clean o sin modificar) y no necesitan ser escritas a disco.
El campo inatarpg representa el tama�o deseado de la lista inactiva. Este valor es calculado por el kernel de Linux y tiene un tama�o tal que la lista inactiva permanezca lo suficientemente grande para actuar como un fondo para prop�sitos de reemplazo de p�ginas.
Utilice el informe sar -R para datos adicionales sobre el status de p�ginas (espec�ficamente, la frecuencia con la que las p�ginas cambian de estado). He aqu� un ejemplo de este informe:
Linux 2.4.20-1.1931.2.231.2.10.entsmp (raptor.example.com) 07/22/2003
12:00:01 AM frmpg/s shmpg/s bufpg/s campg/s
12:10:00 AM -0.10 0.00 0.12 -0.07
12:20:00 AM 0.02 0.00 0.19 -0.07
…
08:50:01 PM -3.19 0.00 0.46 0.81
Average: 0.01 0.00 -0.00 -0.00
|
Las estad�sticas sobre este informe particular sar, son �nicas, en el sentido de que pueden ser positivas, negativas o cero. Cuando son positivas, el valor indica la tasa a la que se estan incrementando este tipo de p�ginas. Si es negativo, el valor indica la tasa a la que se estan reduciendo este tipo de p�ginas. Un valor de cero indica que las p�ginas de este tipo no se est�n incrementando ni disminuyendo.
En este ejemplo, la �ltima parte muestra que se asignan un poco m�s de tres p�ginas por segundo desde la lista de p�ginas libres (el campo frmpg/s) y se a�ade casi una p�gina por segundo a la p�gina cach� (el campo campg/s). La lista de p�ginas utilizadas como memoria de intercambio (el campo bugpg/s) gana aproximadamente una p�gina cada dos segundos, mientras que la lista de p�ginas de memoria compartidas (el campo shmpg/s) ni gana ni pierde p�ginas.