Cache e Performance
PHP Advanced - 23 de Setembro de 2008
      Bruno Pedro <bpedro@tarpipe.com>
PHP Advanced




                      Conteúdo
   • Arquitectura
   • Profiling
   • Benchmarking
   • Cache
   • Compress...
PHP Advanced




                      Arquitectura
                                            Load Balancer




   • Det...
PHP Advanced




                      Arquitectura
   • Vários front-ends respondem a pedidos dos
        utilizadores
  ...
PHP Advanced




                      Arquitectura
   • Exemplo: 2 frontends, com escalabilidade
                        ...
PHP Advanced




                      Arquitectura
   • Exemplo: 2 frontends, 2 MySQLs
                                  ...
PHP Advanced




                      Arquitectura
   • Exemplo: 2 frontends, 2 MySQLs reads, 1
        MySQL write      ...
PHP Advanced




                      Profiling

   • Permite medir os tempos de execução de
        um script, ou de part...
PHP Advanced




                      Profiling
   • Xdebug: http://www.xdebug.org/




   • Zend Platform: http://www.zen...
PHP Advanced




                      Profiling




Cache e Performance      10
PHP Advanced




                      Benchmarking
   • Permite medir os tempos de execução de
        um script ou conju...
PHP Advanced




                      Benchmarking
   •    ab (Apache Benchmark):
        http://httpd.apache.org/docs/2....
PHP Advanced




          Conteúdo estático

   • Não envolve processamento
   • Fornecido directamente pelo Web Server
 ...
PHP Advanced




        Conteúdo dinâmico

   • Envolve processamento no servidor
   • Tipicamente um script é interpreta...
PHP Advanced




                      Objectivos

   • Sempre que possível, usar todo o conteúdo
        estático
   • Di...
PHP Advanced




                      Cache

   • Permite gravar conteúdo dinâmico de
        modo a servi-lo estático
  ...
PHP Advanced




            PEAR::Cache_Lite
   • Instalação: pear install Cache_Lite
   • Permite gravar conteúdo em cac...
PHP Advanced




            PEAR::Cache_Lite
   • Opções importantes
    • cacheDir: directório onde os ficheiros de
     ...
PHP Advanced




            PEAR::Cache_Lite




Cache e Performance   19
PHP Advanced




                      Compressão
   • Permite servir conteúdo comprimido
   • Depende das capacidades de ...
PHP Advanced




                       Compressão
    • Configuração no Apache

SetOutputFilter DEFLATE
BrowserMatch ^Mozi...
PHP Advanced




                      Compressão
   • Iniciação no PHP através de ob_gzhandler




Cache e Performance   ...
PHP Advanced




    Compilação de código

   • Transforma o código PHP em opcodes
   • Código permanece em memória
   • É...
PHP Advanced




    Compilação de código


   • Zend Optimizer: http://www.zend.com/
   • APC: http://www.php.net/apc


C...
PHP Advanced




                      Projecto

   • Inserção de cache na visualização dos
        resultados
       • De...
PHP Advanced




                      Resumo
   • Diferentes tipos de arquitectura
   • Profiling e benchmarking
   • Cont...
PHP Summer School




                    Questões?




OOP em PHP              27
PHP Advanced




               Mais informação

   • O meu blog: http://unfoldingtheweb.com/

   • Manual de PHP: http://...
Upcoming SlideShare
Loading in …5
×

Cache e Performance (in portuguese)

2,093 views

Published on

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

No Downloads
Views
Total views
2,093
On SlideShare
0
From Embeds
0
Number of Embeds
19
Actions
Shares
0
Downloads
60
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide

