SlideShare une entreprise Scribd logo
1  sur  29
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.
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.
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.
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.
Velocizzare Joomla! con
    Zend Server CE




       © 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 è 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.
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.
Configurazione della cache di Joomla!




              © All rights reserved. Zend Technologies, Inc.
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.
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)   ZSCE + Memcached 



                         Asse Y: Transfer Rate (Kbyte/sec)

                                    © All rights reserved. Zend Technologies, Inc.
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.
Benchmark Joomla! 1.6
●   Lavoro futuro:
      ▶   Benchmark 1.6 (versione stabile)
      ▶   Aggiungere il confronto con:
              ● eAccelerator
              ● XCache


              ● WinCache




                     © 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 (enrico@zend.com)

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




                © All rights reserved. Zend Technologies, Inc.

Contenu connexe

En vedette

Introduzione alla Posta Elettronica Certificata (PEC): le regole tecniche
Introduzione alla Posta Elettronica Certificata (PEC): le regole tecnicheIntroduzione alla Posta Elettronica Certificata (PEC): le regole tecniche
Introduzione alla Posta Elettronica Certificata (PEC): le regole tecnicheEnrico Zimuel
 
XCheck a benchmark checker for XML query processors
XCheck a benchmark checker for XML query processorsXCheck a benchmark checker for XML query processors
XCheck a benchmark checker for XML query processorsEnrico Zimuel
 
Manage cloud infrastructures in PHP using Zend Framework 2 (and 1)
Manage cloud infrastructures in PHP using Zend Framework 2 (and 1)Manage cloud infrastructures in PHP using Zend Framework 2 (and 1)
Manage cloud infrastructures in PHP using Zend Framework 2 (and 1)Enrico Zimuel
 
Introduzione alla crittografia
Introduzione alla crittografiaIntroduzione alla crittografia
Introduzione alla crittografiaEnrico Zimuel
 
Introduzione alle tabelle hash
Introduzione alle tabelle hashIntroduzione alle tabelle hash
Introduzione alle tabelle hashEnrico Zimuel
 
La sicurezza delle applicazioni in PHP
La sicurezza delle applicazioni in PHPLa sicurezza delle applicazioni in PHP
La sicurezza delle applicazioni in PHPEnrico Zimuel
 
Crittografia quantistica: fantascienza o realtà?
Crittografia quantistica: fantascienza o realtà?Crittografia quantistica: fantascienza o realtà?
Crittografia quantistica: fantascienza o realtà?Enrico Zimuel
 
Enrico Zimuel: La sicurezza delle applicazioni in PHP
Enrico Zimuel: La sicurezza delle applicazioni in PHPEnrico Zimuel: La sicurezza delle applicazioni in PHP
Enrico Zimuel: La sicurezza delle applicazioni in PHPFrancesco Fullone
 
Crittografia è sinonimo di sicurezza?
Crittografia è sinonimo di sicurezza?Crittografia è sinonimo di sicurezza?
Crittografia è sinonimo di sicurezza?Enrico Zimuel
 
L'ABC della crittografia
L'ABC della crittografiaL'ABC della crittografia
L'ABC della crittografiaGiovanni Bechis
 
Sesta parte sicurezza_in_rete
Sesta parte sicurezza_in_reteSesta parte sicurezza_in_rete
Sesta parte sicurezza_in_reteZilli Emilio
 
How does TOR work and what is the DeepWeb
How does TOR work and what is the DeepWebHow does TOR work and what is the DeepWeb
How does TOR work and what is the DeepWebGianluca Gabrielli
 
Cryptography with Zend Framework
Cryptography with Zend FrameworkCryptography with Zend Framework
Cryptography with Zend FrameworkEnrico Zimuel
 
Principi di crittografia
Principi di crittografiaPrincipi di crittografia
Principi di crittografiapeppespe
 
Crittografia
CrittografiaCrittografia
CrittografiaMionome
 
Cryptography in PHP: use cases
Cryptography in PHP: use casesCryptography in PHP: use cases
Cryptography in PHP: use casesEnrico Zimuel
 
Manage cloud infrastructures using Zend Framework 2 (and ZF1)
Manage cloud infrastructures using Zend Framework 2 (and ZF1)Manage cloud infrastructures using Zend Framework 2 (and ZF1)
Manage cloud infrastructures using Zend Framework 2 (and ZF1)Enrico Zimuel
 
Strong cryptography in PHP
Strong cryptography in PHPStrong cryptography in PHP
Strong cryptography in PHPEnrico Zimuel
 

