Resumen:

Resumen:

Pregunta: ¿Cómo podemos informar el uso de memoria REAL (sinel caché!) usandonmonovmstatosvmonen AIX 6?

nmon:
ingrese la descripción de la imagen aquí

vmstat:
ingrese la descripción de la imagen aquí

svmon:
ingrese la descripción de la imagen aquí

Al igual que en Linux, podemos usar el comando gratuito, pero no está disponible en AIX:

[user@notebook ~]$ free -m
         total       used       free     shared    buffers     cached
Mem:          7797       4344       3453          0        219       2745
-/+ buffers/cache:       1379       6417
Swap:         2047          0       2047
[user@notebook ~]$ free -m | grep cache: | awk '{print $3}'
1379
[user@notebook ~]$ 

Respuesta1

Versión corta: mire las páginas clnt+ en uso persen la svmon -Gsalida (la unidad es de 4k páginas) si desea conocer todo el caché de archivos, o mire vmstat -vy mire las "páginas de archivos" para el caché de archivos excluyendo los ejecutables (misma unidad).


Debería consultar el siguiente artículo si desea una buena descripción general de lo que está sucediendo:Descripción general del reemplazo de páginas AIX.

Para un resumen extremadamente breve, la memoria en AIX se clasifica de dos maneras:

  • Memoria de trabajo versus memoria permanente

    • La memoria de trabajo es la memoria de proceso (pila, montón, memoria compartida) y del núcleo. Si es necesario sacar páginas de ese tipo de memoria, se intercambia.

    • La memoria permanente es el caché de archivos. Si es necesario paginarlo, regresa al sistema de archivos de donde vino (para las páginas sucias, las páginas limpias simplemente se reciclan). Esto se subdivide en páginas que no son de cliente (o persistentes) para sistemas de archivos JFS y páginas de cliente para JFS2, NFS y posiblemente otras.

  • Páginas computacionales vs no computacionales.

    • Las páginas computacionales son nuevamente datos de proceso y del núcleo, además de datos de texto de proceso (es decir, páginas que almacenan en caché el código/ejecutable).

    • Los no computacionales son los otros: caché de archivos que no es ejecutable (o biblioteca compartida).

svmon -G(Por cierto, svmon -G -O unit=MBes un poco más amigable) te brinda trabajo versus páginas permanentes. La workcolumna es, bueno, memoria de trabajo. La memoria permanente se obtiene sumando las columnas pers(JFS) y clnt(JFS2).

En su caso, tiene alrededor de 730 MB de páginas permanentes, respaldadas por sus sistemas de archivos (186151 * 4k páginas).

Ahora el topas"widget" superior derecho FileSystemCache (numperm)muestra algo ligeramente diferente, y obtendrías los mismos datos con vmstat -v: son sólo páginas permanentes no computacionales. es decir, lo mismo que arriba, pero excluyendo las páginas para ejecutables.

En su caso, son aproximadamente 350 MB (2,2% de 16G).

De cualquier manera, eso realmente no es mucho caché.

Respuesta2

El comando que estás buscando (en mi humilde opinión) es:

# svmon -P -O filtertype=working,segment=off,filtercat=exclusive,unit=MB

Las opciones clave aquí son:

  • 'tipo de filtro=trabajando' # también conocido como, sin caché;
  • 'segmento=off' # en realidad es el valor predeterminado cuando se usa -O
  • 'filtercat=exclusive' # no incluye memoria compartida ni cajero automático del kernel
  • 'unidad=MB' # ¿quién quiere calcular a partir del número de páginas?

Y querrás ver otras opciones como -C (relacionada con el nombre del comando, algunos ejemplos a continuación) y quizás -U (relacionada con el usuario)

++++ inicio del comentario ++++

insertando lo que habría ingresado como comentario a su pregunta, pero carezco de reputación, como nuevo usuario aquí.

Su salida de vmstat me dice más que solo su situación actual, ya que es la salida de una sola línea, es histórica, y sospecho que ha estado teniendo problemas de memoria, ya que muestra un historial de pi/po (espacio de paginación página en/espacio de paginación salida de página)

