Determinación de uso de memoria con el mandato vmstat

El mandato vmstat resume la memoria virtual total activa utilizada por todos los procesos del sistema, así como el número de tramas de páginas de memoria real de la lista libre.

La memoria virtual activa se define como el número de páginas de segmentos de trabajo de memoria virtual que se han tocado realmente. Este número puede ser mayor que el número de tramas de páginas reales en la máquina, porque algunas de las páginas de memoria virtual activas pueden haberse grabado en el espacio de paginación.

Para determinar si a un sistema puede faltarle memoria o si es necesario realizar algún ajuste de memoria, ejecute el mandato vmstat durante un intervalo establecido y examine las columnas pi y po del informe resultante. Estas columnas indican el número de entradas de páginas por segundo y el número de salidas de páginas por segundo. Si los valores son constantemente distintos de cero, es posible que haya un cuello de botella de memoria. Tener valores ocasionales que no sean cero no es una preocupación porque la paginación es el principio principal de la memoria virtual.
# vmstat 2 10
kthr     memory             page              faults        cpu
----- ----------- ------------------------ ------------ -----------
 r  b   avm   fre  re  pi  po  fr   sr  cy  in   sy  cs us sy id wa
 1  3 113726   124   0  14   6 151  600   0 521 5533 816 23 13  7 57
 0  3 113643   346   0   2  14 208  690   0 585 2201 866 16  9  2 73
 0  3 113659   135   0   2   2 108  323   0 516 1563 797 25  7  2 66
 0  2 113661   122   0   3   2 120  375   0 527 1622 871 13  7  2 79
 0  3 113662   128   0  10   3 134  432   0 644 1434 948 22  7  4 67
 1  5 113858   238   0  35   1 146  422   0 599 5103 903 40 16  0 44
 0  3 113969   127   0   5  10 153  529   0 565 2006 823 19  8  3 70
 0  3 113983   125   0  33   5 153  424   0 559 2165 921 25  8  4 63
 0  3 113682   121   0  20   9 154  470   0 608 1569 1007 15  8  0 77
 0  4 113701   124   0   3  29 228  635   0 674 1730 1086 18  9  0 73

En la salida de ejemplo anterior, observe que la alta E/S espera en la salida y también el número de hebras de la cola bloqueada. Otras actividades de E/S pueden provocar una espera de E/S, pero en este caso en concreto, es muy probable que la espera de E/S se deba a la entrada y salida de páginas del espacio de paginación.

