Tengo un servidor Red Hat Linux en casa relativamente pequeño (aproximadamente 8 GB de RAM). No lo uso para mucho más que ejecutar algunas aplicaciones locales para hacer un seguimiento de varias cosas. Las únicas cosas reales que se ejecutan en la caja son una base de datos y un servidor web.
Me he dado cuenta de que al verificar los contadores del sistema utilizando herramientas como NMON y TOP, la memoria libre total del sistema es relativamente baja (del orden de unos pocos cientos de MB), mientras que la memoria activa para la base de datos y el servidor web todavía es baja (solo consumiendo un combinado de 3 GB). Incluso cuando se incluyen todos los demás procesos en ejecución, la memoria total consumida es inferior a 4 GB.
¿Por qué Red Hat Linux informa menos memoria libre que la memoria total menos la suma total de la memoria utilizada de los procesos en ejecución?
fuente
Linux almacenará activamente los accesos del sistema de archivos en la memoria para proporcionar tiempos de acceso al disco más rápidos. No es nada de qué preocuparse.
Ejecutar free -m en la caja le dará una mejor idea de dónde se está utilizando la memoria.
A continuación se muestra la salida extraída de una de mis cajas. La memoria libre es 147Meg con casi 4G en caché para solicitudes de acceso al sistema de archivos.
fuente
¿También incluye los campos "almacenados en memoria intermedia" y "en caché"?
fuente
Con Linux, mire Committed_AS en / proc / meminfo, esta es la cantidad de memoria (real + intercambio) que el núcleo realmente ha prometido para ejecutar procesos.
Linux usa la memoria de manera muy eficiente, cualquier bloque no prometido para algún proceso se usa para almacenar en caché los archivos accedidos recientemente / con frecuencia. Por lo tanto, es típico que Linux use el 90% de toda la memoria física disponible poco después del arranque.
Mire lo que el núcleo se ha comprometido a proporcionar ... y el uso sucio (intercambio), esto le brinda una mejor imagen general.
Si necesita ajustar este comportamiento, actualice su pregunta :)
Este es el MO estándar para Linux ... algunas distribuciones ajustan la administración de memoria para satisfacer sus necesidades a través de sysctl. Sin embargo, lo que informas es bastante típico entre todos.
fuente
¿Qué tipo de núcleo está ejecutando en el sistema? Un kernel de 32 bits solo reportará alrededor de 3.6 GB de memoria, a menos que esté compilado con PAE habilitado.
Dicho esto, si se trata de una versión moderna de Redhat Enterprise Linux (o CentOS), v3 en adelante, el núcleo predeterminado de 32 bits lo habilitará.
Si pudiera publicar la salida del comando 'libre' detallado anteriormente, podremos ver si este es el problema o no.
fuente