Hemos integrado el sistema Linux sin intercambio.
Actualmente debemos dar la alarma cuando el porcentaje de uso de memoria aumenta en un umbral. Y reinicie cuando el porcentaje de uso de memoria aumente por encima de un umbral (más alto).
Por qué queremos hacer eso: si algún programa tiene fugas, podemos hacer un reinicio de seguridad, antes de que el núcleo comience a matar nuestros procesos (lo que puede conducir a la corrupción o falta de disponibilidad de datos).
Pero tenemos un problema:
¿Cómo contar el uso de memoria% que se puede utilizar para nuestro propósito?
Intentamos contar el uso de memoria usando valores de / proc / meminfo:
/ # cat /proc/meminfo
MemTotal: 126744 kB
MemFree: 58256 kB
Buffers: 16740 kB
Cached: 31308 kB
SwapCached: 0 kB
Active: 37580 kB
Inactive: 24000 kB
Sin éxito:
(MemTotal - MemFree)
no es utilizable porque contiene, por ejemplo, cachés.
(MemTotal - MemFree - Buffers - Cached)
hizo caso omiso de efecto Inactive
. Por lo tanto, también proporciona valores de uso de memoria demasiado grandes.
(MemTotal - MemFree - Buffers - Cached - Inactive)
es inutilizable, porque el resultado puede ser negativo.
Nombre esto como alert.sh y ejecute el comando:
chmod +x alert.sh
Configure un cron para ejecutar este script cada 10 minutos.
Asegúrese de reemplazar '512' con la memoria total de su servidor en MB y '[email protected]' con la dirección de correo electrónico real. Esto enviará una alerta por correo electrónico cada vez que el uso de memoria supere el 95% y reiniciará el servicio "nombre_servicio" si alcanza el 90%
fuente
Puede usar un script de shell en cron con el comando libre para monitorear la memoria y actuar según sus valores. Por ejemplo, para monitorear la memoria RAM:
En lugar de hacer eco de la salida, puede evaluar los valores a los límites que desee y enviar por correo, reiniciar o cualquier acción que desee:
Luego lo agrega a crontab para que se ejecute en los intervalos que desee.
fuente
Otra utilidad útil del paquete sysstat es sar.
Para información sobre la memoria, use:
Definitivamente podría usar más RAM en esta caja.
fuente