Cache e Performance (in portuguese)

  • 1,678 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,678
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
59
Comments
0
Likes
6

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Cache e Performance PHP Advanced - 23 de Setembro de 2008 Bruno Pedro <bpedro@tarpipe.com>
  • 2. PHP Advanced Conteúdo • Arquitectura • Profiling • Benchmarking • Cache • Compressão • Projecto • Resumo Cache e Performance 2
  • 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. 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. PHP Advanced Arquitectura • Exemplo: 2 frontends, com escalabilidade Load Balancer Web Server Web Server storage MySQL Cache e Performance 5
  • 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. 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. 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. PHP Advanced Profiling • Xdebug: http://www.xdebug.org/ • Zend Platform: http://www.zend.com/ Cache e Performance 9
  • 10. PHP Advanced Profiling Cache e Performance 10
  • 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. 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. 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. 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. 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. 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. 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. 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. PHP Advanced PEAR::Cache_Lite Cache e Performance 19
  • 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. 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. PHP Advanced Compressão • Iniciação no PHP através de ob_gzhandler Cache e Performance 22
  • 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. PHP Advanced Compilação de código • Zend Optimizer: http://www.zend.com/ • APC: http://www.php.net/apc Cache e Performance 24
  • 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. 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. PHP Summer School Questões? OOP em PHP 27
  • 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