Your SlideShare is downloading. ×
0
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

RubyMastersConf - Escalabilidade do S.O. ao Rails

2,993

Published on

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

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,993
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
3
Comments
0
Likes
1
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. 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

×