Estoy en una situación en la cual se lleva a cabo:
Estamos en linode con 8 núcleos, 8 gb de ram , 2.6 ghz - utilizar nginx + php-fpm - estamos recibiendo muy alto de los gráficos de uso de cpu (que no queremos ser una mala VPS vecino)...
Tenemos alrededor de menos de 100 usuarios en el sitio, en un tiempo - por lo que esta situación también es muy vergonzoso - que nuestro uso de la cpu es muy alto.
Estamos usando un desconocido, posiblemente de la cpu php-sabio, dudosamente horrible Framework en lugar de un bien conocido, bien documentado, bien elaborados que otros frameworks como wordpress o drupal en el que hay un MONTÓN de documentación sobre el almacenamiento en caché (así como los plugins que se encargan de almacenamiento en caché) php en un nginx + php_fpm de la plataforma.
Por lo tanto, tenemos cerca de 6 abra php-fpm procesos que cuando se EJECUTA, consumir de forma individual GRANDE (+de 30, y a menudo cerca del 99%) de los importes de la cpu, y yo realmente no la más mínima idea de cómo dejar de usar tanta cpu. Yo no puedo decir que los scripts php están causando estos picos porque están sucediendo todo el tiempo... normalmente sólo 1 o 2 se ejecutan, pero cuando todos los 6 ejecutar maximizar los 8 cpus.
-
Mi piscina.d/www.conf archivo tiene la siguiente configuración:
pm = dynamic pm.max_children = 10 pm.start_servers = 4 pm.min_spare_servers = 2 pm.max_spare_servers = 6
Hicimos esto ^ la instalación debido a que, en la forma en que estoy interpretting, nuestra memoria es realmente increíble (htop mostrando 472/7000+mb usados, no intercambio, etc) y podemos manejar muchos más procesos y romper la línea de espera para obtener procesados - PERO, por desgracia, ya que cada proceso es demasiado intenso en nuestro cpu cuando se ejecuta - terminamos la conducción de nuestra CPU a través del techo por lo que no puede manejar los procesos.
La pregunta - ¿qué podemos hacer para reducir el proceso de php-fpm uso de la cpu, de modo que podemos aumentar la configuración de la piscina conf archivo de php-fpm - y también sí, el /var/log/php5-fpm.registro nos está gritando para aumentar nuestros niños y ajustar o aumentar nuestros min/max/start servidores. Pero al hacerlo hace que nuestro promedio de carga loco como se ha indicado anteriormente. ¿Cómo podemos hacerlo sin que necesariamente el uso de una caché o ¿cuáles son nuestras opciones?
Mi idea? He leído cosas sobre el uso de cpulimit para asegurarse de que ningún proceso se lleva más de un importe adjudicado de la cpu, pero se que las cosas más despacio a ser inutilizable? O al hacerlo podríamos aumentar nuestra capacidad de ejecutar más de un par de procesos - también pensé en correr dos piscinas - una para nuestra mirando hacia adelante sitio web (lo que la experiencia de los clientes) y otro para un backend (que está afectando a nuestra mirando hacia adelante sitio cuando el tiempo que consumen los informes se ejecutó).
He estado pasando unos días investigando, buscando en google, etc sobre este tema - y es difícil porque la situación de cada uno es tan único en su sistema - el problema es estar en un específico desconocido, posiblemente mal escrito - marco - es lo que es difícil encontrar una solución. No podemos chatarra de este marco todavía - tengo que encontrar una solución de algún tipo.
ACTUALIZACIÓN: me han implementado memcache para almacenar php - porque el marco de trabajo depende en gran medida de las sesiones de usuario y la naturaleza de nuestro sistema es que los empleados suelen utilizar varias pestañas a la vez - cada comprobación posterior a las sesiones para confirmar habilidades / datos de usuario de / etc... así que estoy esperando a ver algunos de aumento en el rendimiento de este - bienvenido a comentar que si usted quisiera - voy a ver cómo nos va mañana cuando lleguemos a través de nuestro mayor volumen de horas pico.