Para ver si el sistema tiene problemas de rendimiento con su VMM, examine las columnas bajo memoria y página:

  • memory

    Proporciona información sobre la memoria real y virtual.

    • avm

      La memoria virtual activa,avm, columna representa el número de páginas de memoria virtual activas presentes en el momento en que se recopiló la muestra vmstat . La política de espacio de página diferida es la política predeterminada. En esta política, el valor deavmpuede ser mayor que el número de páginas de espacio de paginación utilizadas. La cabecera HTTPavmlas estadísticas no incluyen páginas de archivo.

    • fre

      La cabecera HTTPfremuestra el número promedio de páginas de memoria libre. Una página es un área de 4 KB de memoria real. El sistema mantiene un almacenamiento intermedio de páginas de memoria, denominado lista libre, que será fácilmente accesible cuando el VMM necesite espacio. El número mínimo de páginas que el VMM mantiene en la lista libre viene determinado por el parámetro minfree del mandato vmo. Para obtener más detalles, consulte Ajuste de sustitución de páginas VMM.

      Cuando una aplicación termina, todas sus páginas de trabajo se devuelven inmediatamente a la lista libre. Sin embargo, sus páginas persistentes o archivos permanecen en la RAM y no se vuelven a añadir a la lista libre hasta que el VMM las roba para otros programas. Las páginas persistentes también se liberan si se suprime el archivo correspondiente.

      Por esta razón, el valor de fre puede no indicar toda la memoria real que puede estar fácilmente disponible para su uso por procesos. Si se necesita una trama de página, las páginas persistentes relacionadas con las aplicaciones terminadas se encuentran entre las primeras que se entregan a otro programa.

      Si el valor fre está sustancialmente por encima del valor maxfree, es poco probable que el sistema esté hiperpaginando. La hiperpaginación significa que el sistema está continuamente paginando dentro y fuera. Sin embargo, si el sistema está experimentando una hiperpaginación, puede estar seguro de que el valor de fre será pequeño.

  • página

    Información sobre errores de página y actividad de paginación. Se promedian durante el intervalo y se muestran en unidades por segundo.

    • re
      Nota: Esta columna no está soportada actualmente.
    • pi

      La cabecera HTTPpidetalla el número de páginas paginadas desde el espacio de paginación. El espacio de paginación es la parte de la memoria virtual que reside en el disco. Se utiliza como un desbordamiento cuando la memoria se ha terminado de confirmar. El espacio de paginación consta de volúmenes lógicos dedicados al almacenamiento de páginas de conjunto de trabajo que se han robado de la memoria real. Cuando el proceso hace referencia a una página robada, se produce un error de página y se debe leer la página en la memoria del espacio de paginación.

      Debido a la variedad de configuraciones de hardware, software y aplicaciones, no hay un número absoluto que buscar. Este campo es importante como indicador clave de la actividad de espacio de paginación. Si se produce una entrada de página, debe haber una salida de página anterior para dicha página. También es probable que en un entorno con restricciones de memoria que cada entrada de página obligue a robar una página diferente y, por lo tanto, se produzca una salida de página.

    • po

      La columna po muestra el número (tasa) de páginas de salida al espacio de paginación. Siempre que se roba una página de almacenamiento de trabajo, se escribe en el espacio de paginación, si todavía no reside en el espacio de paginación o si se ha modificado. Si no se hace referencia de nuevo, permanecerá en el dispositivo de paginación hasta que el proceso termine o rechaza el espacio. Las referencias posteriores a las direcciones contenidas en las salidas de página con error dan como resultado errores de página, y el sistema vuelve a realizar la entrada de las páginas. Cuando un proceso termina normalmente, se libera cualquier espacio de paginación asignado a ese proceso. Si el sistema está leyendo en un número significativo de páginas persistentes, es posible que vea un aumento en po sin los aumentos correspondientes en pi. Esto no indica necesariamente una hiperpaginación, pero puede justificar la investigación de los patrones de acceso a datos de las aplicaciones.

    • fr

      Número de páginas que el algoritmo de sustitución de páginas ha liberado por segundo durante el intervalo. A medida que la rutina de sustitución de páginas de VMM explora la tabla de tramas de página o PFT, utiliza criterios para seleccionar qué páginas se van a robar para reponer la lista libre de marcos de memoria disponibles. Los criterios incluyen tanto tipos de páginas como páginas de trabajo (cálculo) y de archivo (persistentes). Solo porque se ha liberado una página no significa que se haya producido ninguna E/S. Por ejemplo, si una página de almacenamiento persistente (archivo) no se ha modificado, no se grabará de nuevo en el disco. Si no es necesaria la E/S, se necesitan recursos de sistema mínimos para liberar una página.

    • sr

      Número de páginas que el algoritmo de sustitución de páginas ha examinado por segundo durante el intervalo. Es posible que el algoritmo de sustitución de páginas tenga que explorar mucha tramas de página antes de que pueda robar lo suficiente para satisfacer los umbrales de sustitución de páginas. Cuanto mayor sea el valor de sr en comparación con el valor de fr, más difícil es que el algoritmo de sustitución de páginas encuentre páginas elegibles que robar.

    • cy

      Número de ciclos por segundo del algoritmo de reloj. El VMM utiliza una técnica conocida como el algoritmo de reloj para seleccionar páginas que se van a sustituir. Esta técnica aprovecha un bit referenciado para cada página como una indicación de qué páginas se han utilizado recientemente (referenciadas). Cuando se llama a la rutina de robo de páginas, se pasa por la PFT, examinando el bit referenciado de cada página.

      La columna cy muestra cuántas veces por segundo el código de sustitución de página ha explorado la PFT. Dado que la lista libre se puede reponer sin una exploración completa del PFT y porque todos los campos de vmstat se notifican como enteros, este campo suele ser cero.

Una forma de determinar la cantidad apropiada de RAM para un sistema es buscar el valor más alto para avm tal como muestra el mandato vmstat. Multiplique ese valor por 4 K para obtener el número de bytes y luego compare el valor con el número de bytes de RAM en el sistema. Lo ideal es que avm sea ser menor que la RAM total. Si no es así, se producirá una cantidad de paginación de memoria virtual. La cantidad de paginación que se produzca dependerá de la diferencia entre los dos valores. Recuerde que la idea de la memoria virtual es que nos da la capacidad de abordar más memoria de la que tenemos (parte de la memoria está en la memoria RAM y el resto está en el espacio de paginación). Pero si hay mucha más memoria virtual que memoria real, esto podría causar una paginación excesiva que luego dé lugar a retrasos. Si avm es inferior a la RAM, la paginación del espacio de paginación podría deberse a que la RAM se llenaba con páginas de archivo. En ese caso, el ajuste de los valores minperm,maxperm y maxclient podría reducir la cantidad de paginación de espacio de paginación. Consulte Ajuste de sustitución de páginas VMM para obtener más información.