Eu costumava top
ver o uso da memória no momento. Mas eu gostaria de monitorar o uso da memória por um período de tempo. Por exemplo, inicie o monitoramento e execute alguns comandos, e finalize o monitoramento e veja a quantidade de memória usada durante o período.
Como posso fazer isso no Ubuntu Server?
Acho que eu poderia iniciar um cronjob a cada 5 segundos mais ou menos e invocar um comando que registrasse o uso atual da memória em um arquivo de texto. Mas que comando devo usar para obter o uso atual da memória em um formato fácil de registrar em um arquivo de texto?
2896
e depois1528
nos buffers, isso não significa que você está usando2896 + 1528
?Mem: used
é a sua memória total usada.-/+ buffers/cache: used
é a sua memória total usada menos buffers e cache. Eu sei que a saída parece engraçada, mas nenhuma aritmética é necessária aqui. Você está apenas procurando usado / gratuito na linha - / + buffers / cache.free -h
, por exemplo,watch -n 5 free -h
obter saída "legível por humanos", por exemplo, em2.1G
vez de2170
na saída.Eu acho que
htop
é a melhor solução.sudo apt-get install htop
Dessa forma, você notará quais programas estão usando mais RAM. e você pode encerrar facilmente um, se quiser. Aqui está uma captura de tela!
fonte
htop
é legal porque é mais "gráfico" e possivelmente mais fácil de ler do quefree
.RES
memória usada por esse aplicativo está em MB? Então o que éSHR
?htop
mostra o 'uso da memória por um período de tempo'?Se você estiver procurando por uma boa análise da memória usada por cada processo em execução, recomendo verificar o arquivo ps_mem.py (encontrado aqui em pixelbeat.org).
Sei que, nos comentários acima, você mencionou querer um instantâneo de uma linha gratuitamente , mas achei que outros poderiam achar isso útil.
Exemplo de saída:
A única parte de que não gosto é o fato de o script afirmar exigir privilégios de root. Ainda não tive a oportunidade de ver exatamente por que esse é o caso.
fonte
pip install ps_mem
) e no GitHub .Use o comando free . Por exemplo, esta é a saída de
free -m
:free -m | grep /+
retornará apenas a segunda linha:fonte
947
é o uso da memória menos a memória usada para buffers e caches?O comando watch pode ser útil. Tente
watch -n 5 free
monitorar o uso da memória com atualizações a cada cinco segundos.fonte
Você pode fazer isso usando
cat /proc/meminfo
.fonte
watch cat /proc/meminfo
free
comando pega suas informações/proc/meminfo
e as apresenta de maneira compacta. Usefree -h
para saída legível por humanos.Para o monitoramento visual do uso geral da RAM, se você usar o Byobu , ele manterá o uso da memória no canto inferior direito do terminal e será executado enquanto você estiver em qualquer sessão do terminal.
Como você pode ver na captura de tela, minha máquina virtual tem um tempo de atividade de 1h3m, carga 0,00, processador de 2,8 GHz (virtual) e 994 MB (21%) da RAM disponível no sistema.
fonte
Solução e saída de linha única:
Aqui está um exemplo da saída esperada:
fonte
Eu usaria cactos . Isso representará graficamente o uso da memória, etc., durante um período de tempo, e você poderá verificar o uso usando o navegador da web.
fonte
Monitorando o uso da memória
Estou mais de acordo com uma das postagens anteriores que mencionaram o Cacti como uma ótima maneira de monitorar o uso da memória. No entanto, como parece que os cactos não são mais populares no mainstream, existe um aplicativo gráfico alternativo chamado Graphite.
O Graphite é relativamente fácil de instalar em um servidor ubuntu e para instalá-lo, você pode conferir este link para os procedimentos de instalação fáceis de seguir.
Após a instalação do grafite, agora você pode enviar métricas de memória para ele, no intervalo que desejar; a cada 5 segundos, a cada minuto, a cada hora ... etc.
Para representar graficamente as métricas de memória, como já sugerido nas postagens anteriores, você pode escrever seu próprio script usando as ferramentas do sistema para reunir as informações de memória necessárias. Ou você pode usar um plug-in snmp pré-escrito que fará todo o trabalho para você.
Se você deseja escrever seu próprio script de memória, é aconselhável garantir que você leve em consideração a memória em cache e em buffer ao calcular a memória usada; caso contrário, você acabará coletando dados falsos.
Se você deseja utilizar um plug-in snmp que já faz todos os cálculos necessários para você, aqui está um link para um que funciona muito bem: checkMemoryviaSNMP .
Prós do SNMP:
Eu tenho o snmp instalado em todos os nós remotos que monitoro. Isso me permite monitorar todos os meus sistemas de um (s) servidor (es) central (is) , sem precisar copiar ou colocar um plug-in nos nós remotos.
Contras do SNMP:
Você precisaria garantir que o agente snmp esteja instalado em cada um dos nós remotos nos quais deseja monitorar a memória. No entanto, esta instalação será um contrato único. Se você estiver usando ferramentas de automação, como chef ou fantoche ou ferramentas similares em seu ambiente, isso não será um problema.
Configuração do agente SNMP no (s) nó (s) remoto (s):
Após a instalação do agente snmp, simplesmente vi o arquivo /etc/snmpd/snmpd.conf e adicione esta linha a ele:
Em seguida, reinicie o agente snmpd, com:
Em seguida, no servidor central, no qual você monitora todos os outros servidores, você pode executar o seguinte comando:
fonte