Resumo:

Resumo:

Pergunta: como podemos relatar o uso REAL de memória (semo cache!) usandonmonouvmstatousvmonno AIX 6?

nmon:
insira a descrição da imagem aqui

vmstat:
insira a descrição da imagem aqui

svmon:
insira a descrição da imagem aqui

Assim como no Linux, podemos usar o comando free, mas ele não está disponível no 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 ~]$ 

Responder1

Versão curta: veja as páginas em uso clnt+ persna svmon -Gsaída (a unidade tem 4k páginas) se você quiser saber todo o cache de arquivos, ou veja vmstat -ve veja "páginas de arquivo" para cache de arquivos, excluindo executáveis ​​(mesma unidade).


Você deve verificar o seguinte artigo se quiser uma boa visão geral do que está acontecendo:Visão Geral da Substituição de Página AIX.

Para um resumo extremamente breve, a memória no AIX é classificada de duas maneiras:

  • Memória de trabalho vs memória permanente

    • A memória de trabalho é um processo (pilha, heap, memória compartilhada) e memória do kernel. Se esse tipo de memória precisar ser eliminada, ela será trocada.

    • A memória permanente é o cache de arquivos. Se precisar ser paginado, ele volta para o sistema de arquivos de onde veio (para páginas sujas, as páginas limpas são simplesmente recicladas). Isso é subdividido em páginas não-cliente (ou persistentes) para sistemas de arquivos JFS e páginas cliente para JFS2, NFS e possivelmente outros.

  • Páginas computacionais versus não computacionais.

    • As páginas computacionais são novamente dados de processo e de kernel, além de dados de texto de processo (ou seja, páginas que armazenam em cache o executável/código).

    • Os outros não computacionais são: cache de arquivos que não é executável (ou biblioteca compartilhada).

svmon -G(aliás, svmon -G -O unit=MBé um pouco mais amigável) oferece trabalho em vez de páginas permanentes. A workcoluna é, bem, memória de trabalho. Você obtém a memória permanente somando as colunas pers(JFS) e clnt(JFS2).

No seu caso, você tem cerca de 730 MB de páginas permanentes, apoiadas por seus sistemas de arquivos (186.151 * 4k páginas).

Agora, o topas"widget" superior direito FileSystemCache (numperm)mostra algo um pouco diferente, e você obteria os mesmos dados com vmstat -v: são apenas páginas permanentes não computacionais. ou seja, a mesma coisa que acima, mas excluindo páginas para executáveis.

No seu caso, são cerca de 350 MB (2,2% de 16G).

De qualquer forma, isso não é muito cache.

Responder2

O comando que você está procurando (imho) é:

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

As principais opções aqui são:

  • 'filtertype=working' # também conhecido como, sem cache;
  • 'segment=off' # na verdade é o padrão ao usar -O
  • 'filtercat=exclusive' # não inclui memória compartilhada ou kernel atm
  • 'unit=MB' # quem deseja calcular a partir de # páginas ??

E você vai querer dar uma olhada em outras opções, como -C (relacionado ao nome do comando, alguns exemplos abaixo) e talvez -U (relacionado ao usuário)

++++ início do comentário ++++

inserindo o que eu teria inserido como comentário à sua pergunta, mas não tenho reputação - como um novo usuário aqui.

Sua saída vmstat me diz mais do que apenas sua situação atual - já que é a saída de linha única - é histórica - e suspeito que você esteja tendo problemas de memória, pois mostra um histórico de pi/po (espaço de paginação página in/ espaço de paginação saída de página)

Outras colunas de interesse são as colunas fr/sr:

  • fr: páginas liberadas por lrud (daemon menos usado recentemente, também conhecido como ladrão de páginas)
  • sr: páginas digitalizadas/pesquisadas pelo lrud em busca de uma página ‘antiga’
  • sr/fr: proporção que expressa quantas páginas devem ser “digitalizadas” para liberar 1

