Você está na página 1de 39

Avaliao das Distribuies Linux para Servidores Itautec

Device Drivers, Mdulos e Rede no Linux Prof. Mauro Tapajs

Como Avaliar as Caractersticas do Suporte Hardware do Linux?


Levantamento do que existe em termos de hardware no sistema (excluindo dispositivos de I/O) O que reconhecido por default pelo Linux e o grau de maturidade do driver (compilado no kernel ou em mdulo) O que no suportado por default na instalao bsica O que exige configuraes ou software extra para funcionar e qual o nvel de dificuldade

Como Avaliar as Caractersticas do Suporte Hardware do Linux?


Necessidade de algum conhecimento da arquitetura especfica da mquina Necessidade de saber como reconhecer o hardware dentro do SO Saber como so criados os device drivers e como o SO acessa os dispositivos na mquina Saber com detalhes como funciona a carga de mdulos para device drivers e seus comandos Analisar ferramentas de benchmarking para os itens de hardware em questo para testes com resultados numricos (hardware de rede)

Dispositivo s no Linux

Dispositivos e o Linux

Reconhecimento de Dispositivos
Lista de major numbers para dispositivos
/usr/src/linux/Documentation/devices.txt

Implementao das definies de major numbers no kernel


/usr/src/linux/include/linux/major.h

Dispositivos (caracter e bloco) reconhecidos pelo SO


/proc/devices

Dispositivos PCI reconhecidos na carga do kernel

Mdulos
Reconhecimento dos mdulos carregados
Lsmod ou /proc/modules

Informaes sobre mdulos existentes


modinfo

Reconhecimento dos mdulos existentes no sistema Anlise da compilao do kernel e


/usr/src/linux/Documentation

Mdulos no sistema
/lib/modules/kernel

Dependncias de mdulos no sistema

Reconhecimento de Dispositivos
Major numbers e e Minor numbers Drivers para dispositivos Analisar caso a caso cada dispositivo Verificar no fabricante Caso no haja suporte do fabricante, procurar driver na Internet para o equipamento (normalmente pelo chipset usado)

Interrupes de Dispositivos

No Linux se pode ter estatsticas de interrupes enviadas por CPU (/proc/interrupts) e por interrupo (/proc/stat)

Foco: Dispositivos de Rede


Objetivo: avaliar o suporte de rede das distribuies Itens de hardware para avaliao na mquina: Interface Fast Ethernet OnBoard Intel Interface Gigabit Ethernet OnBoard Intel Interface Wireless LAN PCI Intel Entendimento de implementao de dispositivos de rede no Linux no so tratados como os dispositivos de bloco ou caracter O suporte a networking est todo no kernel e device drivers normalmente esto em mdulos

Procedimento
Para cada distribuio Linux: 1. Levantar a identificao dos itens de hardware relacionados no sistema (inventrio completo do servidor) 2. Coleta das informaes relacionadas com mdulos, device drivers e itens de hardware (especificamente interfaces de rede, mas o que for aprendido aqui servir para praticamente qualquer hardware no sistema) 3. Levantar os drivers para os itens de hardware de rede necessrios no linux, suas verses e se esto ou no configurados. Encontrar os mesmos caso no estejam disponveis na distribuio e proceder a instalao se for o caso. 4. Rodar ferramentas de validao do ambiente (ltp) 5. Rodar testes de benchmarking relacionados com performance de rede (NetPIPE) 6. Variar os contextos dos testes de rede tentando analisar a influncia de outras variveis (quantidade de memria, nmero de processadores, mdulo ou parte do kernel) 7. Realizar instalao de um dispositivo novo sem suporte (driver) linux do fabricante 8. Rodar compilaes de um kernel bsico, registrando o tempo necessrio

Testes
Validao LTP (Linux Test Project) Testes OK ou NOK Benchmarking Necessidade de pesquisa e entendimento de Ferramentas e o que fazem Gerao de nmeros para comparao A questo dos padres

Testes de Compilao de Kernel


Mtrica: Tempo de compilao de um kernel Teste de aplicao bsico Caractersticas No mascara itens como a L2 como nos testes com pouca carga Muito I/O Comportamento de aplicao pesada Realizar em runlevel 1 e 3 para verificar influncias dos servios rodando na mquina

Padro de Testes no Linux


O sistema Linux sempre se apresenta em configuraes particulares de hardware, verso, kernel, patches, e distribuio Para estes testes usamos ferramentas e metodologias comuns e reconhecidas no mundo do Linux No existe padro absoluto mas os valores relativos encontrados podem mostrar as diferenas entre distribuies, desde que submetidos aos mesmos procedimentos de teste