En vedette (20)

Introduzione alla Posta Elettronica Certificata (PEC): le regole tecniche
Introduzione alla Posta Elettronica Certificata (PEC): le regole tecnicheIntroduzione alla Posta Elettronica Certificata (PEC): le regole tecniche
Introduzione alla Posta Elettronica Certificata (PEC): le regole tecniche
 
XCheck a benchmark checker for XML query processors
XCheck a benchmark checker for XML query processorsXCheck a benchmark checker for XML query processors
XCheck a benchmark checker for XML query processors
 
Manage cloud infrastructures in PHP using Zend Framework 2 (and 1)
Manage cloud infrastructures in PHP using Zend Framework 2 (and 1)Manage cloud infrastructures in PHP using Zend Framework 2 (and 1)
Manage cloud infrastructures in PHP using Zend Framework 2 (and 1)
 
Introduzione alla crittografia
Introduzione alla crittografiaIntroduzione alla crittografia
Introduzione alla crittografia
 
Introduzione alle tabelle hash
Introduzione alle tabelle hashIntroduzione alle tabelle hash
Introduzione alle tabelle hash
 
La sicurezza delle applicazioni in PHP
La sicurezza delle applicazioni in PHPLa sicurezza delle applicazioni in PHP
La sicurezza delle applicazioni in PHP
 
Crittografia quantistica: fantascienza o realtà?
Crittografia quantistica: fantascienza o realtà?Crittografia quantistica: fantascienza o realtà?
Crittografia quantistica: fantascienza o realtà?
 
Enrico Zimuel: La sicurezza delle applicazioni in PHP
Enrico Zimuel: La sicurezza delle applicazioni in PHPEnrico Zimuel: La sicurezza delle applicazioni in PHP
Enrico Zimuel: La sicurezza delle applicazioni in PHP
 
Crittografia è sinonimo di sicurezza?
Crittografia è sinonimo di sicurezza?Crittografia è sinonimo di sicurezza?
Crittografia è sinonimo di sicurezza?
 
L'ABC della crittografia
L'ABC della crittografiaL'ABC della crittografia
L'ABC della crittografia
 
Sesta parte sicurezza_in_rete
Sesta parte sicurezza_in_reteSesta parte sicurezza_in_rete
Sesta parte sicurezza_in_rete
 
How does TOR work and what is the DeepWeb
How does TOR work and what is the DeepWebHow does TOR work and what is the DeepWeb
How does TOR work and what is the DeepWeb
 
Cryptography with Zend Framework
Cryptography with Zend FrameworkCryptography with Zend Framework
Cryptography with Zend Framework
 
Crittografia
CrittografiaCrittografia
Crittografia
 
Crittografia
Crittografia Crittografia
Crittografia
 
Principi di crittografia
Principi di crittografiaPrincipi di crittografia
Principi di crittografia
 
Crittografia
CrittografiaCrittografia
Crittografia
 
Cryptography in PHP: use cases
Cryptography in PHP: use casesCryptography in PHP: use cases
Cryptography in PHP: use cases
 
Manage cloud infrastructures using Zend Framework 2 (and ZF1)
Manage cloud infrastructures using Zend Framework 2 (and ZF1)Manage cloud infrastructures using Zend Framework 2 (and ZF1)
Manage cloud infrastructures using Zend Framework 2 (and ZF1)
 
Strong cryptography in PHP
Strong cryptography in PHPStrong cryptography in PHP
Strong cryptography in PHP
 

Similaire à Velocizzare Joomla! con Zend Server Community Edition

Zend Server
Zend ServerZend Server
Zend ServerGrUSP
 
Gaetano Giunta: introduzione agli eZ components
Gaetano Giunta: introduzione agli eZ componentsGaetano Giunta: introduzione agli eZ components
Gaetano Giunta: introduzione agli eZ componentsFrancesco Fullone
 
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...Meet Magento Italy
 
Pietro Brambati: PHP e la piattaforma Microsoft
Pietro Brambati: PHP e la piattaforma MicrosoftPietro Brambati: PHP e la piattaforma Microsoft
Pietro Brambati: PHP e la piattaforma MicrosoftFrancesco Fullone
 
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...Codemotion
 
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi Cluster
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi ClusterCodemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi Cluster
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi ClusterMatteo Baccan
 
php day 2008 - Introduzione agli ez components
php day 2008 - Introduzione agli ez componentsphp day 2008 - Introduzione agli ez components
php day 2008 - Introduzione agli ez componentsGaetano Giunta
 