O que considero preocupante são os valores pi/po fornecidos aqui - e completamente fora de linha com os dados dos outros comandos - também sem tempo de atividade aqui, é tão difícil saber o que para 'teste' gerou esses números.

  • pi: espaço de paginação na página (ou seja, lê a memória do aplicativo do espaço de paginação)
  • po: rouba memória e grava a memória do aplicativo (também conhecida como de trabalho) no espaço de paginação - apenas a memória de trabalho vai para/do espaço de página

Na sua apresentação você mostra pi=22 e po=7. Isso significa que, em média, o sistema lia informações do espaço de paginação (depois de escritas) 3x mais frequentemente do que gravava dados. Isso é uma indicação de um sistema faminto porque os dados estão sendo lidos (pi) e depois roubados novamente (sr/fr) antes de serem tocados (referenciados, também conhecidos como usados) - ou lidos e removidos novamente antes que o aplicativo 'espere' por isso sempre tiver a chance de acessá-lo.

Resumindo, os dados apresentados não estão 'sincronizados' com os momentos de 'dor' - embora isso possa explicar por que apenas 2,2% da sua memória é agora usada para armazenamento em cache (pode até ser 'computacional, também conhecido como os programas carregados').

Tão longe quantovmstatvai Eu também sugiro os sinalizadores -I (capital:i que adiciona 'fi' e 'fo' - atividade fileIn e fileOut) e -w (largo) para que os números fiquem melhor posicionados sob os cabeçalhos textuais.

++++ fim do 'comentário'

Então, vamos ver um trecho usando -P (visualização de processo)

# 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

Quando você não é root, você vê apenas os comandos em seu ambiente.

$ 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

Você pode querer dar uma olhada em um comando específico - então volte ao root para ver httpd

Resumo:

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

Detalhes: trecho

    # 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

Isso não mostra bem o 'segmento = categoria', então agora com um comando mais simples - tail - e mostra um resumo e detalhes de cada tipo de 'segmento' de memória - mas ainda apenas a memória 'de trabalho' (também conhecida como sem cache)

# 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

Responder3

nmon e pressione "m" mostrará rapidamente alguns grandes usos de memória

ipcs -am

A memória compartilhada usada por muitos aplicativos como DB2 e Oracle - verifique o tamanho do SEGSZ no ipcs -amcomando. A coluna Proprietário geralmente informa para que ela é usada, como o usuário oracle para SGA ou db2inst1 para o cache de buffer do DB2.

Então tudo se resume aos processos e isso fica complicado. Todos os processos que executam o mesmo arquivo de programa compartilharão as páginas de código como somente leitura. Eles também podem compartilhar alguns ou quase todos os dados e páginas de saco se os processos forem iniciados por um processo comum que então se bifurcou como, por exemplo, RDBMS e coisas como Apache. Isto também se aplica às dezenas de bibliotecas de que os processos também necessitam e que são em grande parte invisíveis para nós.

Devido a esse compartilhamento desconhecido, muitas vezes acontece que se você somar toda a memória de todos os processos, é obviamente muito maior que a memória.

Se você usar nmon"t" para os principais processos e depois "4" para ordenar o tamanho do processo, verá a memória do processo.

  • Tamanho KB = o tamanho encontrado no arquivo do programa no disco.
  • Tamanho do conjunto residente = quão grande é na memória (excluindo as páginas ainda no sistema de arquivos (como código) e algumas partes nos discos de paginação)".
  • A coluna ResText são as páginas de código do Conjunto Residente
  • A coluna ResData são os dados e as páginas de pilha do conjunto residente

Responder4

O topascomando mostra a memória real e a porcentagem de memória do computador. Deve estar disponível por padrão no AIX e é semelhante (mas fornece muito mais informações) topno Linux.

A inicialização topasmostra muitas informações (principais processos que usam CPU, resumo de uso de memória, etc.) por padrão, e pressionar hmostra um texto de ajuda embutido com outras teclas e suas funções (por exemplo, pressionar cvárias vezes percorrerá diferentes maneiras de exibir o uso da CPU) .

informação relacionada