Uso de memória no SunOS e no Linux

4

Tenho algumas dúvidas com o uso da memória.
Atualmente eu tenho nagios check que mede a memória usada do comando free -m no Linux. Eu adicionei outro script para uso de memória de link e mede para Solaris de vmstat e para Linux de /proc/meminfo , com essa nova verificação, teremos muito mais 20% a 20% de uso em alguns hosts.

./check_mem.pl -f -w 90 -c 60
CRITICAL - 34.6% (439872 kB) free!|TOTAL=1272376KB;;;; USED=832504KB;127237;508950;; FREE=439872KB;;;; CACHES=418977KB;;;;

esta é a saída do novo script no host Solaris neste host eu também tenho

    vmstat 1 2
 kthr      memory            page            disk          faults      cpu
 r b w   swap  free  re  mf pi po fr de sr s0 -- -- --   in   sy   cs us sy id
 0 0 0 1184172 474856 54 222 0  0  0  0 112 8  0  0  0  231 1735  669  1  8 91
 0 0 0 1175352 440948 16 58  0  0  0  0  0  0  0  0  0  229   83  190  0  3 97

valores de vmstat e do novo script são OK. Quero dizer, o script coleta de vmstat valores ok. Eu preciso saber qual é a melhor maneira de medir o uso de memória no Solaris e Linux, como posso ver quanto usa o sistema operacional e quanto é usado pelo aplicativo é vmstat (Sunos) e /proc/meminfo (Linux) OK para naquela?

    
por klerk 20.01.2014 / 18:58

2 respostas

8

vmstat não é tão útil para medir o uso de memória. Ele não fornece nenhuma métrica para quantificar quanta memória virtual e física é usada e o que está sendo usado. No entanto, é uma ferramenta muito boa para medir a escassez de RAM. Você só precisa monitorar a coluna sr (taxa de varredura). Enquanto permanecer igual a zero, você não deve se preocupar com RAM. Se não for igual a zero, você deve investigar o que está exigindo RAM.

Para ter uma ideia detalhada sobre o que está usando a memória do sistema, além do comando echo ::memstat | mdb -k já sugerido, é possível executar prstat -n 1 -a , que fornecerá o uso de memória por usuário, prstat -n 1 -Z para uso da zona e prstat -s rss para uso por processo classificado por RAM.

Em prstat output, a coluna SWAP mostra a memória virtual usada e a coluna RSS , a RAM usada.

Sobre o uso do kernel, você pode executar kstat -n system_pages e dar uma olhada no valor pp_kernel .

Para responder com precisão à sua pergunta:

how can I see how much OS uses and how much is used by app is it vmstat(Sunos) and /proc/meminfo (Linux) OK for that?

Nenhum vmstat não está correto para isso no Solaris. Você pode executar echo ::memstat | mdb -k e analisar sua saída.

A soma das linhas " Anon " e " Exec and libs " é a RAM usada pelos aplicativos. A linha " Kernel " informa a RAM usada pelo kernel, as linhas " ZFS ... ", " Page cache "e" Free (cachelist) "mostram RAM usada para armazenar dados em cache e a linha" Free (freelist) "reporta RAM não utilizada, ou seja, desperdiçada.

Observação: todos os itens acima são sobre o Solaris.

    
por 21.01.2014 / 00:54
2

Sim, vmstat e / proc / meminfo são as melhores opções No Solaris, você também pode usar o seguinte comando:

echo ::memstat | mdb –k

É muito lento (pode demorar até 30 minutos em alguns sistemas maiores :)), mas lhe dará uma boa visão geral do uso de memória, muito usado pelo kernel, processos, ZFS, etc.

    
por 20.01.2014 / 22:05