Velocizzare l'esecuzione di Joomla! con Zend Server Community ...

8 downloads 21042 Views 465KB Size Report
Zend Server Cache Adapter. ▷ Joomla! 1.5. ▷ Joomla! 1.6. ○ Benchmark di Joomla! ▷ Ver. 1.5.17 ... Interfaccia web per la gestione dell'ambiente PHP:.
Velocizzare l'esecuzione di Joomla! con Zend Server Community Edition Enrico Zimuel Senior Consultant & Architect Zend Technologies [email protected]

© All rights reserved. Zend Technologies, Inc.

Sommario ●

Zend Server Community Edition (CE)



Perchè eseguire Joomla! con Zend Server?



Come velocizzare Joomla! con Zend Server



Zend Server Cache Adapter





Joomla! 1.5



Joomla! 1.6

Benchmark di Joomla! ▶

Ver. 1.5.17

© All rights reserved. Zend Technologies, Inc.

Zend Server CE

© All rights reserved. Zend Technologies, Inc.

Che cos'è Zend Server CE? ●







Zend Server Community Edition è la versione gratuita di Zend Server, il PHP application server di Zend Technologies E' una soluzione completa, veloce ed affidabile per l'esecuzione di applicazioni PHP Disponibile per PHP 5.2 e 5.3 sui seguenti sistemi operativi: Gnu/Linux, Ms Windows, Mac OS X, IBM i Download: http://www.zend.com/products/server-ce/

© All rights reserved. Zend Technologies, Inc.

Zend Server CE ●

Alcune caratteristiche: ▶





Interfaccia web per la gestione dell'ambiente PHP: ●

Configurazione (php.ini)



Gesione estensioni PHP



Gestione file di log di PHP ed Apache



Riavvio dei servizi PHP

PHP Performance ●

Zend Optimizer+



Zend Data Cache

PHP Debugger ●



Zend Debugger

Java Bridge (eseguire classi Java da PHP) © All rights reserved. Zend Technologies, Inc.

Non solo la versione community... ●

Zend Server ▶ ▶





Supporto worldwide con SLA Funzionalità aggiuntive: Monitoring, Code Tracing, Job Queue, Page Caching, etc Aggiornamenti software e security hot fixes

Zend Server Cluster Manager ▶

Versione di fascia Enterprise



Supporto worldwide con SLA





Funzionalità aggiuntive: Cluster Manager, Session Clustering, High availability, Scalable architecture Aggiornamenti software e security hot fixes

© All rights reserved. Zend Technologies, Inc.

Joomla! e Zend Server

© All rights reserved. Zend Technologies, Inc.

Perchè eseguire Joomla! con Zend Server? ●



Velocizzare l'esecuzione tramite: ▶

Zend Optimizer+



Zend Data Cache

Facilitare la gestione dello stack PHP ▶

Interfaccia web di amministrazione



Eseguire il debug dei siti Joomla!



Monitorizzare l'esecuzione di Joomla! ▶ ▶

Tramite file di log (Zend Server CE) Utilizzando le funzionalità di Monitoring e Code Tracing (Zend Server/Cluster Manager) © All rights reserved. Zend Technologies, Inc.

Zend Optimizer+ ●







E' un acceleratore di codice PHP: tramite caching dell'opcode generato dall'interprete PHP Velocizza qualsiasi applicazione PHP senza nessun intervento sul codice sorgente Abilitato automaticamente in Zend Server In generale, gli aumenti di performance del codice PHP sono rilevanti

© All rights reserved. Zend Technologies, Inc.

Zend Optimizer+

© All rights reserved. Zend Technologies, Inc.

Zend Data Cache ●

Zend Data Cache è un sistema di cache per PHP (simile ad APC)



Due differenti backend: disco, memoria (shm)



PHP API: ▶





zend_disk_cache_store(), zend_disk_cache_fetch(), zend_disk_cache_delete(), zend_disk_cache_clear() zend_shm_cache_store(), zend_shm_cache_fetch(), zend_shm_cache_delete(), zend_shm_cache_clear()

Sistema di cache molto veloce ▶

Più veloce di Memcached ed APC

© All rights reserved. Zend Technologies, Inc.

Velocizzare Joomla! con Zend Server CE

© All rights reserved. Zend Technologies, Inc.

Installazione di Zend Server CE ●





Download: http://www.zend.com, area Download scegliere Zend Server Community Edition Esempio: installazione Linux ▶

Estrarre il pacchetto .tar.gz



Eseguire lo script ./install.sh



Installazione in /usr/local/zend

Configurazione di Zend Server CE: ▶

Collegarsi all'URL: http://localhost:10081



Scegliere la password di amministrazione

© All rights reserved. Zend Technologies, Inc.

Amministrazione di Zend Server CE ●

Via web: http://localhost:10081

▶ ●

Shell: ▶

/usr/local/zend/bin



zendctl.sh {start|stop|restart|...}

© All rights reserved. Zend Technologies, Inc.

Utilizzo di Zend Server CE ●



Per accelerare il codice PHP è sufficiente eseguire Joomla! su Zend Server CE (nessuna modifica del codice sorgente)

Per utilizzare il sistema di caching di Zend Server: ▶



Utilizzare il cache handler APC con il modulo di compatibilità verso Zend Server (apc_compatibility=On) Utilizzare il cache handler specifico per Zend Server (non ancora presente nella versione ufficiale di Joomla!) ●

Download su https://github.com/ezimuel © All rights reserved. Zend Technologies, Inc.

Cache di Joomla! 1.5

© All rights reserved. Zend Technologies, Inc.

Lo storage cache di Joomla! 1.6 ●





Joomla! 1.6 dispone di un sistema di caching più evoluto rispetto alla versione 1.5 Due tipologie di caching: ▶