Linux Standard Base


Projeto de compatibilizao dos aspectos das distribuio Linux, de forma criar um padro para aplicaes que rodaro em qualquer distribuio Oferecem aplicaes compatveis LSB para avaliao de distribuies candidatas Baterias de testes do ambiente para suportar aplicaes Linux comuns (Apache, etc)

Linux Test Project

Coleo de testes especficos de determinados aspectos


Funcionalidades bsicas - comandos kernel I/O Network

Benchmarking - Roteiro
Trata-se de mensurar aspectos definidos de um sistema computacional para fins de comparao No deve levar em conta parmetros subjetivos ou como reputao do distribuidor ou marketing Identificar os objetivos dos testes Descrio completa do ambiente e procedimentos Isolar uma varivel Verificar os resultados embas-los Se til, compartilhar os resultados na comunidade Linux No proceder posteriores comparaes com outros OSs

Tipos de Benchmarking
Sintticos
Avaliao de um componente especfico do sistema computacional. No do, em conjunto, uma medida do desempenho real de um sistema Exemplo: Sequncia de instrues FPU (no o caso tpico em aplicaes reais)

De aplicao
Avaliao da plataforma apliao+SO+Hardware Especficos para um tipo de aplicao

Low-level testar diretamente algum item de hardware (sempre sintticos) High-level testar o conjunto hardware, drivers e SO (podem ser sintticos ou de aplicao)

Algumas Ferramentas de Teste no Linux


NetPIPE Suporte de rede LMBench low-level Netperf - Rede XBench Sistema de vdeo UNIX Bench NetBench 7.0 SPEC - pago SGI kernel profiler kernprof AIM Bonnie I/O

Ferramenta NetPIPE
Avalia o conjunto hardware de rede + driver + implementao da pilha de protocolos de rede Permite o teste de vrios tipos de protocolos em rede (MPI, PVM, TCP) Uso de procedimento de envio de mensagens de taanhos variveis No nosso caso somente o teste com TCP ser feito para avaliar a performance da pilha TCP/IP pura implementada no sistema Linux Trabalha realizando uma srie de testes ping-pong entre dois servidores usando mensagens de tamanho varivel para revelar particularidades e limitantes, alm de envio de dados em streaming

Alteraes nos Dispositivos


Objetivo: avaliar a dificuldade em se inserir, retirar ou alterar o conjunto de dispositivos na distribuio

Ativao de hardware que no foi configurado por default na instalao (Interface Giga Ethernet) Instalao de novo hardware (Placa wireless) Retirada de um processador Retirada/insero de memria RAM no sistema

Servidores Sendo Testados

03 - Infoserver 3030 2 x PIII

08 - Infoserver 5451 2 x Xeon

14 - Infoserver 3251 2 x Xeon

07 - Infoserver 6480 2 x Itanium

Hardware de Rede
Infoserver 3030:
Ethernet controller Intel Corp. 82557/8/9 [Ethernet Pro 100] onboard Driver: eepro100

Infoserver 5451
Intel 82557/8/9 Ethernet PRO 100 - onboard Driver: e100 Intel 82544GC Gigabit Ethernet Controller - onboard Driver: e1000

Infoserver 3251
Dual-channel Intel 10/100/1000 82546EB Gigabit Ethernet Controller - onboard Driver: e1000

Hardware de Rede
Interface LAN Wireless - Intel PRO/Wireless 2011B LAN PCI Adapter
Chipset: Harris Semiconductor Prism 2.5 Wavelan chipset No existe driver linux fornecido pelo fabricante J presente suporte no kernel 2.4.18 em mdulo ou parte do kernel Configurao mdia a difcil (depende de conhecimentos de redes wireless e leitura da documentao do driver)

Instalaes do Linux
Perfil tcnico Grande conhecimento de hardware (motherboards, controladoras de disco IDE e SCSI, interfaces de rede, etc) Experincia mdia a alta em linux Tarefa no-trivial

Testes de Rede
Resultados de rede para o servidor Infoserver 3030 (conjunto completo de dados das 4 distribuies) NetPIPE 3.5 realizando o teste tcp Variao do contexto de teste
Buffers de transmisso e recebimento Memria Nmero de processadores Mdulo / parte do kernel

No sero analisados itens como:


IPv6 Roteamento Firewalling Servios de rede

