configuration – Host móvil: preocupación por el límite de memoria de PHP

Pregunta:

Estoy moviendo mis proyectos de Bluehost a GreenGeeks, y me preocupan los límites de memoria PHP de Drupal (v7). Tal vez estoy demasiado preocupado, pero ¿alguien ha experimentado algún problema con GG o BH sobre la ejecución de Drupal para los proyectos comerciales de los clientes que requieren niveles de memoria PHP más que la media por encima de 64meg hasta un requisito de memoria máximo de 128meg? Cualquier comentario es bienvenido.

Respuesta:

Un límite de memoria de 128 M a menudo no es "más que el promedio" para un proyecto de Drupal. Además, solo porque haya especificado 128M como límite de memoria, eso no significa que su servidor web le esté dando tanto (o incluso la mitad).

Dejame explicar. Usaré Commerce Kickstart v2 con la tienda de demostración instalada como ejemplo (que coincide con una tienda Commerce de tamaño mediano). Tiene 10 tipos de contenido, 6 tipos de productos. 146 módulos instalados, de los 23 proporcionados por el núcleo de Drupal y 123 contrib.

La instalación de Commerce Kickstart requiere 77M de RAM (uso máximo de memoria xhprof). Una página de Kickstart (página principal, la vista que enumera productos en una categoría, página de búsqueda por facetas) toma alrededor de 17M (según lo informado por devel). Este número puede aumentar fácilmente en las páginas de administración que muestran muchos elementos, o gracias a un módulo que no funciona correctamente.

Nuestro requisito de límite de memoria mínimo para Kickstart es 128M, basado en nuestra experiencia personal en el desarrollo de sitios Drupal (es fácil obtener "límite de memoria excedido" con menos que eso). Además, si el servidor no tiene suficiente memoria al generar la solicitud, no le dará la cantidad que solicitó. Lo vi con mis propios ojos (MacBook Pro, Chrome con un millón de pestañas, solo queda un poco de RAM. PHP no puede asignar 77M de RAM a pesar de que el límite de memoria es de 128M). También vi esta queja de personas con alojamiento compartido (creo firmemente que ejecutar algo más que un blog en alojamiento compartido es puro masoquismo sin excusa en la era de los VPS baratos).

¿Por qué Drupal necesita tanta memoria? Entre otras cosas, debido a que tiene un problema de caché (que por supuesto guarda su base de datos), a Drupal le gusta almacenar en caché TODAS las vistas en un lugar, TODOS los campos en un solo lugar, etc. Entonces, una vez que obtenga un sitio con muchos tipos de contenido, campos, vistas, los cachés se vuelven enormes y todos se cargan en su memoria con cada solicitud. Afortunadamente, esto se está solucionando mientras hablamos, gracias a personas como catch (consulte este artículo para obtener más detalles).

La corrección de Views se comprometió hace unos días y ahora está disponible en 7.x-3.x-dev. Citando # 29 de ese hilo, donde el uso de memoria para Vistas cayó de 34M a 17M:

Entonces, para el uso normal, hay una mejora del 15% en el tiempo de ejecución y una mejora del 49% en el uso de la memoria.

También hay una corrección RTBC para los campos en el núcleo de Drupal que deberían aparecer en la próxima versión de Drupal 7. Los puntos de referencia mostraron ahorros entre 1 millón y 50 millones (según la cantidad de campos).

Hay una solución en progreso para la lista del sistema (módulo y tema) en el núcleo de Drupal que también debería reducir uno o dos megabytes.

Entonces, instale Devel, vaya a admin / config / development / devel, habilite "Mostrar uso de memoria" y descubra cuánto necesitan sus páginas. También siga las correcciones que mencioné, pruébelas y vea cuánto le ayudan (me dan algunos megabytes de ahorro en la instalación de Kickstart, que aún cuenta).

Y, por supuesto, busque un alojamiento decente (no sé si GreenGeeks es decente, no tengo mucha experiencia en ese campo), establezca un límite de memoria decente y no se preocupe demasiado 🙂

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım