instalar - ¿Cómo puedo monitorear el uso de memoria de php en linux?
php info (4)
He usado la herramienta masiva valgrinds para monitorear el uso de la memoria en el pasado.
¿Alguien sabe cómo capturar el uso de la memoria de los procesos php que se generan en un servidor linux lighttpd?
Descubrí que Valgrind no puede asociarse a un proceso de ejecución previa (y de todas formas no sabría el PID del proceso php)
Solo veo el uso de la memoria de lighttpd, no los procesos PHP generados por el módulo lighttpd cgi.
Gracias por adelantado.
¿No puedes usar la herramienta ''ps''?
$ ps -F -C php-cgi
UID PID PPID C SZ RSS PSR STIME TTY TIME CMD
http 10794 10786 0 4073 228 0 Jun09 ? 00:00:00 /usr/bin/php-cgi
http 10795 10794 0 4073 28 0 Jun09 ? 00:00:00 /usr/bin/php-cgi
http 10796 10786 0 4073 228 0 Jun09 ? 00:00:00 /usr/bin/php-cgi
http 10797 10796 0 4613 3544 0 Jun09 ? 00:00:00 /usr/bin/php-cgi
...
RSS es el tamaño de memoria real (conjunto residente) en kilobytes del proceso.
Para resumir todo en bash (un poco oxidado lo siento)
#!/bin/bash
total=0
for i in `ps -C php-cgi -o rss=`
do
total=$(($total + $i))
done
echo "Memory usage: $total kb"
# Output: Memory usage: 4540 kb
Un trazador de líneas:
total=0; for i in `ps -C php-cgi -o rss=`; do total=$(($total+$i)); done; echo "Memory usage: $total kb";
Sé que se cuestiona la confiabilidad de la parte de la memoria en ps , pero al menos te da una idea de cómo es el uso.
Además de los comandos XHProf que se muestran arriba, puedes usar XHProf para XHProf perfiles de tus scripts y XHGui para mostrar los resultados de perfiles en una aplicación de navegador agradable. Obtiene información detallada sobre cómo sus métodos usan la memoria y cuáles son los picos de uso de memoria dentro de su aplicación.
PHP tiene sus propias funciones de prueba de memoria, no sé si eso te sirve, pero si solo quieres iniciar sesión puedes usar: http://php.net/manual/en/function.memory-get-peak-usage.php
echo "Using ", memory_get_peak_usage(1), " bytes of ram.";
http://php.net/manual/en/function.memory-get-usage.php
Debería proporcionarle la cantidad de memoria que el hilo está utilizando desde el propio script. Creo que debido a que la secuencia de comandos (y el subproceso) solo existen durante unos pocos milisegundos a lo sumo, solo el tiempo que lleva generar la página, capturarla fuera de PHP puede ser difícil.
- Plan B
También puede obtener información de depuración del servidor que puede ser más precisa. Utilizo xdebug personalmente, y cuando emite un error / aviso, le da un seguimiento de la pila, el tiempo y el uso de memoria. Puede activarlo al final del script con:
trigger_error (''Finished'', E_USER_NOTICE);
Y te dará la información. No estoy seguro de captar los datos; si es necesario, puede haber una función en los documentos sobre cómo. Recuerdo vagamente que vi una.