Tengo una tarea programada que ejecuta un script de forma regular (cada hora). Esta secuencia de comandos tiene una fuerte interacción con la base de datos y el sistema de archivos, y regularmente demora varios minutos en ejecutarse. El problema es que los picos de uso de la CPU del servidor se están ejecutando y ralentiza las operaciones normales. ¿Hay alguna manera de acelerar este proceso para que tome más tiempo pero no consuma tantos recursos?Sugerencias/trucos para limitar un script PHP
He examinado diferentes opciones de configuración para PHP, pero no parece haber ninguna que se ajuste a mis necesidades.
Configurar memory_limit en php.ini a algo más bajo hace que mis objetos de datos se desborden con bastante facilidad.
He visto publicaciones similares donde las personas sugirieron usar sleep() en ciertos puntos del script, pero eso no impide que el script active el servidor.
La solución óptima sería de alguna manera indicarle a la pila de la lámpara (en este caso, Wamp) que use solo el 10% de la utilización máxima de la CPU. No me preocupa en absoluto el tiempo de ejecución y preferiría que llevara más tiempo si eso significara salvar ciclos de CPU por segundo. Mi solución alternativa sería configurar un servidor diferente con replicación de base de datos para que el cron pueda ir a la ciudad sin ralentizar todo lo demás.
Medio Ambiente: 2k3 Windows Server, Apache 2.2.11, PHP 5.2.9, MySQL 5.1
aprecio cualquier penetración a esta situación.
EDIT: Agradezco todas las respuestas, incluso las que son * nix-specific. Todavía es lo suficientemente temprano en mi situación para cambiar el entorno de alojamiento. Afortunadamente, esta pregunta ayudará a otros, independientemente del sistema operativo.
Vaya, lo siento. Veo que estás ejecutando Windows. ¡Fui arrojado por las etiquetas 'lámpara' y 'cron'! – grossvogel
Gracias por su respuesta de todos modos. Todavía es posible en mi situación cambiar el entorno, por lo que aún considero útil su solución. –