Problemas con Server y Drupal: ¿ 2GB de RAM suficientes ?

Events happening in the community are now at Drupal community events on www.drupal.org.
elpoderosoperu's picture

Saludos, estoy al borde del colapso. He alojado mi sitio en un server que me ofrece 2GB de Ram, el problema es que cuando supero las 100 conexiones simultaneas este colapsa. Mi sitio está construido en Drupal 7, migré 10 mil nodos de Joomla y todo parecía andar bien. En mi sitio sólo uso, Pathauto, Views, Token, Tabs y nada más. Mi pregunta es, ¿si quiero por lo menos a mil conectados a la vez, debo aumentar más RAM? O puedo optimizar, si requiero aumentar a cuanto?? ¿¿ 4GB, 6GB?

Espero su respuesta porque mi sitio cae a cada rato y eso me quita visitantes

Comments

interesting

cordoval's picture

what are you using nginx or apache2?
maybe it is just fine tuning the apache

Hi interesting. I used

elpoderosoperu's picture

Hi interesting. I used Apache. this is a message received: "A member of our monitoring team found your server in an OOM (out of memory)
state today, and rebooted it."

La Base de Datos

hatuhay's picture

Lo más probable es que no sea problema de la memoria sino del número de conexiones simultáneas a la base de datos.
Si es un Share Hosting tienes solo 15 conexiones simultáneas disponibles, comienza a pensar en un VPS. Eso está en las letras chiquitas del contrato.
Si es un VPS debes revisar la configuración de MySQL y verificar el número de conexiones simultáneas que se ha configurado.
Algunos paliativos:
- Deshabilita las conexiones persistentes a la base de datos.
- Deshabilita el registro de ocurrencias a la base de datos.
- Reduce el número de indexaciones al Search por Cron e incrementa la frecuencia del Cron
- Si usas Ads graba la estadística en caché y aumenta el número de archivos de registro.
- Utiliza Elysia Cron para administrar qué funiones de Cron se ejecutas cuando.
- Las tablas más usadas (CACHES, REGISTRO y COMENTARIOS) pásalas de MyISAM a Innodb
Saludos

Hola hatuhay, te comento que

elpoderosoperu's picture

Hola hatuhay, te comento que uso storm de liquidweb, es una suerte de miniservidor dedicado, ligeramente superior a un VPS. El numero de conexiones simultaneas fue incrementado a 150 hace una hora, pero el operador me advierte que Apache podría colapsar. No entiendo mucha la amplia explicación, pero googlearé con las pistas que me da. Lo que sí quisiera saber es si vale la pena subir la RAM para al menos 500 usuarios simultaneo o con la optimización podría arreglarse. Gracias

Si tuviera esos problemas,

ipwa's picture

Si tuviera esos problemas, personalmente problabemente:

  • Migraría mi sitio de Drupal a Pressflow
  • Instalaría APC (y el módulo de Drupal) o/y instalaría Memcached (y el módulo de Drupal)
  • Instalaría Varnish (y el módulo de Drupal)
  • Usaría el módulo Cache Router

http://pressflow.org/
http://drupal.org/project/apc
http://drupal.org/project/memcache
http://drupal.org/project/varnish
http://drupal.org/project/cacherouter

--
Nicolas

Interesante, busco

elpoderosoperu's picture

Interesante, busco información sobre PressFlow, pero veo que hay que modificar la configuración de Apache e instalar varios módulos, el problema es que yo alojo varios sitios de tráfico mínimo en mi servidor y no se si habría problema..??

Bajé e instalé Pressflow, es

elpoderosoperu's picture

Bajé e instalé Pressflow, es un Drupal más, ahora me pide actualizar la Core..Debo bajar por FTP los archivos de actualización???

Hay montones de formas de

ywarnier's picture

