Solución 1:
Ejecutando top
en modo por lotes para informar periódicamente sobre los tamaños de la memoria, se puede usar para ver quién está usando la memoria cuando las cosas van mal. Ejecutando sar
en el modo por lotes debería proporcionar buenos diagnósticos sobre el uso de la memoria y las E/S relacionadas. Ejecutando munin
para monitorear el sistema debería brindarle un gráfico con buenos detalles sobre para qué se está utilizando la memoria. Esto puede ayudar mucho.
Puede usar limites.conf para limitar el tamaño máximo del núcleo de los programas. Configurado correctamente, esto debería matar cualquier programa que tenga fugas de memoria. Esto funciona con el módulo pam_limits. Los límites también se pueden establecer con el ulimits
comando.
Está ejecutando algunos programas que podrían usar grandes cantidades de memoria. Algunas cosas que podría mirar incluyen.
- Aplicaciones mal programadas que se ejecutan bajo
apache2
puede perder memoria. Debería ver que el tamaño de la memoria aumenta cuando esto sucede. Puede ajustar apache2 para reciclar niños después de un cierto número de usos configurandoMaxRequestsPerChild
a 100 mas o menos. Si esto resuelve el problema, entonces debe resolver la fuga. Vería esto primero. - MySQL puede intentar cargar datos en la memoria. Si tiene una gran cantidad de datos en la memoria, esto puede causar algunos problemas, pero no debería ser tan dramático como está viendo.
- Si tienes un
tmpfs
grande sistema de archivos montado, entonces puede perder memoria si los archivos no se eliminan cuando se usan. Los archivos grandes de larga duración también pueden ser un problema. - Si el problema ocurre aproximadamente a la misma hora del día, es posible que tenga un programa programado que tenga pérdidas de memoria.
- Si tiene un programa que asigna memoria compartida, pero no la libera antes de salir, tendrá una fuga de memoria relativamente invisible. Si la memoria compartida está bloqueada en la memoria, entonces puede forzar el intercambio. La cantidad de memoria compartida disponible suele ser relativamente limitada.
- El paquete liquidsoap+icecast podría experimentar problemas de almacenamiento en búfer que usan memoria. No he usado esta combinación, así que no estoy seguro de cómo aparecería.
Uso normal de la memoria:la memoria libre no es algo que desee mucho. Si su sistema ha estado activo durante mucho tiempo y tiene mucha memoria libre, algo anda mal. Cada vez que lea o escriba un archivo, los bloques irán al caché del búfer. Esto reducirá su memoria libre y es algo bueno. El sistema mantendrá suficiente espacio libre para iniciar algunos programas sin buscar memoria en otro lugar. Como muchos programas se ejecutan rápidamente, su memoria se devolverá al grupo libre cuando dejen de ejecutarse.
Cuando lee un archivo que está en el caché del búfer, no se requiere acceso al disco y la lectura se resuelve desde el caché del búfer. Las escrituras utilizan un mecanismo similar. Si su sistema necesita memoria, el caché del búfer es uno de los primeros lugares que se utiliza. La mayoría de los amortiguadores se pueden liberar de inmediato.
Si tiene una pérdida de memoria, verá que la memoria libre y los búferes comienzan a reducirse. Esto todavía no es un problema grave, ya que la memoria filtrada eventualmente debería moverse al espacio de intercambio. Su sistema seguirá funcionando bien hasta que llene el espacio de intercambio y utilice el espacio libre restante hasta el punto en que los programas no puedan iniciarse. Es típico que se utilice una pequeña cantidad de espacio de intercambio.
Solución 2:
Puede usar este comando para ver las 10 aplicaciones principales con respecto al uso de RAM:
ps -A --sort -rss -o comm,pmem | head -n 11
A veces, este comando lo ayuda si se han generado muchos subprocesos:
ps auxf
De esta manera, puede ver qué procesos pertenecen juntos.
Solución 3:
Nada está realmente usando esa memoria en términos de aplicaciones.
Debe deducir el valor 'en caché' que representa el caché de la página para tener una mejor idea de cuál es su uso real de memoria en términos de uso del programa.
Básicamente, se trata de una buena gestión de la memoria y esto es idealmente lo que desea.
Consulte el enlace aquí para obtener más información:http://www.linuxatemyram.com/