-
Added the following to
/usr/local/lib/strangecode_php_memory_log.php
<?php function strangecode_php_memory_log() { $current = memory_get_usage() / 1024 / 1024; $peak = memory_get_peak_usage() / 1024 / 1024; $uri = $_SERVER['REQUEST_URI'] ?? 'n/a'; $message = sprintf("current: %6.1f MB peak: %6.1f MB uri: %s\n", $current, $peak, $uri); error_log($message, 3, '/var/log/php-fpm/php_memory.log'); } register_shutdown_function('strangecode_php_memory_log');
-
Created the log and set permissions to allow writing from anywhere
touch /var/log/php-fpm/php_memory.log chmod 666 /var/log/php-fpm/php_memory.log
-
Added following to
/etc/php-fpm.d/www-prod.conf
php_admin_value[auto_prepend_file] = /usr/local/lib/strangecode_php_memory_log.php
# average the memory columns across entire log file
awk '{sum+=$5} END {print sum/NR,"MB/request (peak average)"}' /var/log/php-fpm/php_memory.log
awk '{sum+=$2} END {print sum/NR,"MB/request (average)"}' /var/log/php-fpm/php_memory.log
# sort by uri
sort -t/ -k2 /var/log/php-fpm/php_memory.log | less
# descending sort by peak memory usage column
sort -rnk5 /var/log/php-fpm/php_memory.log | less
# descending sort by current (i.e. during shutdown) memory usage column
sort -rnk2 /var/log/php-fpm/php_memory.log | less