Generalidades
Todos los servidores privados virtuales (VPS) de DreamHost utilizan aproximadamente 100 MB de memoria como base sin que se ejecuten procesos de usuario. Esto se debe a que hay varios procesos del sistema que deben ejecutarse para que tu VPS funcione (sshd, proftpd, etc.). Es importante que tengas esto en cuenta al asignar memoria para tu VPS, ya que esos 100 MB iniciales de memoria son en gran parte inutilizables para los procesos de tu sitio.
Después de esos 100 MB iniciales, la mayor parte de la memoria que utiliza tu VPS consiste en procesos Apache y PHP (o en el caso de aplicaciones Rails, procesos Passenger y Rails).
Ejemplo de cómo los procesos utilizan la memoria
Cada vez que alguien ve tu sitio web, el archivo PHP de la página que ve se analiza y ejecuta mediante un proceso PHP CGI. Al mismo tiempo, será necesario ejecutar un proceso de Apache para entregar la salida HTML resultante del script al navegador.
La cantidad de estos procesos que se ejecutan es proporcional a la cantidad de tráfico que tiene. Por ejemplo, si tienes una gran afluencia de tráfico, se generarán procesos PHP y Apache adicionales para facilitar ese tráfico. De hecho, Apache y PHP continuarán generando procesos según lo solicitado hasta que tu VPS esté completamente sin memoria.
Deberás tener cuidado con la forma en que configuras las cosas para evitar tales problemas. Esto a menudo conduce a problemas en los que los sitios web en un VPS dejarán de funcionar debido a la saturación de la memoria durante las horas pico y luego comenzarán a funcionar normalmente nuevamente una vez que el tráfico disminuya a niveles más manejables.
Verificar tu uso de memoria
Puedes ver un gráfico del uso de memoria de tu servidor privado en tu panel.
- Ve a la página VPS.
- A la derecha de tu VPS, haz clic en el icono de gráfico de RAM debajo de la columna Uso.
El gráfico de uso de memoria en tu panel web es útil para ver las tendencias de uso, pero no es realmente útil para obtener una buena imagen de lo que realmente está sucediendo en tiempo real, ya que estos gráficos generalmente se actualizan una vez al día alrededor de la medianoche PDT/PST y son un promedio del uso del día.
Los comandos top, free y ps aux
Para obtener más información sobre lo que está sucediendo exactamente, necesitarás entrar por SSH a tu VPS.
Abre dos conexiones en ventanas separadas para que pueda revisar fácilmente los resultados.
Una vez que estés dentro, las herramientas principales que utilizará son top -c, free -m, y ps aux.
Usar el comando top
El comando top muestra los procesos activos actuales, el porcentaje de CPU que están usando, cuánta memoria, qué usuario la está ejecutando, etc. Una vez que top esté corriendo, puedes presionar Shift + m para ordenar los procesos por uso de memoria en lugar de por uso de CPU.
Mientras examinas tu salida principal, es importante saber qué información necesitas mirar. La asignación de memoria que configuraste en tu panel se relaciona con la memoria física que se está utilizando (a diferencia de la memoria virtual). Esa memoria corresponde a la columna RES en el comando top. Abajo de top ordernado por la memoria (Shift + m) podría verse así (los procesos reales probablemente serán diferentes en tu VPS):
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 14871 exampleu 20 0 250m 14m 8340 S 5 1.3 0:04.12 php74.cgi 23591 exampleu 20 0 250m 12m 8256 S 6 1.3 0:00.36 php74.cgi 23618 exampleu 20 0 250m 13m 8256 S 4 1.3 0:00.19 php74.cgi 23684 exampleu 20 0 250m 12m 8256 S 7 1.3 0:00.10 php74.cgi 23652 exampleu 20 0 250m 13m 8256 S 6 1.3 0:00.18 php74.cgi 23654 exampleu 20 0 250m 15m 8252 S 6 1.3 0:00.17 php74.cgi
En el ejemplo anterior, verás una serie de procesos php74.cgi en ejecución, lo que significa que el sitio que genera estos procesos se ejecuta bajo PHP 7.4. En la columna RES, puedes ver cuánta memoria está usando cada uno. En este caso, todos utilizan entre 12 y 15 MB de memoria. En un VPS ocupado, es probable que tenga varios procesos de Apache en ejecución. Esos promedian alrededor de 9-11 MB de memoria cada uno. Los procesos de Apache y PHP se multiplican a medida que tus sitios comienzan a atender más solicitudes, por lo que puede ver que el uso de memoria puede dispararse fácilmente si comienzas a recibir mucho tráfico.
Usar el comando libre
En tu otra ventana, puedes correr free -m. Este comando muestra el uso de memoria actual en tu VPS y debería verse así:
total used free shared buffers cached Mem: 4049 3941 107 0 123 1639 -/+ buffers/cache: 2178 1870 Swap: 6165 42 6122
La opción -m le dice al comando que muestre el uso de memoria en megabytes.
total — en el ejemplo anterior, la memoria total disponible es de aproximadamente 4 GB. Puedes ver este valor como 4049 MB en la columna total.
used — Debajo de la columna used en la segunda fila, muestra 2178 MB. Esto significa que se utilizan 2,1 GB.
free — Debajo de la columna free en la segunda fila muestra 1870 MB. Esto significa que 1.8GB es gratis.
El total que ve debe corresponder a la cantidad de memoria que asignó a su VPS en tu panel.
Para obtener más detalles sobre cómo se ve el uso de la memoria, visita lo siguiente:
Usar el comando ps aux
ps te proporciona información similar a top, pero simplemente toma una captura de los procesos activos y tu uso y la muestra en tu pantalla. Esto es útil si solo deseas ver un proceso en particular. Por ejemplo, si solo deseas ver la ejecución de procesos de Apache, corre el siguiente comando:
[server]$ ps aux | grep apache
Eso "canalizará" (o pasará) la salida de ps al comando grep Eso "canalizará" (o pasará) la salida de ps al comando apache en ella. Se muestra cualquier línea con esa salida.
Otra variación útil es:
[server]$ ps aux | grep php
Esto te permite observar todos los procesos PHP que se están ejecutando.