Otras columnas de interés son las columnas fr/sr:

  • fr: páginas liberadas por lrud (el demonio utilizado menos recientemente, también conocido como ladrón de páginas)
  • sr: páginas escaneadas/buscadas por lrud en busca de una página "antigua"
  • sr/fr: relación que expresa cuántas páginas deben ser "escaneadas" para liberar 1

Lo que considero preocupante son los valores pi/po dados aquí, y completamente fuera de línea con los datos de los otros comandos; además, no hay tiempo de actividad aquí, por lo que es difícil saber qué generó estos números para la 'prueba'.

  • pi: página del espacio de paginación (es decir, leer la memoria de la aplicación desde el espacio de paginación)
  • po: roba memoria y escribe la memoria de la aplicación (también conocida como de trabajo) en el espacio de paginación; solo la memoria de trabajo va hacia/desde el espacio de la página

En tu presentación muestras pi=22 y po=7. Esto significa que, en promedio, el sistema leía información del espacio de paginación (después de haber sido escrita) 3 veces más a menudo de lo que escribía datos. Esto es una indicación de un sistema hambriento porque los datos se leen (pi) y luego se roban nuevamente (sr/fr) antes de que se toquen (se hace referencia a ellos, también se usan), o se leen y eliminan nuevamente antes de que la aplicación los 'espera'. alguna vez tiene la oportunidad de acceder a él.

En resumen, los datos presentados no están "sincronizados" con los momentos "dolorosos", aunque podrían explicar por qué ahora sólo se utiliza el 2,2% de la memoria para el almacenamiento en caché (incluso puede ser "computacional, también conocido como los programas cargados").

HastavmstatTambién sugiero las banderas -I (capital:i que agrega 'fi' y 'fo' - actividad de entrada y salida de archivos) y -w (ancho) para que los números estén mejor ubicados debajo de los encabezados textuales.

++++ fin del 'comentario'

Entonces, veamos un extracto usando -P (vista de proceso)

# svmon -P -O filtertype=working,segment=off,filtercat=exclusive,unit=MB | head -15 

    Unit: MB

-------------------------------------------------------------------------------
     Pid Command          Inuse      Pin     Pgsp  Virtual
14614630 httpd             21.5     0.06        0     21.5
11272246 httpd             21.4     0.06        0     21.4
12779758 httpd             21.2     0.06        0     21.2
17760476 httpd             20.9     0.06        0     20.9
11796712 httpd             20.8     0.06        0     20.8
17039454 httpd             20.6     0.06        0     20.6
11862240 httpd             20.6     0.06        0     20.6
14680090 httpd             20.5     0.06        0     20.5
10747970 httpd             20.5     0.06        0     20.5
11141286 httpd             20.5     0.06        0     20.5
 4718766 mysqld            13.6     0.02        0     13.6

Cuando no eres root, solo ves los comandos de tu entorno.

$ svmon -P -O filtertype=working,segment=off,filtercat=exclusive,unit=MB
Unit: MB

-------------------------------------------------------------------------------
     Pid Command          Inuse      Pin     Pgsp  Virtual
 5505172 svmon             10.7     0.19     0.44     11.4
 6553826 ksh               0.57     0.02        0     0.57
 9175288 ksh               0.55     0.02        0     0.55
12910710 sshd              0.55     0.02        0     0.55
15204356 sshd              0.52     0.02        0     0.52
12779760 head              0.18     0.02        0     0.18

Es posible que desee ver un comando específico, por lo que debe volver a la raíz para ver httpd.

Resumen:

svmon -C httpd -O filtertype=working,segment=off,filtercat=exclusive,unit=MB 
Unit: MB
===============================================================================
Command                              Inuse      Pin     Pgsp  Virtual
httpd                               227.44     0.69        0   227.44

Detalles: extracto

    # svmon -C httpd -O filtertype=working,segment=category,filtercat=exclusive,unit=MB >
Unit: MB
===============================================================================
Command                              Inuse      Pin     Pgsp  Virtual
httpd                               230.62     0.81        0   230.62

