Optimizando Apache y MySQL en Linux Xen VPS

10

Tengo un servidor privado virtual (VPS) Xen con Ubuntu 8.10, con 128M de RAM.

He encontrado varias páginas de "cómo optimizar Apache y MySQL para VPS con poca memoria" a través de Google, pero proporcionan información contradictoria. Entonces, le pregunto a Server Fault: ¿cómo se optimiza Apache y MySQL para una configuración de VPS con poca memoria?


Un par de personas han sugerido usar nginx en lugar de Apache. Lo investigaré, pero preferiría seguir con Apache si es posible, solo para evitar tener que aprender todo sobre la configuración de pilas de aplicaciones en la parte superior de un servidor web desconocido (para mí).

Kristopher Johnson
fuente

Respuestas:

7

Nginx es excelente, pero si desea seguir con Apache, es posible reducirlo un poco desde la configuración predeterminada:

  • Utilice el MPM de trabajo en lugar de prefork (con MPM de trabajador Apache ya no tiene un modelo de "proceso por conexión").
  • Mire todos los módulos compartidos que está cargando, deshágase de los que no necesita.
  • Evite incrustar servidores de aplicaciones dentro de Apache (es decir, mod_python, mod_php, etc.) si puede evitarlo. En su lugar, ejecute servidores de aplicaciones en un proceso separado y tenga un proxy Apache para ellos (es decir, para el código Python use mod_wsgi en modo demonio). De esta manera, sus hilos de Apache que simplemente sirven contenido estático no se hincharán innecesariamente.
  • En su configuración de Apache, reduzca las configuraciones StartServers, MaxClients, MinSpareThreads y MaxSpareThreads. Dependiendo de su carga esperada, a veces puede reducirlos en un factor de cinco o más desde la configuración predeterminada.
Carl Meyer
fuente
2

Si tiene restricciones de memoria, recomendaría usar nginx como alternativa si es posible. Consume mucha menos memoria que Apache y, según sus necesidades, podría ser todo lo que necesita.

Como beneficio adicional, nginx tiende a ser significativamente más rápido que Apache. =)

Jauder Ho
fuente
2

Zanja apache, su proceso por modelo de conexión no jugará con tu VPS de memoria baja.

Sugiero nginx como reemplazo.

Dave Cheney
fuente
44
Esto es solo un problema para 1.3. apache 2.x permite módulos de proceso conectables, incluido MPM, que ejecuta muchos subprocesos en una pequeña cantidad de procesos. Todo sintonizable al gusto
Vagnerr
Sí, pero nginx seguirá siendo un proceso más pequeño
Dave Cheney,
2
Sí, pero eso no fue lo que dijiste