Php Day 2009:Un Salto Nel Buio
Php Day 2009:Un Salto Nel BuioPhp Day 2009:Un Salto Nel Buio
Php Day 2009:Un Salto Nel Buiopietrobr
 
Delphi Day 2009 Win7 Dev Overview
Delphi Day 2009 Win7 Dev OverviewDelphi Day 2009 Win7 Dev Overview
Delphi Day 2009 Win7 Dev Overviewpietrobr
 
System Administration: migliorare le performance di Magento Community Edition
System Administration: migliorare le performance di Magento Community EditionSystem Administration: migliorare le performance di Magento Community Edition
System Administration: migliorare le performance di Magento Community EditionMageSpecialist
 
System Administration: Migliorare le performance di Magento Community Edition
System Administration: Migliorare le performance di Magento Community EditionSystem Administration: Migliorare le performance di Magento Community Edition
System Administration: Migliorare le performance di Magento Community Editionmidimarcus
 
Applicazioni HTML5 Superveloci - Salvatore Romeo
Applicazioni HTML5 Superveloci - Salvatore RomeoApplicazioni HTML5 Superveloci - Salvatore Romeo
Applicazioni HTML5 Superveloci - Salvatore Romeomarcocasario
 
Build a SQL Server machine - the right way (Italian)
Build a SQL Server machine - the right way (Italian)Build a SQL Server machine - the right way (Italian)
Build a SQL Server machine - the right way (Italian)Danilo Dominici
 
Come velocizzare un sito web | Corso SEO a Bologna
Come velocizzare un sito web | Corso SEO a BolognaCome velocizzare un sito web | Corso SEO a Bologna
Come velocizzare un sito web | Corso SEO a BolognaWeb2Lab Studio
 
Introduzione ad ASP.NET Core
Introduzione ad ASP.NET CoreIntroduzione ad ASP.NET Core
Introduzione ad ASP.NET CoreAndrea Dottor
 
Backup Exec 2010. Domande frequenti
Backup Exec 2010. Domande frequentiBackup Exec 2010. Domande frequenti
Backup Exec 2010. Domande frequentiSymantec Italia
 

Similaire à Velocizzare Joomla! con Zend Server Community Edition (20)

Zend Framework 2
Zend Framework 2Zend Framework 2
Zend Framework 2
 
Zend Server
Zend ServerZend Server
Zend Server
 
Pro php refactoring
Pro php refactoringPro php refactoring
Pro php refactoring
 
Gaetano Giunta: introduzione agli eZ components
Gaetano Giunta: introduzione agli eZ componentsGaetano Giunta: introduzione agli eZ components
Gaetano Giunta: introduzione agli eZ components
 
Modernizziamo IBM i con PHP
Modernizziamo IBM i con PHPModernizziamo IBM i con PHP
Modernizziamo IBM i con PHP
 
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...
 
Pietro Brambati: PHP e la piattaforma Microsoft
Pietro Brambati: PHP e la piattaforma MicrosoftPietro Brambati: PHP e la piattaforma Microsoft
Pietro Brambati: PHP e la piattaforma Microsoft
 
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...
 
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi Cluster
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi ClusterCodemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi Cluster
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi Cluster
 
php day 2008 - Introduzione agli ez components
php day 2008 - Introduzione agli ez componentsphp day 2008 - Introduzione agli ez components
php day 2008 - Introduzione agli ez components
 
Php Day 2009:Un Salto Nel Buio
Php Day 2009:Un Salto Nel BuioPhp Day 2009:Un Salto Nel Buio
Php Day 2009:Un Salto Nel Buio
 
Delphi Day 2009 Win7 Dev Overview
Delphi Day 2009 Win7 Dev OverviewDelphi Day 2009 Win7 Dev Overview
Delphi Day 2009 Win7 Dev Overview
 
Migrating
MigratingMigrating
Migrating
 
System Administration: migliorare le performance di Magento Community Edition
System Administration: migliorare le performance di Magento Community EditionSystem Administration: migliorare le performance di Magento Community Edition
System Administration: migliorare le performance di Magento Community Edition
 
System Administration: Migliorare le performance di Magento Community Edition
System Administration: Migliorare le performance di Magento Community EditionSystem Administration: Migliorare le performance di Magento Community Edition
System Administration: Migliorare le performance di Magento Community Edition
 
