Solía top
ver el uso de memoria en este momento. Pero me gustaría monitorear el uso de la memoria durante un período de tiempo. Por ejemplo, comience a monitorear y luego ejecute algunos comandos, y finalmente detenga el monitoreo y vea cuánta memoria se ha usado durante el período.
¿Cómo puedo hacer esto en Ubuntu Server?
Supongo que podría iniciar un cronjob cada 5 segundos, e invocar un comando que registra el uso actual de la memoria en un archivo de texto. Pero, ¿qué comando debo usar para obtener el uso actual de la memoria en un formato que sea fácil de registrar en un archivo de texto?
2896
y luego1528
para los buffers, ¿no significa esto que está usando2896 + 1528
?Mem: used
es tu memoria total utilizada.-/+ buffers/cache: used
es su memoria total utilizada menos buffers y caché. Sé que la salida se ve divertida, pero no se requiere aritmética aquí. Solo está buscando usado / libre en la fila - / + buffers / cache.free -h
, por ejemplo,watch -n 5 free -h
para obtener una salida "legible para humanos", por ejemplo, en2.1G
lugar de2170
en la salida.Creo que
htop
es la mejor solución.sudo apt-get install htop
De esta manera, notará qué programas están utilizando más RAM. y puede terminar fácilmente uno si lo desea. Aquí hay una captura de pantalla!
fuente
htop
es agradable porque es más "gráfico" y posiblemente más fácil de leer quefree
.RES
La memoria utilizada por esa aplicación en MB? ¿Entonces qué esSHR
?htop
muestra "el uso de memoria durante un período de tiempo"?Si está buscando un buen desglose de la memoria utilizada por cada proceso en ejecución, entonces podría recomendarle consultar ps_mem.py (que se encuentra aquí en pixelbeat.org).
Sé que en los comentarios anteriores, mencionaste que querías una instantánea de una línea de forma gratuita , pero pensé que otros podrían encontrar esto útil.
Salida de ejemplo:
La única parte que no me gusta es el hecho de que el script afirma que requiere privilegios de root. Todavía no he tenido la oportunidad de ver exactamente por qué este es el caso.
fuente
pip install ps_mem
) y en GitHub .Usa el comando gratis . Por ejemplo, esta es la salida de
free -m
:free -m | grep /+
solo devolverá la segunda línea:fuente
947
es el uso de memoria menos la memoria utilizada para memorias intermedias y cachés?El comando de vigilancia puede ser útil. Intente
watch -n 5 free
controlar el uso de la memoria con actualizaciones cada cinco segundos.fuente
Puedes hacerlo usando
cat /proc/meminfo
.fuente
watch cat /proc/meminfo
free
comando toma su información/proc/meminfo
y la presenta de manera compacta. Usofree -h
para salida legible para humanos.Para el monitoreo visual del uso general de RAM, si usa Byobu , mantendrá su uso de memoria en la esquina inferior derecha del terminal y se ejecutará mientras esté en cualquier sesión de terminal.
Como puede ver en la captura de pantalla, mi máquina virtual tiene un tiempo de actividad de 1h3m, carga 0.00, tiene un procesador 2.8GHz (virtual) y 994MB (21%) de la RAM disponible en el sistema.
fuente
Solución de línea única y salida:
Aquí hay un ejemplo de la salida esperada:
fuente
Yo usaría Cacti . Esto representará gráficamente el uso de su memoria, etc. durante un período de tiempo, y podrá verificar el uso utilizando su navegador web.
fuente
Monitoreo del uso de memoria
Estoy más en línea con una de las publicaciones anteriores que mencionó a Cacti como una excelente manera de monitorear el uso de la memoria. Sin embargo, dado que parece que los cactus ya no son populares en la corriente principal, existe una aplicación gráfica alternativa llamada Graphite.
Graphite es relativamente fácil de instalar en un servidor ubuntu y para instalarlo, puede consultar este enlace para ver los procedimientos de instalación fáciles de seguir.
Después de instalar el grafito, ahora puede enviarle métricas de memoria, en cualquier intervalo que desee; cada 5 segundos, cada minuto, cada hora ... etc.
Para graficar las métricas de memoria, como ya se sugirió en publicaciones anteriores, puede escribir su propio script utilizando las herramientas del sistema para recopilar la información de memoria necesaria. O bien, puede usar un complemento snmp preescrito que hará todo el trabajo por usted.
Si desea escribir su propio script de memoria, será prudente asegurarse de tener en cuenta la memoria almacenada en memoria intermedia y en caché al calcular la memoria utilizada, de lo contrario, terminará recopilando datos falsos.
Si en su lugar desea utilizar un complemento snmp que ya hace todos los cálculos necesarios para usted, aquí hay un enlace a uno que funciona bastante bien: checkMemoryviaSNMP .
Ventajas de SNMP:
Tengo instalado snmp en todos los nodos remotos que monitorizo. Esto me permite monitorear todos mis sistemas desde uno o más servidores centrales , sin tener que copiar o poner un complemento en los nodos remotos.
Contras de SNMP:
Debería asegurarse de que el agente snmp esté instalado en cada uno de los nodos remotos en los que desea monitorear la memoria. Sin embargo, esta instalación será un trato único. Si está utilizando herramientas de automatización como chef o títeres o herramientas similares en su entorno, entonces esto no es un problema en absoluto.
Configuración del agente SNMP en los nodos remotos:
Después de instalar el agente snmp, simplemente vi el archivo /etc/snmpd/snmpd.conf y agregue esta línea:
Luego reinicie el agente snmpd, con:
Luego, en su servidor central, desde el cual puede monitorear todos sus otros servidores, puede ejecutar el siguiente comando:
fuente