• Save
RubyMastersConf - Escalabilidade do S.O. ao Rails
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

RubyMastersConf - Escalabilidade do S.O. ao Rails

on

  • 3,271 views

Palestra do RubyMastersConf falando a respeito de escalabilidade de aplicações web utilizando Ruby On Rails

Palestra do RubyMastersConf falando a respeito de escalabilidade de aplicações web utilizando Ruby On Rails

Statistics

Views

Total Views
3,271
Views on SlideShare
1,361
Embed Views
1,910

Actions

Likes
1
Downloads
3
Comments
0

6 Embeds 1,910

http://blog.egenial.com.br 1793
http://blog.dito.com.br 113
http://forum.rubyonbr.org 1
http://webcache.googleusercontent.com 1
http://www.plugmasters.com.br 1
http://theoldreader.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

RubyMastersConf - Escalabilidade do S.O. ao Rails Presentation Transcript

  • 1. Escalabilidade - Do S.O. ao Rails Bruno Andrade Alves bruno@dito.com.brsegunda-feira, 28 de fevereiro de 2011
  • 2. Ideiasegunda-feira, 28 de fevereiro de 2011
  • 3. Execuçãosegunda-feira, 28 de fevereiro de 2011
  • 4. Publicaçãosegunda-feira, 28 de fevereiro de 2011
  • 5. Divulgaçãosegunda-feira, 28 de fevereiro de 2011
  • 6. Utilizaçãosegunda-feira, 28 de fevereiro de 2011
  • 7. Satisfaçãosegunda-feira, 28 de fevereiro de 2011
  • 8. O que aconteceu?segunda-feira, 28 de fevereiro de 2011
  • 9. Solução imediatasegunda-feira, 28 de fevereiro de 2011
  • 10. Feliz novamentesegunda-feira, 28 de fevereiro de 2011
  • 11. Produto é um sucesso!segunda-feira, 28 de fevereiro de 2011
  • 12. #fail :(segunda-feira, 28 de fevereiro de 2011
  • 13. Aplicativo no orkut, facebook e portal de futebol com mais de 940 mil usuários cadastrados e mais de 50 milhões de apostassegunda-feira, 28 de fevereiro de 2011
  • 14. Game educativo para orkut para combate da dengue com mais de 850 mil usuários cadastrados em menos de 2 mesessegunda-feira, 28 de fevereiro de 2011
  • 15. Solução utilizada em grande parte dos e-commerces brasileiros dentre eles:segunda-feira, 28 de fevereiro de 2011
  • 16. Aplicativo no orkut e no facebook com milhões de usuários impactadossegunda-feira, 28 de fevereiro de 2011
  • 17. Primeiro organizador de compra coletivas do Brasilsegunda-feira, 28 de fevereiro de 2011
  • 18. Fluxo de uma aplicação websegunda-feira, 28 de fevereiro de 2011
  • 19. Identifique o gargalosegunda-feira, 28 de fevereiro de 2011
  • 20. segunda-feira, 28 de fevereiro de 2011
  • 21. Pontos de otimização para a camada do browser CSS Javascript Cache Imagens Requisiçõessegunda-feira, 28 de fevereiro de 2011
  • 22. Ferramentas YSlow Google Page speedsegunda-feira, 28 de fevereiro de 2011
  • 23. Gargalo no servidor web +segunda-feira, 28 de fevereiro de 2011
  • 24. Gargalo no servidor web Verificar número máximo de clientes configurada (maxclients) KeepAlive KeepAliveTimeoutsegunda-feira, 28 de fevereiro de 2011
  • 25. Apache Server Status Existem workers livressegunda-feira, 28 de fevereiro de 2011
  • 26. passenger-statussegunda-feira, 28 de fevereiro de 2011
  • 27. passenger-statussegunda-feira, 28 de fevereiro de 2011
  • 28. passenger-status GARGALOsegunda-feira, 28 de fevereiro de 2011
  • 29. Gargalo na aplicaçãosegunda-feira, 28 de fevereiro de 2011
  • 30. Como identificar gargalos na aplicação?segunda-feira, 28 de fevereiro de 2011
  • 31. Newrelicsegunda-feira, 28 de fevereiro de 2011
  • 32. Newrelictempo médiode requisição 36s SELECT está demorando 4,8ssegunda-feira, 28 de fevereiro de 2011
  • 33. Acompanhe o log durante o desenvolvimentosegunda-feira, 28 de fevereiro de 2011
  • 34. Realize operações pesadas de modo assíncrono DelayedJob Resque Permitem criar uma fila de jobs para serem executados, ex.: Envio de emails, atualização de timeline de amigos, etc.segunda-feira, 28 de fevereiro de 2011
  • 35. Problema Odrible.comCom o crescimento dos usuários o ranking passou ademorar mais de 1 dia para executarsegunda-feira, 28 de fevereiro de 2011
  • 36. Fatores complicadoresGrande parte do processamento da regra de negócio erafeita no rubysegunda-feira, 28 de fevereiro de 2011
  • 37. Fatores complicadoresGrande parte do processamento da regra de negócio erafeita no rubyMuito tráfego de dados entre o MySQL e o Rubysegunda-feira, 28 de fevereiro de 2011
  • 38. Fatores complicadoresGrande parte do processamento da regra de negócio erafeita no rubyMuito tráfego de dados entre o MySQL e o RubyEstrutura de dados não estava otimizada para oprocessamentosegunda-feira, 28 de fevereiro de 2011
  • 39. Solução Desnormalizar base, otimizando a estruturasegunda-feira, 28 de fevereiro de 2011
  • 40. SoluçãoDesnormalizar base, otimizando a estruturaA ordenação do ranking foi substituída de:segunda-feira, 28 de fevereiro de 2011
  • 41. SoluçãoDesnormalizar base, otimizando o processamentoA ordenação do ranking foi substituída de: Por:segunda-feira, 28 de fevereiro de 2011
  • 42. SoluçãoDesnormalizar base, otimizando o processamentoA ordenação do ranking foi substituída de: Por: Processamento no bancosegunda-feira, 28 de fevereiro de 2011
  • 43. Problema no parser de XMLO parser de XML desenvolvido passava em todos ostestes, porém quando foi para produção o XML aumentoude tamanho e o tempo de processamento ficou inviávelsegunda-feira, 28 de fevereiro de 2011
  • 44. Solução O parser que utilizava a biblioteca rexml teve que ser reescrito utilizando a bliblioteca nokogirisegunda-feira, 28 de fevereiro de 2011
  • 45. Conclusão Quando for utilizar bibliotecas, procure saber de sua performance antes de começar a implementaçãosegunda-feira, 28 de fevereiro de 2011
  • 46. Gargalo no banco de dadossegunda-feira, 28 de fevereiro de 2011
  • 47. MySQLTunersegunda-feira, 28 de fevereiro de 2011
  • 48. MySQLTuner apenas 100MB de um banco 3,9 GB está em memóriasegunda-feira, 28 de fevereiro de 2011
  • 49. MySQLTuner apenas 100MB de um banco 3,9 GB está em memória Leia asrecomendações e procure entender o significadosegunda-feira, 28 de fevereiro de 2011
  • 50. MySQL Procure manter o máximo possível do banco em memória Performance muito mais lenta quando se utiliza disco Ative o log de slow queries para ajudar a identificar as queries que estão pesando o BDsegunda-feira, 28 de fevereiro de 2011
  • 51. MySQL Para fulltext search utilize algum servidor de busca por ex.: Solr e Sphinx Utilizar índice nas tabelas quando necessário Utilizar o “Explain” nas queries para verificar o seu comportamento e otimizá-las se for o caso mysqlperformanceblog.comsegunda-feira, 28 de fevereiro de 2011
  • 52. Problema Odrible.com Muitas apostas antigas que devem ser guardadas porém pouco acessadassegunda-feira, 28 de fevereiro de 2011
  • 53. Solução: Passar dados armazenados na engine InnoDB para Archive que gastam quase 83% menos espaçosegunda-feira, 28 de fevereiro de 2011
  • 54. Resultado Necessário menos memória para suportar todo o banco em memóriasegunda-feira, 28 de fevereiro de 2011
  • 55. Fluxo de uma aplicação websegunda-feira, 28 de fevereiro de 2011
  • 56. Fluxo de uma aplicação web Cache (Varnish, Squid)segunda-feira, 28 de fevereiro de 2011
  • 57. Fluxo de uma aplicação web Cache Cache (Page cache,action (Varnish, Squid) cache, fragment cache)segunda-feira, 28 de fevereiro de 2011
  • 58. Fluxo de uma aplicação web Cache Cache Cache (Page cache,action (Varnish, Squid) cache, fragment (Memcached) cache)segunda-feira, 28 de fevereiro de 2011
  • 59. Conclusão?segunda-feira, 28 de fevereiro de 2011
  • 60. Cachesegunda-feira, 28 de fevereiro de 2011
  • 61. Cache Cachesegunda-feira, 28 de fevereiro de 2011
  • 62. Cache Cache Cachesegunda-feira, 28 de fevereiro de 2011
  • 63. Faça benchmarkssegunda-feira, 28 de fevereiro de 2011
  • 64. Tudo deve ser monitorado!segunda-feira, 28 de fevereiro de 2011
  • 65. Como monitorar?segunda-feira, 28 de fevereiro de 2011
  • 66. Como monitorar? Nagios, Munin dentre outrossegunda-feira, 28 de fevereiro de 2011
  • 67. Como monitorar? Geração de gráficossegunda-feira, 28 de fevereiro de 2011
  • 68. Como monitorar? Monitoramento proativosegunda-feira, 28 de fevereiro de 2011
  • 69. Analytics para página de erros Permite acompanhar o resultado para o usuário final das soluções adotadassegunda-feira, 28 de fevereiro de 2011
  • 70. Se o gargalo for hardware?segunda-feira, 28 de fevereiro de 2011
  • 71. Escalabilidade verticalsegunda-feira, 28 de fevereiro de 2011
  • 72. Escalabilidade horizontalsegunda-feira, 28 de fevereiro de 2011
  • 73. Escalabilidade horizontal Infra boo-box + 5 bilhões de impressões em 2010 Fonte: booblog.boo-box.comsegunda-feira, 28 de fevereiro de 2011
  • 74. Não existe receita para escalabilidadesegunda-feira, 28 de fevereiro de 2011
  • 75. Cada caso deve ser analisado separadamentesegunda-feira, 28 de fevereiro de 2011
  • 76. Não se prenda a uma tecnologia. Utilize a melhor para resolver o seu problemasegunda-feira, 28 de fevereiro de 2011
  • 77. Perguntas?segunda-feira, 28 de fevereiro de 2011
  • 78. Referências http://highscalability.com/ http://www.mysqlperformanceblog.com/ http://railslab.newrelic.com/scaling-railssegunda-feira, 28 de fevereiro de 2011
  • 79. Obrigado! Bruno Andrade Alves bruno@dito.com.brsegunda-feira, 28 de fevereiro de 2011