Contenu connexe Similaire à Velocizzare Joomla! con Zend Server Community Edition (20) Plus de Enrico Zimuel (10) Velocizzare Joomla! con Zend Server Community Edition1. Velocizzare l'esecuzione di Joomla!
con Zend Server Community Edition
Enrico Zimuel
Senior Consultant & Architect
Zend Technologies
enrico@zend.com
9 Ottobre 2010 – JoomlaDay Verona
© All rights reserved. Zend Technologies, Inc.
2. Sommario
● Zend Server Community Edition (CE)
● Perchè eseguire Joomla! con Zend Server?
● Come velocizzare Joomla! con Zend Server
● Zend Server Cache adapter per Joomla!
● Benchmark di Joomla!
▶ Ver. 1.5.17
▶ Ver. 1.6B11
© All rights reserved. Zend Technologies, Inc.
4. 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.
5. 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.
6. 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.
7. Joomla! e Zend Server
© All rights reserved. Zend Technologies, Inc.
8. 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.
9. 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.
11. 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.
12. Esempio: Zend Data Cache
● Interrogazione ad un database MySQL:
// accesso al db
$sql= “SELECT * FROM … WHERE ...”;
$result= mysql_query($sql);
$record= mysql_fetch_array($result);
● Caching dell'interrogazione SQL:
$key= md5($sql);
if (!$record= zend_shm_cache_fetch($key)) {
// accesso al db
...
zend_shm_cache_store($key,$record,60);
}
© All rights reserved. Zend Technologies, Inc.
14. 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 è necessario installare un adapter
specifico (non ancora presente nella versione
ufficiale di Joomla!)
● Questo adapter è disponibile sul mio blog:
▶ http://www.zimuel.it/blog/projects/
© All rights reserved. Zend Technologies, Inc.
15. 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.
17. Zend Server cache adapter per Joomla!
● Download:
▶ http://www.zimuel.it/blog/projects/
● Installazione:
▶ Unzip del file zscache_joomla16.zip
▶ Copia dei file *.php nella directory Joomla:
/libraries/joomla/cache/storage
▶ Edit del file di lingua administrator/language/xx-
XX/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.
19. 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.
20. Benchmark Joomla! 1.5.17
Acceleratori di codice PHP
Asse Y: Transfer Rate (Kbyte/sec)
© All rights reserved. Zend Technologies, Inc.
21. Benchmark Joomla! 1.5.17
Acceleratori PHP + Cache
Asse Y: Transfer Rate (Kbyte/sec)
© All rights reserved. Zend Technologies, Inc.
22. 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.
23. 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.
24. 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) ZSCE + Memcached
Asse Y: Transfer Rate (Kbyte/sec)
© All rights reserved. Zend Technologies, Inc.
25. 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.
26. Benchmark Joomla! 1.6
● Lavoro futuro:
▶ Benchmark 1.6 (versione stabile)
▶ Aggiungere il confronto con:
● eAccelerator
● XCache
● WinCache
© All rights reserved. Zend Technologies, Inc.
27. 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.
28. Domande?
© All rights reserved. Zend Technologies, Inc.