Advertisement

Velocizzare Joomla! con Zend Server Community Edition

Senior Software Engineer at Zend Technologies
Oct. 11, 2010
Advertisement

More Related Content

Advertisement

Velocizzare Joomla! con Zend Server Community Edition

  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. 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. Zend Server CE © 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.
  10. Zend Optimizer+ © 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.
  13. Velocizzare Joomla! con Zend Server CE © 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.
  16. Configurazione della cache di Joomla! © 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.
  18. Benchmark Joomla! con Zend Server CE © 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.
  29. Grazie! Per maggiori informazioni: Enrico Zimuel (enrico@zend.com) http://www.zend.com http://www.joomla.org © All rights reserved. Zend Technologies, Inc.
Advertisement