Domanda

Nella documentazione dice "per lo più usata per il debug" che mi condurrebbe pensare "mai abilitarlo a meno che tu non abbia un problema e devi fare qualche debug", ma la lettura per lo più tutto ciò che potrei trovare, dice per abilitare"opcache.enable_cli 1" ma perché?Non sono riuscito a trovare alcuna informazione riguardante questa questione, quindi se qualcuno lo sa, perché dovrei abilitarlo se la documentazione afferma fondamentalmente di tenerlo su 0?

È stato utile?

Soluzione

Lasciare via.È principalmente lì per l'uso durante il debug dei problemi con Opcache stesso.

L'opzione opcache.enable_cli consente l'opcache PHP durante l'esecuzione di script PHP dalla riga di comando (utilizzando il comando php).Tuttavia, tenere presente che per PHP 5.x L'estensione dell'opcache funziona memorizzando gli opcode nella cache nella memoria del processo corrente .Questo è utile solo quando il processo che esegue PHP gestirà più richieste che possono riutilizzare questi opcode, come in un server Web o in FastCGI.Per un processo come il PHP CLI, che esegue una "richiesta" ed esce, rifiuta solo memoria e tempo.

Altri suggerimenti

Con PHP7 e cache basati da file, ora può avere senso abilitare OPCAche per CLI. La migliore possibilità sarebbe avere un php.ini separato per CLI con la seguente configurazione:

opcache.enable=1
opcache.enable_cli=1
opcache.file_cache="/tmp/php-file-cache"
opcache.file_cache_only=1
opcache.file_cache_consistency_checks=1
.

opcache.file_cache_only=1 Assicura che l'opcache in-memory sia disabilitato e vengano utilizzati solo i file, che è quello che vuoi per CLI. Questo dovrebbe aumentare il tempo di esecuzione da un bel po '.

In PhP.INI per FPM, vorrai avere le stesse impostazioni ma utilizzare opcache.file_cache_only=0, quindi viene utilizzata opcache in memoria e la cache del file viene utilizzata come fallback (che fa anche il fpm più velocemente, perché la cache del file Riduce il tempo di riscaldamento quando il fpm viene riavviato o l'opcache viene ripristinato, perché i file memorizzati nella cache rimangono).

In questo modo, CLI e FPM condividono la cache del file e FPM ha la cache in memoria come una seconda cache primaria per la massima velocità. Un grande miglioramento di PHP7! Assicurati di scegliere una directory per opcache.file_cache a cui è possibile scrivere sia cli che fpm e che lo stesso utente fa la scrittura / lettura.

Aggiornamento 2017

Non consiglierei di utilizzare la cache del file con FPM (solo usarlo per CLI), perché non c'è modo di reimpostare la cache durante l'impostazione opcache.validate_timestamps=0: la cache del file impedisce PHP-FPM di riconoscere qualsiasi modifica, perché opcache_reset() Oppure anche un riavvio completo di PHP-FPM non influisce sulla cache dei file e non c'è equivalente per la cache del file, quindi gli script modificati non vengono mai notati. Ho riportato questo come un "< bug " / " Richiesta di funzionalità " a marzo 2016, ma questo non è attualmente visto come un problema. Basta attenzione se usi opcache.validate_timestamps=0!

come da Doch PHP : .

.

opcache.enable_cli boolean Abilita la cache dell'OPCODE per la versione CLI di PHP.Questo è per lo più utile per il test e il debug.

Pertanto dovrebbe essere disabilitato a meno che tu non abbia davvero bisogno di questo.

Questo può essere utile quando si è un processo di migrazione a lungo termine in esecuzione dalla riga di comando (ho personalmente testato Opcache V7.0.3 per CLI eseguendo un certo ampio script di migrazione e non ho visto molti miglioramenti delle prestazioni).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top