![La memoria del VPS se agota incluso con ajustes de iluminación](https://rvso.com/image/568261/La%20memoria%20del%20VPS%20se%20agota%20incluso%20con%20ajustes%20de%20iluminaci%C3%B3n.png)
Novato de Linux aquí. Tengo un VPS de 256 MB en el servidor Ubuntu 11.04 y cuando ejecuto "free -m" el resultado muestra toda la memoria en uso (incluida la segunda línea sobre: buffers/cache). Esto me pareció muy extraño, considerando que solo tengo 5 procesos de Apache ejecutándose, cada uno de los cuales consume alrededor de 20 MB cada uno. MYSQL ocupa 30 MB. Que yo sepa, y según "arriba", no tengo otros acaparadores de memoria en funcionamiento.
Configuraciones que pueden ser relevantes:
PHP memory_limit = 32M
MYSQL key_buffer = 16M
Prefork MPM Maxclients = 10
Entonces, cuando revisé estas configuraciones, naturalmente pensé que maxclients era demasiado alto, así que intenté cambiarlo a 5. Ahora no solo mi memoria sigue mostrándose como 100% utilizada, sino que mi sitio web se carga mucho, mucho más lento, a pesar de no recibir tráfico. aparte del mío en este momento. No entiendo esto. Pensé que un solo proceso de Apache maneja todas las solicitudes de un cliente recibidas dentro de la ventana "KeepAliveTimeout", que configuré en 2 segundos. Con mi configuración inicial. De 10 maxclients, los tiempos de carga de mi página son de alrededor de 0,3 ms, por lo que un solo proceso debería manejar eso sin problemas, ¿correcto?
Luego pasé al nivel extremo 1 para maxclients. Mi memoria todavía está al 100% de uso y mi sitio se carga tremendamente lento. Soy un novato completamente perdido aquí. Según los muchos tutoriales que he leído sobre la configuración básica del servidor, debería estar listo.
¡Ayuda! ¡Por favor!
Edit:
total used free shared buffers cached
Mem: 256 256 0 0 0 0
-/+ buffers/cache: 256 0
Swap: 0 0 0
Respuesta1
Esto se debe a que Linux utiliza la mayor parte de la memoria como caché y devuelve partes de ella según sea necesario para cualquier aplicación que ejecute.
Así que no entre en pánico.Estás bien. Vuelva a cambiar los MaxClients a los valores predeterminados.
EDITAR: parece que estás ejecutando OpenVZ. Vea la respuesta de David Schwartz a continuación.
Respuesta2
No tiene intercambio, lo que hace que al sistema operativo le resulte muy difícil conservar la memoria física. Básicamente, no tiene un lugar para colocar datos a los que probablemente nunca se accederá pero a los que no se puede demostrar que nunca se accederá. Por lo que no le queda más remedio que guardarlo en la RAM.
Considere, por ejemplo, un servicio que se inicia cuando se inicia su servidor pero al que nunca jamás se accede. Puede vincularse a una biblioteca que se reubica. Esa reubicación ensucia las páginas de códigos en la memoria. Al iniciarse, probablemente asignará algo de memoria y modificará su contenido. Con el intercambio, después de que el servicio no se ejecuta durante un largo tiempo, o cuando la memoria es escasa, esas páginas se pueden expulsar de la memoria y almacenar en el intercambio. (Lo más probable es que nunca se recupere, pero el kernel no puede arriesgarse a eso; ¡considere un servicio como ssh
!)
Sin intercambio, el kernel no tiene forma de expulsar las páginas sucias, incluso si no se ha accedido a ellas durante días. Así que la preciosa memoria física se llena de basura inútil.
Actualizar: Aparentemente, esto es un artefacto de OpenVZ. Hay intercambio y los números de memoria que estás viendo no tienen sentido. Sus problemas de rendimiento pueden deberse o no a algo que esté bajo su control.