InfoServer 3030 Throughput (Mbps) / Tamanho de Mensagem (bytes) - Modo Bloco - Buffers de 4086, 16384 e 32768 Bytes
100 90 80 70 60 50 40 30 20 10 0 1 100 10000 1000000 100000000 Conectiva (4086) Red Hat 9 (4086) Slackware 9 (4086) SUSE (4086) Conectiva (16384) Red Hat 9 (16384) Slackware 9 (16384) SUSE (16384) Conectiva (65535) Red Hat (65535) Slackware 9 (65535) SUSE (65535)

Dispositivo de rede: Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100]

InfoServer 3030 Assinatura de Rede (Throughput (Mbps) / Tempo (seg)) - Modo Bloco - Buffer de 4086 Bytes
100 90 80 70 60 50 40 30 20 10 0 0,00001 0,0001 0,001 0,01 0,1 1 Conectiva Red Hat 9 Slackware 9 SUSE

Dispositivo de rede: Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100]

InfoServer 3030 Assinatura de Rede (Throughput (Mbps) / Tempo (seg)) - Modo Bloco - Buffer de 16384 Bytes
100 90 80 70 60 50 40 30 20 10 0 0,00001 0,0001 0,001 0,01 0,1 1 Conectiva Red Hat 9 Slackware 9 SUSE

Dispositivo de rede: Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100]

InfoServer 3030 Assinatura de Rede (Throughput (Mbps) / Tempo (seg)) - Modo Bloco - Buffer de 32768 Bytes
100 90 80 70 60 50 40 30 20 10 0 0,00001 0,0001 0,001 0,01 0,1 1 Conectiva Red Hat 9 Slackware 9 SUSE

Dispositivo de rede: Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100]

InfoServer 3030 Tamanho de Mensagem (bytes) / Tempo (seg)) - Modo Bloco - Buffer de 4086 Bytes
10000000 1000000 100000 10000 1000 100 10 1 0,00001 0,0001 0,001 0,01 0,1 1 Conectiva Red Hat 9 Slackware 9 SUSE

Dispositivo de rede: Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100]

InfoServer 3030 Tamanho de Mensagem (bytes) / Tempo (seg)) - Modo Bloco - Buffer de 16384 Bytes
10000000 1000000 100000 10000 1000 100 10 1 0,00001 0,0001 0,001 0,01 0,1 1 Conectiva Red Hat 9 Slackware 9 SUSE

Dispositivo de rede: Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100]

InfoServer 3030 Tamanho de Mensagem (bytes) / Tempo (seg)) - Modo Bloco - Buffer de 32768 Bytes
10000000 1000000 100000 10000 1000 100 10 1 0,00001 0,0001 0,001 0,01 0,1 1 Conectiva Red Hat 9 Slackware 9 SUSE

Dispositivo de rede: Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100]

InfoServer 3030 Throughput (Mbps) / Tamanho de Mensagem (bytes) - Modo Streaming Buffers de 4086, 16384 e 65535 bytes
100 90 80 70 60 50 40 30 20 10 0 1 100 10000 1000000 100000000 Conectiva (4086) Red Hat 9 (4086) Slackware 9 (4086) SUSE (4086) Conectiva (16384) Red Hat 9 (16384) Slackware 9 (16384) SUSE (16384) Conectiva (65535) Red Hat (65535) Slackware 9 (65535) SUSE (65535)

Dispositivo de rede: Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100]

Teste Compilao de Kernel


Do idia de forma superficial do comportamento de aplicaes no sistema Tempo medido:

make bzImage gerao do kernel make modules gerao dos mdulos do kernel (maior parte)

Ainda no concludos

Testes de Validao
praticamente impossvel avaliar todos os itens levando em conta a diversidade dos sistemas Linux Conjunto conhecido de ferramentas para averiguao de aspectos de sistemas Linux (Linux Test Project) Itens que no passarem so checados

Anlises Preliminares
Suporte de rede das distribuies (drivers) Efeito dos buffers Throughput mximo Efeito de mudana de memria e nmero de processadores a ver Efeitos da operao dos drivers como mdulos ou como parte do kernel a ver

Observaes
Testes com configuraes otimizadas? Dificuldades Laboratrio (energia, espao, rede, etc) Mquinas de rack (demora, fixas nos racks, etc)

Sugestes para Trabalho Posterior


Testes com NFS e servidores de rede Averiguao do suporte Linux para gerenciamento do servidor Averiguao do suporte default de cada distribuio para segurana do sistema A mquina implementa hardware para gerenciamento prprio: temperaturas, velocidades de ventiladores e carga nos BUSes (Chip Sahalee Baseboard Management Controller - BMC) Testes com aplicao
Servios Web, MAIL, Java, SSL, etc DB software para Telco