Velocizzare Joomla! con Zend Server Community Edition

2,478 views

Published on

Come velocizzare l'esecuzione di Joomla! utilizzando Zend Server Community Edition.
Intervento presentato il 9 Ottobre 2010 al JoomlaDay 2010 a Verona (Italia).

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,478
On SlideShare
0
From Embeds
0
Number of Embeds
24
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Velocizzare Joomla! con Zend Server Community Edition

  1. 1. 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. 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.
  3. 3. Zend Server CE © All rights reserved. Zend Technologies, Inc.
  4. 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. 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. 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. 7. Joomla! e Zend Server © All rights reserved. Zend Technologies, Inc.
  8. 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. 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.
  10. 10. Zend Optimizer+ © All rights reserved. Zend Technologies, Inc.
  11. 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. 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.
  13. 13. Velocizzare Joomla! con Zend Server CE © All rights reserved. Zend Technologies, Inc.
  14. 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. 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.
  16. 16. Configurazione della cache di Joomla! © All rights reserved. Zend Technologies, Inc.
  17. 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.
  18. 18. Benchmark Joomla! con Zend Server CE © All rights reserved. Zend Technologies, Inc.
  19. 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. 20. Benchmark Joomla! 1.5.17 Acceleratori di codice PHP Asse Y: Transfer Rate (Kbyte/sec) © All rights reserved. Zend Technologies, Inc.
  21. 21. Benchmark Joomla! 1.5.17 Acceleratori PHP + Cache Asse Y: Transfer Rate (Kbyte/sec) © All rights reserved. Zend Technologies, Inc.
  22. 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. 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. 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. 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. 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. 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. 28. Domande? © All rights reserved. Zend Technologies, Inc.
  29. 29. Grazie! Per maggiori informazioni: Enrico Zimuel (enrico@zend.com) http://www.zend.com http://www.joomla.org © All rights reserved. Zend Technologies, Inc.

×