Avaliação das distribuições Linux

1,046 views

Published on

Avaliação das Distribuições Linux para Servidores Itautec / Device Drivers, módulos do kernel e rede - Prof. Mauro Tapajós Santos durante o projeto de pesquisa Cesmic na Universidade Católica de Brasília

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,046
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Avaliação das distribuições Linux

  1. 1. Avaliação das Distribuições Linux para Servidores Itautec Prof. Mauro Tapajós Device Drivers , Módulos e Rede no Linux
  2. 2. Como Avaliar as Características do Suporte à Hardware do Linux? <ul><li>Levantamento do que existe em termos de hardware no sistema (excluindo dispositivos de I/O)
  3. 3. O que é reconhecido por default pelo Linux e o grau de maturidade do driver (compilado no kernel ou em módulo)
  4. 4. O que não é suportado por default na instalação básica”
  5. 5. O que exige configurações ou software extra para funcionar e qual o nível de dificuldade </li></ul>
  6. 6. Como Avaliar as Características do Suporte à Hardware do Linux? <ul><li>Necessidade de algum conhecimento da arquitetura específica da máquina
  7. 7. Necessidade de saber como reconhecer o hardware dentro do SO
  8. 8. Saber como são criados os device drivers e como o SO acessa os dispositivos na máquina
  9. 9. Saber com detalhes como funciona a carga de módulos para device drivers e seus comandos
  10. 10. Analisar ferramentas de benchmarking para os itens de hardware em questão para testes com resultados numéricos (hardware de rede) </li></ul>
  11. 11. Dispositivos no Linux
  12. 12. Dispositivos e o Linux
  13. 13. Reconhecimento de Dispositivos <ul><li>Lista de major numbers para dispositivos </li></ul>/usr/src/linux/Documentation/devices.txt <ul><li>Implementação das definições de major numbers no kernel </li></ul>/usr/src/linux/include/linux/major.h <ul><li>Dispositivos (caracter e bloco) reconhecidos pelo SO </li></ul>/proc/devices <ul><li>Dispositivos PCI reconhecidos na carga do kernel </li></ul>/proc/pci
  14. 14. Módulos <ul><li>Reconhecimento dos módulos carregados </li></ul>Lsmod ou /proc/modules <ul><li>Informações sobre módulos existentes </li></ul>modinfo <ul><li>Reconhecimento dos módulos existentes no sistema </li></ul>Análise da compilação do kernel e /usr/src/linux/Documentation <ul><li>Módulos no sistema </li></ul>/lib/modules/kernel <ul><li>Dependências de módulos no sistema </li></ul>/lib/modules/kernel/modules.dep
  15. 15. Reconhecimento de Dispositivos <ul><li>Major numbers e e Minor numbers
  16. 16. Drivers para dispositivos </li><ul><li>Analisar caso a caso cada dispositivo
  17. 17. Verificar no fabricante
  18. 18. Caso não haja suporte do fabricante, procurar driver na Internet para o equipamento (normalmente pelo chipset usado) </li></ul></ul>
  19. 19. Interrupções de Dispositivos No Linux se pode ter estatísticas de interrupções enviadas por CPU (/proc/interrupts) e por interrupção (/proc/stat)
  20. 20. Foco: Dispositivos de Rede <ul><li>Objetivo: avaliar o suporte de rede das distribuições
  21. 21. Itens de hardware para avaliação na máquina: </li><ul><li>Interface Fast Ethernet OnBoard Intel
  22. 22. Interface Gigabit Ethernet OnBoard Intel
  23. 23. Interface Wireless LAN PCI Intel </li></ul><li>Entendimento de implementação de dispositivos de rede no Linux – não são tratados como os dispositivos de bloco ou caracter
  24. 24. O suporte a networking está todo no kernel e device drivers normalmente estão em módulos </li></ul>
  25. 25. Procedimento Para cada distribuição Linux: <ul><li>Levantar a identificação dos itens de hardware relacionados no sistema (inventário completo do servidor)
  26. 26. Coleta das informações relacionadas com módulos, device drivers e itens de hardware (especificamente interfaces de rede, mas o que for aprendido aqui servirá para praticamente qualquer hardware no sistema)
  27. 27. Levantar os drivers para os itens de hardware de rede necessários no linux, suas versões e se estão ou não configurados. Encontrar os mesmos caso não estejam disponíveis na distribuição e proceder a instalação se for o caso.
  28. 28. Rodar ferramentas de validação do ambiente ( ltp )
  29. 29. Rodar testes de benchmarking relacionados com performance de rede (NetPIPE)
  30. 30. Variar os contextos dos testes de rede tentando analisar a influência de outras variáveis (quantidade de memória, número de processadores, módulo ou parte do kernel)
  31. 31. Realizar instalação de um dispositivo novo sem suporte (driver) linux do fabricante
  32. 32. Rodar compilações de um kernel básico, registrando o tempo necessário </li></ul>
  33. 33. Testes <ul><li>Validação – LTP ( Linux Test Project ) </li><ul><li>Testes OK ou NOK </li></ul></ul><ul><li>Benchmarking </li><ul><li>Necessidade de pesquisa e entendimento de Ferramentas e o que fazem
  34. 34. Geração de números para comparação
  35. 35. A questão dos padrões </li></ul></ul>
  36. 36. Testes de Compilação de Kernel <ul><li>Métrica: Tempo de compilação de um kernel
  37. 37. Teste de aplicação básico
  38. 38. Características </li><ul><li>Não mascara itens como a L2 como nos testes com pouca carga
  39. 39. Muito I/O
  40. 40. Comportamento de aplicação pesada </li></ul><li>Realizar em runlevel 1 e 3 para verificar influências dos serviços rodando na máquina </li></ul>
  41. 41. Padrão de Testes no Linux <ul><li>O sistema Linux sempre se apresenta em configurações particulares de hardware, versão, kernel, patches, e distribuição
  42. 42. Para estes testes usamos ferramentas e metodologias comuns e reconhecidas no mundo do Linux
  43. 43. Não existe padrão absoluto mas os valores relativos encontrados podem mostrar as diferenças entre distribuições, desde que submetidos aos mesmos procedimentos de teste </li></ul>
  44. 44. Linux Standard Base <ul><li>Projeto de compatibilização dos aspectos das distribuição Linux, de forma criar um padrão para aplicações que rodarão em qualquer distribuição
  45. 45. Oferecem aplicações compatíveis LSB para avaliação de distribuições candidatas
  46. 46. Baterias de testes do ambiente para suportar aplicações Linux comuns (Apache, etc) </li></ul>
  47. 47. Linux Test Project Coleção de testes específicos de determinados aspectos <ul><ul><li>Funcionalidades básicas - comandos
  48. 48. kernel
  49. 49. I/O
  50. 50. Network </li></ul></ul>
  51. 51. Benchmarking - Roteiro <ul><li>Trata-se de mensurar aspectos definidos de um sistema computacional para fins de comparação
  52. 52. Não deve levar em conta parâmetros subjetivos ou como reputação do distribuidor ou marketing
  53. 53. Identificar os objetivos dos testes
  54. 54. Descrição completa do ambiente e procedimentos
  55. 55. Isolar uma variável
  56. 56. Verificar os resultados – embasá-los
  57. 57. Se útil, compartilhar os resultados na comunidade Linux
  58. 58. Não proceder posteriores comparações com outros OS’s </li></ul>
  59. 59. Tipos de Benchmarking <ul><li>Sintéticos </li><ul><li>Avaliação de um componente específico do sistema computacional. Não dão, em conjunto, uma medida do desempenho real de um sistema
  60. 60. Exemplo: Sequência de instruções FPU (não é o caso típico em aplicações reais) </li></ul></ul><ul><li>De aplicação </li><ul><li>Avaliação da plataforma apliçação+SO+Hardware
  61. 61. Específicos para um tipo de aplicação </li></ul></ul><ul><li>Low-level – testará diretamente algum item de hardware (sempre sintéticos)
  62. 62. High-level – testará o conjunto hardware, drivers e SO (podem ser sintéticos ou de aplicação) </li></ul>
  63. 63. Algumas Ferramentas de Teste no Linux <ul><li>NetPIPE – Suporte de rede
  64. 64. LMBench – low-level
  65. 65. Netperf - Rede
  66. 66. XBench – Sistema de vídeo
  67. 67. UNIX Bench
  68. 68. NetBench 7.0
  69. 69. SPEC - pago
  70. 70. SGI kernel profiler – kernprof
  71. 71. AIM
  72. 72. Bonnie – I/O </li></ul>
  73. 73. Ferramenta NetPIPE <ul><li>Avalia o conjunto hardware de rede + driver + implementação da pilha de protocolos de rede
  74. 74. Permite o teste de vários tipos de protocolos em rede (MPI, PVM, TCP)
  75. 75. Uso de procedimento de envio de mensagens de taanhos variáveis
  76. 76. No nosso caso somente o teste com TCP será feito para avaliar a performance da pilha TCP/IP pura implementada no sistema Linux
  77. 77. Trabalha realizando uma série de testes ping-pong entre dois servidores usando mensagens de tamanho variável para revelar particularidades e limitantes, além de envio de dados em streaming </li></ul>
  78. 78. Alterações nos Dispositivos <ul><li>Objetivo: avaliar a dificuldade em se inserir, retirar ou alterar o conjunto de dispositivos na distribuição </li></ul><ul><li>Ativação de hardware que não foi configurado por default na instalação (Interface Giga Ethernet)
  79. 79. Instalação de novo hardware (Placa wireless)
  80. 80. Retirada de um processador
  81. 81. Retirada/inserção de memória RAM no sistema </li></ul>
  82. 82. Servidores Sendo Testados 14 - Infoserver 3251 – 2 x Xeon 03 - Infoserver 3030 – 2 x PIII 07 - Infoserver 6480 – 2 x Itanium 08 - Infoserver 5451 – 2 x Xeon
  83. 83. Hardware de Rede <ul><li>Infoserver 3030: </li><ul><li>Ethernet controller Intel Corp. 82557/8/9 [Ethernet Pro 100] - onboard
  84. 84. Driver: eepro100 </li></ul></ul><ul><li>Infoserver 5451 </li><ul><li>Intel 82557/8/9 Ethernet PRO 100 - onboard
  85. 85. Driver: e100
  86. 86. Intel 82544GC Gigabit Ethernet Controller - onboard
  87. 87. Driver: e1000 </li></ul></ul><ul><li>Infoserver 3251 </li><ul><li>Dual-channel Intel® 10/100/1000 82546EB Gigabit Ethernet Controller - onboard
  88. 88. Driver: e1000 </li></ul></ul>
  89. 89. Hardware de Rede Interface LAN Wireless - Intel PRO/Wireless 2011B LAN PCI Adapter <ul><ul><li>Chipset: Harris Semiconductor Prism 2.5 Wavelan chipset
  90. 90. Não existe driver linux fornecido pelo fabricante
  91. 91. Já presente suporte no kernel 2.4.18 em módulo ou parte do kernel
  92. 92. Configuração média a difícil (depende de conhecimentos de redes wireless e leitura da documentação do driver) </li></ul></ul>
  93. 93. Instalações do Linux Perfil técnico <ul><ul><li>Grande conhecimento de hardware (motherboards, controladoras de disco IDE e SCSI, interfaces de rede, etc)
  94. 94. Experiência média a alta em linux
  95. 95. Tarefa não-trivial </li></ul></ul>
  96. 96. Testes de Rede <ul><li>Resultados de rede para o servidor Infoserver 3030 (conjunto completo de dados das 4 distribuições)
  97. 97. NetPIPE 3.5 realizando o teste tcp
  98. 98. Variação do contexto de teste </li><ul><li>Buffers de transmissão e recebimento
  99. 99. Memória
  100. 100. Número de processadores
  101. 101. Módulo / parte do kernel </li></ul><li>Não serão analisados itens como: </li><ul><li>IPv6
  102. 102. Roteamento
  103. 103. Firewalling
  104. 104. Serviços de rede </li></ul></ul>
  105. 105. InfoServer 3030 – Throughput (Mbps) / Tamanho de Mensagem (bytes) - Modo Bloco - Buffers de 4086, 16384 e 32768 Bytes Dispositivo de rede: Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100]
  106. 106. InfoServer 3030 – Assinatura de Rede ( Throughput (Mbps) / Tempo (seg)) - Modo Bloco - Buffer de 4086 Bytes Dispositivo de rede: Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100]
  107. 107. InfoServer 3030 – Assinatura de Rede ( Throughput (Mbps) / Tempo (seg)) - Modo Bloco - Buffer de 16384 Bytes Dispositivo de rede: Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100]
  108. 108. InfoServer 3030 – Assinatura de Rede ( Throughput (Mbps) / Tempo (seg)) - Modo Bloco - Buffer de 32768 Bytes Dispositivo de rede: Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100]
  109. 109. InfoServer 3030 – Tamanho de Mensagem (bytes) / Tempo (seg)) - Modo Bloco - Buffer de 4086 Bytes Dispositivo de rede: Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100]
  110. 110. InfoServer 3030 – Tamanho de Mensagem (bytes) / Tempo (seg)) - Modo Bloco - Buffer de 16384 Bytes Dispositivo de rede: Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100]
  111. 111. InfoServer 3030 – Tamanho de Mensagem (bytes) / Tempo (seg)) - Modo Bloco - Buffer de 32768 Bytes Dispositivo de rede: Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100]
  112. 112. InfoServer 3030 – Throughput (Mbps) / Tamanho de Mensagem (bytes) - Modo Streaming – Buffers de 4086, 16384 e 65535 bytes Dispositivo de rede: Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100]
  113. 113. Teste Compilação de Kernel <ul><li>Dão idéia de forma superficial do comportamento de aplicações no sistema
  114. 114. Tempo medido: </li></ul><ul><ul><li>make bzImage – geração do kernel
  115. 115. make modules – geração dos módulos do kernel (maior parte) </li></ul></ul><ul><li>Ainda não concluídos </li></ul>
  116. 116. Testes de Validação <ul><li>É praticamente impossível avaliar todos os itens levando em conta a diversidade dos sistemas Linux
  117. 117. Conjunto conhecido de ferramentas para averiguação de aspectos de sistemas Linux (Linux Test Project)
  118. 118. Itens que não passarem são checados </li></ul>
  119. 119. Análises Preliminares <ul><li>Suporte de rede das distribuições (drivers)
  120. 120. Efeito dos buffers
  121. 121. Throughput máximo
  122. 122. Efeito de mudança de memória e número de processadores – a ver
  123. 123. Efeitos da operação dos drivers como módulos ou como parte do kernel – a ver </li></ul>
  124. 124. Observações <ul><li>Testes com configurações otimizadas? </li></ul><ul><li>Dificuldades </li><ul><li>Laboratório (energia, espaço, rede, etc)
  125. 125. Máquinas de rack (demora, fixas nos racks, etc) </li></ul></ul>
  126. 126. Sugestões para Trabalho Posterior <ul><li>Testes com NFS e servidores de rede
  127. 127. Averiguação do suporte Linux para gerenciamento do servidor
  128. 128. Averiguação do suporte default de cada distribuição para segurança do sistema
  129. 129. A máquina implementa hardware para gerenciamento próprio: temperaturas, velocidades de ventiladores e carga nos BUSes (Chip Sahalee Baseboard Management Controller - BMC)
  130. 130. Testes com aplicação </li><ul><li>Serviços Web, MAIL, Java, SSL, etc
  131. 131. DB
  132. 132. software para Telco </li></ul></ul>

×