Quando si sviluppa un sito web usando PHP, se alcune pagine dinamiche PHP sono molto lente da accedere dopo il lancio, possiamo analizzare il collo di bottiglia del sito tramite log lenti php-fpm.
L'impostazione PHP-FPM Slowlog ci permette di vedere quali processi PHP sono troppo lenti e causano problemi al sito web.
Per prima cosa, controlla tutti i processi tramite il comando top -c per vedere l'indirizzo del file di configurazione caricato da php-fpm, come mostrato nella figura sottostante:
Configurazione FPM
parametro: -p, modificare dinamicamente --prefisso nella riga di comando
include=etc/php-fpm.d/*.conf per contenere uno o più file se esiste glob(3) (la funzione glob() restituisce un nome file o una cartella che corrisponde al pattern specificato)
PHP-FPM carica un sottofile di configurazione, $pool variabile può essere usata in qualsiasi direttiva e sostituirà il nome corrispondente del pool di processo. Ad esempio: qui[www]
Accendi i tronchi lenti
entrare/usr/local/etc/php-fpm.dSottoconfigurazione, trova www.conf (a seconda della tua situazione reale), PHP 5.3.3 e versioni successive sono impostate come segue:
; Il timeout per servire una singola richiesta, dopo il quale un backtrace PHP sarà ; scaricato nel file 'slowlog'. Un valore di '0' significa 'spento'. ; Unità disponibili: s(econds)(predefinito), m(inutes), h(nostri) o d(ays) ; Valore predefinito: 0 request_slowlog_timeout = 1 ; Il file di log per le richieste lente ; Valore predefinito: /usr/local/php/log/php-fpm.log.slow slowlog = /usr/local/php/log/php-fpm.log.slow ; Il timeout per servire una singola richiesta, dopo il quale il lavoratore procede ; Fatti uccidere. Questa opzione dovrebbe essere usata quando l'opzione ini 'max_execution_time' ; per qualche motivo non ferma l'esecuzione dello script. Un valore di '0' significa 'spento'. ; Unità disponibili: s(econds)(predefinito), m(inutes), h(nostri) o d(ays) ; Valore predefinito: 0 request_terminate_timeout = 10 Nota: request_terminate_timeout Terminare direttamente un processo che è stato in esecuzione troppo a lungo
request_slowlog_timeout Scrivere file troppo lenti per essere eseguiti nel log
D'ora in poi, puoi ottimizzare i file di programma in base al slow execution log /usr/local/php/log/php-fpm.log.slow!
|