Hay montones de formas de optimizar, pero según tengo entendido en tu caso diría lo siguiente:

  • para 1000 visitantes *simultáneos* (a una frecuencia de una carga de página cada 5 segundos en promedio) quiere decir que tienes 200 consultas por segundo. Es enorme para un VPS con 2GB de RAM sin optimización, a menos que tu sitio sea muy ligero, pero views y token ambos pesan bastante (obvio, depende de lo que haces con ellos).
  • Las views en Drupal 7 pueden ser almacenadas en caché: checkea la opción "Advanced" en cada una de las vistas y pon las views no críticas pero frecuentemente mostradas en caché "Time based" con algo de 30 minutos. Te ahorrará montones de consultas a la base de datos.
  • es importante analizar cuanta memoria RAM usa cada instancia de Drupal. Lo puedes medir con el módulo Devel mostrando datos debajo de la página como admin
  • instalar el módulo Boost: si tus usuarios no tienen que registrarse y conectarse con una cuenta, Boost te dará resultados extremos (tip: tienes que crear una carpeta /cache y configurar Boost para que te genere caché por lo menos de 5 minutos para todas tus páginas). Ojo que Boost almacena páginas generadas por PHP en la forma de ficheros. Esto está bien si tu servidor tiene un disco rápido o si tienes memoria de sobra, pero si no tienes ninguno de los dos el impacto será menos importante.
  • ni apc, ni memcache, ni varnish serán fáciles de instalar en un servidor en el cual no tengas acceso en línea de comando, pero Varnish definitivamente es el segundo elemento más beneficioso después de Boost (en un sitio mio dió un incremento de 800% en rapidez de respuestas a consultas *masivas*)
  • si es que tienes muchas imágenes en tus páginas, puede valer la pena instalar el módulo CDN con Nginx (otro servidor web que es mucho más ligero y puede correr en otro puerto), pero la verdad es que, después de usarlo varias veces con Drupal 7, requiere de bastante trabajo para llegar a hacerlo funcionar como se debe
  • tener archivos más pequeños (una página más ligera) significa que los usuarios ven tu página más rápido, y pueden pasar de una página a la otra más rápido, lo que aumenta la cantidad de páginas vistas (si tu modelo de negocio está basado en visitas de páginas, tiene un impacto directo).
  • un Drupal de base (sin optimizaciones) es bastante "glutón" en memoria, y 2GB es poco si quieres tener muchas visitas, más que todo si estos 2GB tienen que servir para base de datos, php y servidor web. Todo depende de tu modelo de negocio y de la cantidad de esfuerzos que estás dispuesto a dedicar a la optimización.
  • por casualidad voy optimizando sitios Drupal en los 10 últimos meses como actividad a casi medio tiempo. Una conclusión: no hay una solución que funcione para todos, pero sí hay montones de módulos que tienen un impacto específico según el caso que tienes (cantidad de memoria, rapidéz de disco, usuarios, views, caché opcode, caché de sesiones, servidor de base de datos, etc), y muchos de estos módulos tienen sus bugs escondidos que aparecen en el peor momento :-)

Suerte con este tema! Lo necesario es tener paciencia con este pobre servidor...

Yannick Warnier
Manager y Consultor e-learning - http://www.beeznest.com
Presidente - Asociación Chamilo - http://www.chamilo.org

Gracias por este aporte,

elpoderosoperu's picture

Gracias por este aporte, estoy revisando cada una de las opciones. Sólo una duda, es posible instalar varnish como modulo y reducir en algo las consultas al server??? No necesito otra configuración? Gracias por el aporte

Hola Ywarnier, gracias por

elpoderosoperu's picture

Hola Ywarnier, gracias por esta info. Como para complementar algunas consultas, revisaba en tutoriales y encontré un hilo en donde se señala que para instalar Varnish con Drupal 7 (que es el que poseo) se requiere una configuración mínima de Apache. Mi duda es si al instalar Varnish en Apache, afectaría la configuración de otros tres sitios alojados en el mismo server, uno corre en Wordpress y otros en Joomla. Veo que se habla de cambiar el puerto (80) que esta por defecto, si fuera así, que configuraciones adicionales necesitaría. Gracias de antemano

Contratar un buen syadmin?

oskar_calvo's picture

Contratar un buen syadmin?

antoniomanco's picture

Interesante este hilo, tengo un problema similar aunque no tan grave. Mi sitio corre con Varnish y Memcached, supero en ocasiones los 600 conectados a la vez. Mi duda es, ¿si instalo Boost mejoro aún mas el rendimiento? o ya no sería necesario.

Hay algún módulo para dividir el tiempo de cache por bloques. Es decir poner 1 hora de cache a las views de artículos relacionados, 2 horas a artículos de la sección, etc.

Saludos.

Boost es únicamente para

oskar_calvo's picture

Boost es únicamente para anónimos.

Deberías plantear mejor una arquitectura de varias máquinas de apache, y luego tener una bbdd esclava para lecturas, y la bbdd maestra solo para escritura.

Entiendo que además de Varnish y Memcached, tienes bien configuradas las opciones de mysql y de apc, no?

Oskar

Hola Oskar, tu propuesta de

antoniomanco's picture

Hola Oskar, tu propuesta de arquitectura es interesante pero no tengo mucho presupuesto.

Tengo la configuración básica de Varnish y Memcached y me ayuda en algo. ¿Cuándo me hablas de APC te refieres al módulo Alternative Php cache ?? Porqué no lo tengo instalado y entiendo que es sólo para usuarios lógueados.

Gracias por el aporte

APC mejora el rendimiento

oskar_calvo's picture

APC mejora el rendimiento general de php al llevar a memoria los archivos.

Te has mirado las opciones de pressflow.

De todas formas tienes problemas con anónimos o con autentificados.

Porque la caché normal + cdn + advanced agregator + varnish + memcache + apc debería ser suficiente.

Oskar

Spanish

Group organizers

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: