Consumo de memória do AIX

4

Pergunta : como podemos reportar o uso de memória REAL ( sem o cache!) usando nmon ou vmstat ou svmon no AIX 6?

nmon:

vmstat:

svmon:

Como no Linux, podemos usar o comando free, mas 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 ~]$ 
    
por whoisthesomeone 08.01.2015 / 08:24

2 respostas

5

Versão resumida: veja as páginas clnt + pers em uso na svmon -G output (a unidade tem 4k páginas) se você quiser saber todo o cache de arquivos, ou veja vmstat -v e veja " páginas de arquivo "para cache de arquivos, excluindo executáveis (mesma unidade).

Você deve conferir o artigo a seguir se desejar ter uma boa visão geral do que está acontecendo: Visão geral do Substituição da página AIX .

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

  • Memória de trabalho vs memória permanente

    • A memória de trabalho é process (pilha, heap, memória compartilhada) e memória do kernel. Se esse tipo de memória precisar de páginas, vai trocar.

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

  • Páginas computacionais versus não computacionais.

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

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

svmon -G (btw, svmon -G -O unit=MB é um pouco mais amigável) fornece as páginas de trabalho versus páginas permanentes. A coluna work é, bem, memória de trabalho. Você obtém a memória permanente adicionando as colunas pers (JFS) e clnt (JFS2).

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

Agora, o topas top-right "widget" 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. isto é, o mesmo que acima, mas excluindo páginas para executáveis.

No seu caso, isso é cerca de 350MB (2,2% de 16G).

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

    
por 08.01.2015 / 12:30
0

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' # aka, sem cache;
  • 'segment = off' # na verdade, padrão ao usar -O
  • 'filtercat = exclusive' # não inclui memória compartilhada ou kernel atm
  • 'unit = MB' # quem deseja calcular de # de páginas

E, você desejará ver outras opções, como -C (nome do comando relacionado, alguns exemplos abaixo) e talvez -U (relacionado ao usuário)

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

inserindo o que eu teria inserido como um comentário para sua pergunta, mas falta a reputação - como um novo usuário aqui.

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

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

  • fr: páginas liberadas pelo lrud (ladrão de página aka daemon aka usado recentemente)
  • sr: páginas digitalizadas / pesquisadas por lrud em busca de uma página "antiga"
  • sr / fr: proporção que expressa quantas páginas devem ser "verificadas" para liberar 1

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

  • pi: página do espaço de paginação em (isto é, leia a memória do aplicativo a partir do espaço de paginação)
  • po: rouba memória e grava a memória do aplicativo (também conhecido como trabalho) no espaço de paginação - somente a memória de trabalho vai para / do espaço da página

Na sua apresentação, você mostra pi = 22 e po = 7. Isso significa que, em média, o sistema estava lendo as informações do espaço de paginação (depois que elas foram gravadas) 3 vezes mais do que os dados gravados. Esta é uma indicação de um sistema em falta porque os dados estão sendo read-in (pi) e depois roubados novamente (sr / fr) antes de serem tocados (referenciados como usados) - ou readin e removidos novamente antes da aplicação 'aguardar' por ele sempre tem a chance de acessá-lo.

Em suma, os dados apresentados não estão "sincronizados" com os momentos "dolorosos" - embora possa explicar por que apenas 2,2% de sua memória é agora usada para armazenamento em cache (pode até ser 'computacional aka os programas carregados' ).

Na medida em que vmstat vai eu também sugiro as flags -I (capital: i que adiciona 'fi' e 'fo' - fileIn e fileOut activity) e -w (wide) para que os números estão melhor posicionados sob os cabeçalhos textuais.

++++ fim do 'comentário'

Então, vamos ver um trecho usando -P (visã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 está root, só vê 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 olhar para um comando específico - então, volte para a raiz para ver o 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

Isto não mostra bem o 'segmento = categoria', agora com um simples comando - tail - e mostra um resumo e detalhe de cada tipo de 'segmento' de memória - mas ainda 'trabalhando' apenas (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
    
por 21.11.2016 / 14:16

Tags