Conservative (come in Joomla 1.5)



Progressive

Storage ufficialmente supportati: ▶

File, APC,XCache, eAccelerator, Memcached

© All rights reserved. Zend Technologies, Inc.

Cache di Joomla! 1.6

© All rights reserved. Zend Technologies, Inc.

APC compatibility mode ●







Zend Server CE può redirigere chiamate APC verso Zend Data Cache zend_datacache.apc_compatibility=On In questo modo tutte le applicazioni PHP, compreso Joomla!, che utilizzano APC possono essere utilizzare con Zend Server Community Edition senza nessuna modifica del codice Per utilizzare il sistema di caching di Zend Server con Joomla! è sufficiente selezionare il sistema di caching APC © All rights reserved. Zend Technologies, Inc.

Zend Server cache adapter per Joomla! ●

Progetto open source disponibile su Github



Download per Joomla! 1.5: ▶



Download per Joomla! 1.6: ▶



https://github.com/ezimuel/ZS_Cache_Adapter_Joomla15

https://github.com/ezimuel/ZS_Cache_Adapter_Joomla16

Pacchetto con i seguenti files: ▶

README



zendserver_disk.php (zendserverdisk.php in 1.6)



zendserver_shm.php (zendservershm.php in 1.6)

© All rights reserved. Zend Technologies, Inc.

Installazione per Joomla! 1.5 ●

Installazione: ▶

Copia dei file *.php nella directory Joomla: /libraries/joomla/cache/storage

© All rights reserved. Zend Technologies, Inc.

Installazione per Joomla! 1.6 ●

Installazione: ▶



Copia dei file *.php nella directory Joomla: /libraries/joomla/cache/storage Edit del file di lingua administrator/language/xxXX/xx-XX.ini ed aggiunta delle linee: JLIB_FORM_VALUE_CACHE_ZENDSERVERDISK="Zend Server Cache Disk" JLIB_FORM_VALUE_CACHE_ZENDSERVERSHM="Zend Server Cache Shm"

© All rights reserved. Zend Technologies, Inc.

Benchmark Joomla! con Zend Server CE

© All rights reserved. Zend Technologies, Inc.

Benchmark Joomla! 1.5.17 ●

Sistema utilizzato: ▶







CPU Intel Core 2 a 2.10 Ghz con 2 GB di RAM su Gnu/Linux OS kernel 2.6.28 Zend Server 5 CE, Apache 2.2.11, PHP 5.3.2, Memcached 1.4.5, APC 3.1.3p1, MySQL 5.0.45

Esperimento: ▶

Test sull'homepage di Joomla! con i dati di test



Test di carico: ab -n 100 -c 10



Media su 6 esecuzioni

Benchmark completo:

http://www.zimuel.it/blog/2010/06/benchmarking-zend-server-ce-with-joomla/

© All rights reserved. Zend Technologies, Inc.

Benchmark Joomla! 1.5.17 Acceleratori di codice PHP

Asse Y: Transfer Rate (Kbyte/sec) © All rights reserved. Zend Technologies, Inc.

Benchmark Joomla! 1.5.17 Acceleratori PHP + Cache

Asse Y: Transfer Rate (Kbyte/sec) © All rights reserved. Zend Technologies, Inc.

Benchmark Joomla! 1.6B11 ●

Sistema utilizzato: ▶





CPU Intel Core 2 a 2.10 Ghz con 2 GB di RAM su Gnu/Linux OS kernel 2.6.28 Zend Server 5.0.3 CE, Apache 2.2.11, PHP 5.3.3, Memcached 1.4.5, APC 3.1.4, MySQL 5.0.45

Esperimento: ▶

Test sull'homepage di Joomla! con i dati di test



Test di carico: ab -n 100 -c 10



Media su 4 esecuzioni

© All rights reserved. Zend Technologies, Inc.

Benchmark Joomla! 1.6R11 Acceleratori PHP 300,000

250,000

200,000

150,000

100,000

50,000

0,000 No accelerator

APC

Zend Optimizer+

Asse Y: Transfer Rate (Kbyte/sec) © All rights reserved. Zend Technologies, Inc.

Benchmark Joomla! 1.6R11 Acceleratori PHP + Cache 450,000

400,000

350,000

300,000

250,000

200,000

150,000

100,000

50,000

0,000 APC + Cache

ZSCE + Zend Data Cache (disk)

ZSCE + Zend Data Cache (shm)

Asse Y: Transfer Rate (Kbyte/sec) © All rights reserved. Zend Technologies, Inc.

ZSCE + Memcached 

Sintesi dei benchmark ●

Joomla! 1.5.17 ▶





Acceleratori PHP: Zend Server CE è circa il 13% più veloce di APC Cache: Zend Server CE è circa il 9% più veloce di Memcached e circa il 6% più veloce di APC

Joomla! 1.6B11 ▶



Acceleratori PHP: Zend Server CE è circa il 9% più veloce di APC Cache: Zend Server CE è circa il 35% più veloce di Memcached e circa il 21% più veloce di APC

© All rights reserved. Zend Technologies, Inc.

Riassumendo ●

Zend Server Community Edition consente di velocizzare l'esecuzione di Joomla! ▶





Accelerazione del codice PHP (Zend Optimizer+) Sistema di caching per Joomla! (Zend Data Cache)

I margini di miglioramento sono di tutto rispetto: ▶

fino al 35% (a seconda del sistema di caching utilizzato)

© All rights reserved. Zend Technologies, Inc.

Domande?

© All rights reserved. Zend Technologies, Inc.

Grazie! Per maggiori informazioni: Enrico Zimuel ([email protected])

http://www.zend.com http://www.joomla.org

© All rights reserved. Zend Technologies, Inc.