Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

RubyMastersConf - Escalabilidade do S.O. ao Rails

3,286 views

Published on

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

Published in: Technology
  • Be the first to comment

RubyMastersConf - Escalabilidade do S.O. ao Rails

  1. 1. Escalabilidade - Do S.O. ao Rails Bruno Andrade Alves bruno@dito.com.brsegunda-feira, 28 de fevereiro de 2011
  2. 2. Ideiasegunda-feira, 28 de fevereiro de 2011
  3. 3. Execuçãosegunda-feira, 28 de fevereiro de 2011
  4. 4. Publicaçãosegunda-feira, 28 de fevereiro de 2011
  5. 5. Divulgaçãosegunda-feira, 28 de fevereiro de 2011
  6. 6. Utilizaçãosegunda-feira, 28 de fevereiro de 2011
  7. 7. Satisfaçãosegunda-feira, 28 de fevereiro de 2011
  8. 8. O que aconteceu?segunda-feira, 28 de fevereiro de 2011
  9. 9. Solução imediatasegunda-feira, 28 de fevereiro de 2011
  10. 10. Feliz novamentesegunda-feira, 28 de fevereiro de 2011
  11. 11. Produto é um sucesso!segunda-feira, 28 de fevereiro de 2011
  12. 12. #fail :(segunda-feira, 28 de fevereiro de 2011
  13. 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. 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. 15. Solução utilizada em grande parte dos e-commerces brasileiros dentre eles:segunda-feira, 28 de fevereiro de 2011
  16. 16. Aplicativo no orkut e no facebook com milhões de usuários impactadossegunda-feira, 28 de fevereiro de 2011
  17. 17. Primeiro organizador de compra coletivas do Brasilsegunda-feira, 28 de fevereiro de 2011
  18. 18. Fluxo de uma aplicação websegunda-feira, 28 de fevereiro de 2011
  19. 19. Identifique o gargalosegunda-feira, 28 de fevereiro de 2011
  20. 20. segunda-feira, 28 de fevereiro de 2011
  21. 21. Pontos de otimização para a camada do browser CSS Javascript Cache Imagens Requisiçõessegunda-feira, 28 de fevereiro de 2011
  22. 22. Ferramentas YSlow Google Page speedsegunda-feira, 28 de fevereiro de 2011
  23. 23. Gargalo no servidor web +segunda-feira, 28 de fevereiro de 2011
  24. 24. Gargalo no servidor web Verificar número máximo de clientes configurada (maxclients) KeepAlive KeepAliveTimeoutsegunda-feira, 28 de fevereiro de 2011
  25. 25. Apache Server Status Existem workers livressegunda-feira, 28 de fevereiro de 2011
  26. 26. passenger-statussegunda-feira, 28 de fevereiro de 2011
  27. 27. passenger-statussegunda-feira, 28 de fevereiro de 2011
  28. 28. passenger-status GARGALOsegunda-feira, 28 de fevereiro de 2011
  29. 29. Gargalo na aplicaçãosegunda-feira, 28 de fevereiro de 2011
  30. 30. Como identificar gargalos na aplicação?segunda-feira, 28 de fevereiro de 2011
  31. 31. Newrelicsegunda-feira, 28 de fevereiro de 2011
  32. 32. Newrelictempo médiode requisição 36s SELECT está demorando 4,8ssegunda-feira, 28 de fevereiro de 2011
  33. 33. Acompanhe o log durante o desenvolvimentosegunda-feira, 28 de fevereiro de 2011
  34. 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. 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. 36. Fatores complicadoresGrande parte do processamento da regra de negócio erafeita no rubysegunda-feira, 28 de fevereiro de 2011
  37. 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. 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. 39. Solução Desnormalizar base, otimizando a estruturasegunda-feira, 28 de fevereiro de 2011
  40. 40. SoluçãoDesnormalizar base, otimizando a estruturaA ordenação do ranking foi substituída de:segunda-feira, 28 de fevereiro de 2011
  41. 41. SoluçãoDesnormalizar base, otimizando o processamentoA ordenação do ranking foi substituída de: Por:segunda-feira, 28 de fevereiro de 2011
  42. 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. 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. 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. 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. 46. Gargalo no banco de dadossegunda-feira, 28 de fevereiro de 2011
  47. 47. MySQLTunersegunda-feira, 28 de fevereiro de 2011
  48. 48. MySQLTuner apenas 100MB de um banco 3,9 GB está em memóriasegunda-feira, 28 de fevereiro de 2011
  49. 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. 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. 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. 52. Problema Odrible.com Muitas apostas antigas que devem ser guardadas porém pouco acessadassegunda-feira, 28 de fevereiro de 2011
  53. 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. 54. Resultado Necessário menos memória para suportar todo o banco em memóriasegunda-feira, 28 de fevereiro de 2011
  55. 55. Fluxo de uma aplicação websegunda-feira, 28 de fevereiro de 2011
  56. 56. Fluxo de uma aplicação web Cache (Varnish, Squid)segunda-feira, 28 de fevereiro de 2011
  57. 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. 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. 59. Conclusão?segunda-feira, 28 de fevereiro de 2011
  60. 60. Cachesegunda-feira, 28 de fevereiro de 2011
  61. 61. Cache Cachesegunda-feira, 28 de fevereiro de 2011
  62. 62. Cache Cache Cachesegunda-feira, 28 de fevereiro de 2011
  63. 63. Faça benchmarkssegunda-feira, 28 de fevereiro de 2011
  64. 64. Tudo deve ser monitorado!segunda-feira, 28 de fevereiro de 2011
  65. 65. Como monitorar?segunda-feira, 28 de fevereiro de 2011
  66. 66. Como monitorar? Nagios, Munin dentre outrossegunda-feira, 28 de fevereiro de 2011
  67. 67. Como monitorar? Geração de gráficossegunda-feira, 28 de fevereiro de 2011
  68. 68. Como monitorar? Monitoramento proativosegunda-feira, 28 de fevereiro de 2011
  69. 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. 70. Se o gargalo for hardware?segunda-feira, 28 de fevereiro de 2011
  71. 71. Escalabilidade verticalsegunda-feira, 28 de fevereiro de 2011
  72. 72. Escalabilidade horizontalsegunda-feira, 28 de fevereiro de 2011
  73. 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. 74. Não existe receita para escalabilidadesegunda-feira, 28 de fevereiro de 2011
  75. 75. Cada caso deve ser analisado separadamentesegunda-feira, 28 de fevereiro de 2011
  76. 76. Não se prenda a uma tecnologia. Utilize a melhor para resolver o seu problemasegunda-feira, 28 de fevereiro de 2011
  77. 77. Perguntas?segunda-feira, 28 de fevereiro de 2011
  78. 78. Referências http://highscalability.com/ http://www.mysqlperformanceblog.com/ http://railslab.newrelic.com/scaling-railssegunda-feira, 28 de fevereiro de 2011
  79. 79. Obrigado! Bruno Andrade Alves bruno@dito.com.brsegunda-feira, 28 de fevereiro de 2011

×