...............................................................................
EXCLUSIVE segments                   Inuse      Pin     Pgsp  Virtual
                                    230.62     0.81        0   230.62

    Vsid      Esid Type Description              PSize  Inuse   Pin Pgsp Virtual
  81a203         3 work working storage              m   24.6     0    0    24.6
                   parent=883990
  8b82d7         3 work working storage              m   18.8     0    0    18.8
                   parent=834226
  8b9d37         3 work working storage              m   18.2     0    0    18.2
                   parent=884fb0
  8915f2         f work shared library data          m   2.00     0    0    2.00
                   parent=898373
  89abb3         f work shared library data          m   2.00     0    0    2.00
                   parent=84b9a9
  824ea4         f work shared library data          m   2.00     0    0    2.00

Esto no muestra bien el 'segmento=categoría', así que ahora con un comando más simple - tail - y muestra un resumen y detalle de cada tipo de 'segmento' de memoria - pero todavía solo memoria 'de trabajo' (es decir, sin almacenamiento en caché)

# svmon -C tail -O filtertype=working,segment=category,unit=MB                    
Unit: MB
===============================================================================
Command                              Inuse      Pin     Pgsp  Virtual
tail                                  82.5     52.6     5.12     90.6

...............................................................................
SYSTEM segments                      Inuse      Pin     Pgsp  Virtual
                                      34.1     33.1     2.38     35.8

    Vsid      Esid Type Description              PSize  Inuse   Pin Pgsp Virtual
   10002         0 work kernel segment               m   34.1  33.1 2.38    35.8

...............................................................................
EXCLUSIVE segments                   Inuse      Pin     Pgsp  Virtual
                                      0.18     0.02        0     0.18

    Vsid      Esid Type Description              PSize  Inuse   Pin Pgsp Virtual
  88b4f1         f work working storage             sm   0.09     0    0    0.09
  82d005         2 work process private             sm   0.07  0.02    0    0.07
  8e0c9c         3 work working storage             sm   0.02     0    0    0.02

...............................................................................
SHARED segments                      Inuse      Pin     Pgsp  Virtual
                                      48.2     19.5     2.75     54.6

    Vsid      Esid Type Description              PSize  Inuse   Pin Pgsp Virtual
    9000         d work shared library text          m   48.2  19.5 2.75    54.6

Respuesta3

nmon y luego presione "m" le mostrará rápidamente algunos usos importantes de la memoria

ipcs -am

La memoria compartida utilizada por muchas aplicaciones como DB2 y Oracle: verifique el SEGSZ para conocer el tamaño del ipcs -amcomando. La columna Propietario generalmente le indica para qué se usa, como el usuario de Oracle para SGA o db2inst1 para el caché del búfer DB2.

Luego todo se reduce a los procesos y esto se vuelve complicado. Todos los procesos que ejecutan el mismo archivo de programa compartirán las páginas de códigos como de solo lectura. También pueden compartir algunos o casi todos los datos y las páginas de sacos si los procesos comenzaron mediante un proceso común que luego se bifurcó como, por ejemplo, RDBMS y cosas como Apache. Esto también es válido para las docenas de bibliotecas que los procesos también necesitan y que son en gran medida invisibles para nosotros.

Debido a este intercambio desconocido, a menudo ocurre que si suma toda la memoria de todos los procesos, obviamente es mucho más grande que la memoria.

Si usa nmon"t" para los procesos principales y luego "4" para ordenar el tamaño del proceso, verá la memoria del proceso.

  • Tamaño KB = el tamaño que se encuentra en el archivo de programa en el disco.
  • Tamaño del conjunto residente = qué tan grande es en la memoria (excluyendo las páginas que aún están en el sistema de archivos (como el código) y algunas partes en los discos de paginación)".
  • La columna ResText son las páginas de códigos del conjunto residente
  • La columna ResData son las páginas de datos y pila del conjunto residente

Respuesta4

El topascomando muestra la memoria real y el porcentaje de memoria de la computadora. Debería estar disponible de forma predeterminada en AIX y es similar (pero proporciona mucha más información) topen Linux.

Al iniciar topasse muestra mucha información (procesos principales que usan CPU, resumen de uso de memoria, etc.) de forma predeterminada, y al presionar hse muestra un texto de ayuda en línea con otras teclas y su función (por ejemplo, al presionar cvarias veces se recorrerán diferentes formas de mostrar el uso de la CPU). .

información relacionada