Applicazioni HTML5 Superveloci - Salvatore Romeo
Applicazioni HTML5 Superveloci - Salvatore RomeoApplicazioni HTML5 Superveloci - Salvatore Romeo
Applicazioni HTML5 Superveloci - Salvatore Romeo
 
Build a SQL Server machine - the right way (Italian)
Build a SQL Server machine - the right way (Italian)Build a SQL Server machine - the right way (Italian)
Build a SQL Server machine - the right way (Italian)
 
Come velocizzare un sito web | Corso SEO a Bologna
Come velocizzare un sito web | Corso SEO a BolognaCome velocizzare un sito web | Corso SEO a Bologna
Come velocizzare un sito web | Corso SEO a Bologna
 
Introduzione ad ASP.NET Core
Introduzione ad ASP.NET CoreIntroduzione ad ASP.NET Core
Introduzione ad ASP.NET Core
 
Backup Exec 2010. Domande frequenti
Backup Exec 2010. Domande frequentiBackup Exec 2010. Domande frequenti
Backup Exec 2010. Domande frequenti
 

Plus de Enrico Zimuel

Password (in)security
Password (in)securityPassword (in)security
Password (in)securityEnrico Zimuel
 
Quick start on Zend Framework 2
Quick start on Zend Framework 2Quick start on Zend Framework 2
Quick start on Zend Framework 2Enrico Zimuel
 
A quick start on Zend Framework 2
A quick start on Zend Framework 2A quick start on Zend Framework 2
A quick start on Zend Framework 2Enrico Zimuel
 
Zend Framework 2 quick start
Zend Framework 2 quick startZend Framework 2 quick start
Zend Framework 2 quick startEnrico Zimuel
 
How to scale PHP applications
How to scale PHP applicationsHow to scale PHP applications
How to scale PHP applicationsEnrico Zimuel
 
Zend_Cache: how to improve the performance of PHP applications
Zend_Cache: how to improve the performance of PHP applicationsZend_Cache: how to improve the performance of PHP applications
Zend_Cache: how to improve the performance of PHP applicationsEnrico Zimuel
 
Sviluppo di applicazioni sicure
Sviluppo di applicazioni sicureSviluppo di applicazioni sicure
Sviluppo di applicazioni sicureEnrico Zimuel
 
Misure minime di sicurezza informatica
Misure minime di sicurezza informaticaMisure minime di sicurezza informatica
Misure minime di sicurezza informaticaEnrico Zimuel
 

Plus de Enrico Zimuel (10)

Password (in)security
Password (in)securityPassword (in)security
Password (in)security
 
Quick start on Zend Framework 2
Quick start on Zend Framework 2Quick start on Zend Framework 2
Quick start on Zend Framework 2
 
A quick start on Zend Framework 2
A quick start on Zend Framework 2A quick start on Zend Framework 2
A quick start on Zend Framework 2
 
Zend Framework 2 quick start
Zend Framework 2 quick startZend Framework 2 quick start
Zend Framework 2 quick start
 
How to scale PHP applications
How to scale PHP applicationsHow to scale PHP applications
How to scale PHP applications
 
Zend_Cache: how to improve the performance of PHP applications
Zend_Cache: how to improve the performance of PHP applicationsZend_Cache: how to improve the performance of PHP applications
Zend_Cache: how to improve the performance of PHP applications
 
Sviluppo di applicazioni sicure
Sviluppo di applicazioni sicureSviluppo di applicazioni sicure
Sviluppo di applicazioni sicure
 
Misure minime di sicurezza informatica
Misure minime di sicurezza informaticaMisure minime di sicurezza informatica
Misure minime di sicurezza informatica
 
PHP e crittografia
PHP e crittografiaPHP e crittografia
PHP e crittografia
 
Firma digitale
Firma digitaleFirma digitale
Firma digitale
 

Dernier

Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Associazione Digital Days
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Associazione Digital Days
 
ScrapeGraphAI: a new way to scrape context with AI
ScrapeGraphAI: a new way to scrape context with AIScrapeGraphAI: a new way to scrape context with AI
ScrapeGraphAI: a new way to scrape context with AIinfogdgmi
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Associazione Digital Days
 
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Associazione Digital Days
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Associazione Digital Days
 

Dernier (6)

Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
 
ScrapeGraphAI: a new way to scrape context with AI
ScrapeGraphAI: a new way to scrape context with AIScrapeGraphAI: a new way to scrape context with AI
ScrapeGraphAI: a new way to scrape context with AI
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
 
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
 

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.