Quale cacher del codice operativo PHP dovrei utilizzare per migliorare le prestazioni?[Chiuso]

StackOverflow https://stackoverflow.com/questions/28716

  •  09-06-2019
  •  | 
  •  

Domanda

Sto cercando di migliorare le prestazioni sotto carico elevato e vorrei implementare la memorizzazione nella cache del codice operativo.Quale dei seguenti dovrei usare?

Sono aperto anche a qualsiasi altra alternativa che sia sfuggita al mio radar.

Attualmente in esecuzione su una Debian Etch stock con Apache 2 e PHP 5.2

[Aggiornamento 1]

Aggiunti collegamenti di installazione di HowtoForge

[Aggiornamento 2]

Sulla base delle risposte e dei feedback forniti, ho testato tutte e 3 le implementazioni utilizzando il seguente piano di test Apache JMeter sulla mia applicazione:

  • Login
  • Accedi alla pagina iniziale

Con 50 connessioni simultanee, i risultati sono i seguenti:

Nessuna memorizzazione nella cache del codice operativo
No Opcode Caching

APC
APC

eAcceleratore
eAccelerator

XCache
XCache

Grafico delle prestazioni (più piccolo è, meglio è)
Performance Graph

Dai risultati di cui sopra, eAccelerator ha un leggero vantaggio in termini di prestazioni rispetto ad APC e XCache.Tuttavia, ciò che conta di più dai dati di cui sopra è che qualsiasi tipo di memorizzazione nella cache del codice operativo offre un enorme incremento delle prestazioni.

Ho deciso di utilizzare APC per i seguenti 2 motivi:

  • Il pacchetto è disponibile nel repository Debian ufficiale
  • Pannello di controllo più funzionale

Per riassumere la mia esperienza:

Facilità di installazione:APC > eAccelerator > XCache
Prestazione:eAccelerator > APC, XCache
Pannello di controllo:APC > XCache > eAccelerator

È stato utile?

Soluzione

Penso che la risposta potrebbe dipendere dal tipo di applicazioni web che stai utilizzando.Ho dovuto prendere questa decisione io stesso due anni fa e non sapevo decidere tra Zend Optimizer ed eAccelerator.

Per prendere la mia decisione, ho usato ab (apache bench) per testare il server, e ho testato le tre combinazioni (zend, eaccelerator, entrambe in esecuzione) e ho dimostrato che eAccelerator da solo ha dato le prestazioni migliori.

Se hai il lusso del tempo, ti consiglierei di fare tu stesso test simili e di prendere la decisione in base ai risultati.

Altri suggerimenti

Utilizzo APC perché è facile da installare in Windows e sto sviluppando su WAMP.

L'integrazione di APC in PHP6 è stata discussa qui:http://www.php.net/~derick/meeting-notes.html#add-an-opcode-cache-to-the-distribution-apc

E ci sono indicazioni sull'installazione di APC su Debian Etch qui:http://www.howtoforge.com/apc-php5-apache2-debian-etch

Ne ho eseguiti diversi benchmark con eAcclerator, APC, XCache, e Zend Optimizer (anche se Zend è un ottimizzatore, non una cache).

Risultati benchmark http://blogs.interdose.com/dominik/wp-content/uploads/2008/04/opcode_wordpress.png

Risultato:eAccelerator è il più veloce (in tutti i test), seguito da XCache e APC.(Quello nel diagramma è il numero di secondi necessari per chiamare una home page di WordPress 10.000 volte).

Zend Optimizer ha reso tutto più lento (!).

Non posso dirtelo con certezza, ma il posto in cui lavoro ora sta guardando APC ed eAccelerator.Tuttavia, questo potrebbe influenzarti: APC sarà integrato in una futura versione di PHP (grazie a Ed Haber per il collegamento).

Ho avuto un buon successo con eAccelerator (il miglioramento della velocità senza carico è evidente) ma anche XCache sembra piuttosto promettente.Potresti voler eseguire alcune prove con ciascuno, tuttavia la tua applicazione potrebbe ridimensionarsi in modo diverso su ciascuno.

Utilizzo XCache da più di un anno senza alcun problema.

Ho provato a passare a eAccelerator, ma mi sono ritrovato con una serie di errori di segmentazione (perdona meno errori).Il vantaggio principale di eAccelerator è che non è solo una cache del codice operativo, è anche un ottimizzatore.

Dovresti testare completamente la tua applicazione con ciascuna di esse per assicurarti che non ci siano problemi, quindi utilizzerei apachebench per testarla sotto carico.

Questi componenti aggiuntivi hanno storicamente introdotto molti bug strani da rintracciare.Questi bug possono causare comportamenti incoerenti che non possono essere diagnosticati facilmente perché dipendono dallo stato della cache.

Quindi direi:

  1. Non utilizzare nessuno dei precedenti.Acquista invece più stagno, è più affidabile (ad es.senza errori) modo per aumentare le prestazioni.O
  2. Scegli quello che sopra è il più robusto, dopo aver testato i pantaloni della tua applicazione.

Ma direi:

  1. Assicurati che sia VERAMENTE l'analisi del codice PHP a causare problemi di prestazioni profilando la tua applicazione.Penso che sia estremamente probabile che non lo sia, nel qual caso sprecheresti il ​​tuo tempo (in realtà, usando il tuo tempo in modo negativamente produttivo) installandone uno qualsiasi.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top