Cache e Performance (in portuguese)

  1. 1. Cache e Performance PHP Advanced - 23 de Setembro de 2008 Bruno Pedro <bpedro@tarpipe.com>
  2. 2. PHP Advanced Conteúdo • Arquitectura • Profiling • Benchmarking • Cache • Compressão • Projecto • Resumo Cache e Performance 2
  3. 3. PHP Advanced Arquitectura Load Balancer • Determina a forma como o sistema se comporta Web Server Web Server • Afecta directamente a escalabilidade • Consequentemente afecta a performance do sistema storage MySQL Cache e Performance 3
  4. 4. PHP Advanced Arquitectura • Vários front-ends respondem a pedidos dos utilizadores • Dados de sessão devem ser gravados num storage partilhado • Scripts e conteúdo estático devem ser gravados em storage local • Escala horizontalmente Cache e Performance 4
  5. 5. PHP Advanced Arquitectura • Exemplo: 2 frontends, com escalabilidade Load Balancer Web Server Web Server storage MySQL Cache e Performance 5
  6. 6. PHP Advanced Arquitectura • Exemplo: 2 frontends, 2 MySQLs Load Balancer Web Server Web Server MySQL MySQL storage read write Cache e Performance 6
  7. 7. PHP Advanced Arquitectura • Exemplo: 2 frontends, 2 MySQLs reads, 1 MySQL write Load Balancer Web Server Web Server Load Balancer MySQL storage write MySQL MySQL read read Cache e Performance 7
  8. 8. PHP Advanced Profiling • Permite medir os tempos de execução de um script, ou de parte de um script • Permite medir a utilização de memória durante a execução de um script • Fornece informação que ajuda a melhorar a performance de toda a aplicação Cache e Performance 8
  9. 9. PHP Advanced Profiling • Xdebug: http://www.xdebug.org/ • Zend Platform: http://www.zend.com/ Cache e Performance 9
  10. 10. PHP Advanced Profiling Cache e Performance 10
  11. 11. PHP Advanced Benchmarking • Permite medir os tempos de execução de um script ou conjunto de scripts, remotamente • Ajuda a compreender até que ponto um Web Site consegue responder a pedidos • Tipicamente é executado repetidamente ou durante um período de tempo Cache e Performance 11
  12. 12. PHP Advanced Benchmarking • ab (Apache Benchmark): http://httpd.apache.org/docs/2.0/programs/ab.html • JMeter: http://jakarta.apache.org/jmeter/ Cache e Performance 12
  13. 13. PHP Advanced Conteúdo estático • Não envolve processamento • Fornecido directamente pelo Web Server • Leve e rápido • Exemplos: • imagens, HTML, CSS, JavaScript Cache e Performance 13
  14. 14. PHP Advanced Conteúdo dinâmico • Envolve processamento no servidor • Tipicamente um script é interpretado • Mais lento que o conteúdo estático • Exemplos: • Perl, PHP, Python, Ruby Cache e Performance 14
  15. 15. PHP Advanced Objectivos • Sempre que possível, usar todo o conteúdo estático • Dividir as páginas em blocos estáticos e dinâmicos, minimizando a quantidade de blocos dinâmicos • Utilizar cache nos blocos dinâmicos Cache e Performance 15
  16. 16. PHP Advanced Cache • Permite gravar conteúdo dinâmico de modo a servi-lo estático • Tem um tempo de vida, findo o qual o conteúdo volta a ser gerado dinamicamente • Tipicamente o conteúdo estático é gravado no disco Cache e Performance 16
  17. 17. PHP Advanced PEAR::Cache_Lite • Instalação: pear install Cache_Lite • Permite gravar conteúdo em cache • Optimizado para a rapidez de escrita e leitura • Grava conteúdo em disco ou memória • Serializa conteúdo antes de gravar Cache e Performance 17
  18. 18. PHP Advanced PEAR::Cache_Lite • Opções importantes • cacheDir: directório onde os ficheiros de cache serão gravados • lifeTime: tempo de vida da cache • automaticSerialization: serialização automática do conteúdo a ser gravado • memoryCaching: liga a cache em memória Cache e Performance 18
  19. 19. PHP Advanced PEAR::Cache_Lite Cache e Performance 19
  20. 20. PHP Advanced Compressão • Permite servir conteúdo comprimido • Depende das capacidades de cada browser • Pode ser configurada através do Apache (httpd.conf ou .htaccess) • Pode ser iniciada a partir do PHP • Oferece poupanças na largura de banda utilizada Cache e Performance 20
  21. 21. PHP Advanced Compressão • Configuração no Apache SetOutputFilter DEFLATE BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4.0[678] no-gzip BrowserMatch bMSIE !no-gzip !gzip-only-text/html Cache e Performance 21
  22. 22. PHP Advanced Compressão • Iniciação no PHP através de ob_gzhandler Cache e Performance 22
  23. 23. PHP Advanced Compilação de código • Transforma o código PHP em opcodes • Código permanece em memória • É mais rápido a executar • Não requer interpretação dos scripts Cache e Performance 23
  24. 24. PHP Advanced Compilação de código • Zend Optimizer: http://www.zend.com/ • APC: http://www.php.net/apc Cache e Performance 24
  25. 25. PHP Advanced Projecto • Inserção de cache na visualização dos resultados • Determinação do correcto tempo de vida da cache através do TTL dos RSS • Finalização do projecto Cache e Performance 25
  26. 26. PHP Advanced Resumo • Diferentes tipos de arquitectura • Profiling e benchmarking • Conteúdo estático vs conteúdo dinâmico • Cache através de PEAR::Cache_Lite • Compressão • Compilação Cache e Performance 26
  27. 27. PHP Summer School Questões? OOP em PHP 27
  28. 28. PHP Advanced Mais informação • O meu blog: http://unfoldingtheweb.com/ • Manual de PHP: http://www.php.net/ • PEAR: http://pear.php.net/ Cache e Performance 28

×