Conheça a coleção Academy
da Linux New Media
Os livros da Coleção Academy são roteiros práticos e
objetivos, com didática adequada tanto ao profissional
quanto ao estudante da área de TI.
Luciano Antonio Siqueira
Infraestrutura
de Redes
Passo a passo da montagem de uma rede
de computadores, desde o cabeamento
e roteadores até a configuração das
máquinas clientes.
Configuração e manutenção de serviços
essenciais como DNS, compartilhamento
de arquivos e acesso remoto.
Paulo Henrique Alkmin da Costa
Luciano Antonio Siqueira
Samba:
Máquinas
virtuais com
VirtualBox
com Windows
e Linux
Como permitir a comunicação de diferentes sistemas operacionais em rede: Windows,
Linux, Mac OS X etc. Definição de compartilhamentos de arquivos, impressoras – incluindo
a instalação automática de drivers – e utilização do Samba como controlador de domínio
(PDC) também para clientes Windows Vista e Windows 7.
O conteúdo e o formato dos livros foram desenvolvidos a partir da experiência prática e
educacional de seus autores, com foco principal no desenvolvimento de competências,
através de conceitos, exemplos detalhados e dicas de quem realmente entende do assunto.
O material é indicado tanto para autodidatas que desejam se aperfeiçoar quanto para
utilização em escolas. O professor irá se sentir confortável para desenvolver as atividades a
partir do livro, que procura atender tanto à expectativa do aprendiz quanto à demanda
profissional do mercado de TI.
Disponível no site www.LinuxMagazine.com.br
Administração de infraestrutura de
máquinas virtuais com Sun VirtualBox®.
Como trabalhar com sistemas operacionais
– Windows, Linux etc – na mesma máquina
e simultaneamente.
Criação de diferentes modalidades de
conexões virtuais, exportação/importação
de máquinas virtuais e criação de pontos
de recuperação (snapshots).
Ferramentas de diagnóstico | REDES
Ajuste seu sistema com ferramentas de diagnóstico
REDES
Pacote de
estatísticas
Para verificar a saúde de um sistema Linux, os administradores
podem recorrer ao vmstat, ao iostat, ao netstat e ao ifstat. Ou
você pode simplesmente usar o versátil dstat, que combina as
características de várias ferramentas em um único pacote.
por Valentin Höbel
O
s administradores de sistema
normalmente usam várias
ferramentas para monitorar a
carga de recursos em um sistema Linux.
Mas para alguns poderosos aplicativos
de ponta para monitoramento, a sobrecarga (overhead ou sobrecarga) pode
ser bastante elevada, especialmente se
você precisar solucionar problemas de
desempenho. Algumas ferramentas
precisam funcionar durante um período prolongado de tempo e, é claro,
utilizam recursos próprios. Este artigo
apresenta o vmstat, o iostat, o netstat
e o ifstat, quatro programas simples
que se encaixam bem em qualquer
caixa de ferramentas de administrador. Você também vai aprender sobre
a ferramenta multifuncional dstat, que
combina muitos recursos de outras
ferramentas em um único utilitário.
Conhecimento básico
Se você quiser interpretar as métricas
do sistema, primeiro precisa entender
o que elas significam. Muitas métricas referem-se à memória virtual.
A RAM física na forma de blocos
de memória RAM apresenta uma
quantidade tangível, mas os limites
são mais obscuros no gerenciamento
de memória virtual. O sistema de gerenciamento de memória do sistema
operacional é um enigma até mesmo para usuários Linux experientes.
Todo processo do Linux precisa
de memória para lidar com suas
tarefas. Para manter este processo,
o sistema operacional aloca memória, isto é, reserva uma quantidade
de espaço de memória de A para B,
que o programa vai provavelmente
usar em algum momento posterior.
Mas, pelo fato de nem todo processo
ativo precisar de toda a memória que
lhe é atribuída o tempo todo, o kernel
troca essa memória por uma página
de memória no disco (paging out), o
que permite que o sistema utilize a
memória RAM física disponível para
necessidades mais imediatas. Se toda a
memória reservada para um processo
for gravada no disco, este processo é
conhecido como swapping (virtualização de memória). Se o kernel só
escreve no disco páginas individuais
da RAM alocada, o processo é chamado de paginação (paging).
Em contrapartida, o sistema pode
carregar essa memória de volta para
a RAM em um processo conhecido
como paging in. Este processo é absolutamente normal e não é indicativo
de uma execução com poucos recursos. Paginar no disco pode ocasionar
uma carga pesada em alguns sistemas,
com o kernel passando mais tempo
gerenciando a memória virtual do que
realmente trabalhando nos processos.
Munido destas informações, é fácil
entender as diferenças entre buffer e
cache. Enquanto um buffer contém
dados que ainda precisam ser escritos
no disco, o cache lê dados já escritos
em uma mídia de armazenamento.
Troca de contexto (context switching)
é outro termo importante que se refere à
interrupção de um processo pelo Linux,
salvando o contexto de memória para
em seguida completar outro processo.
Pelo fato de a mudança de contexto
ser uma das operações mais custosas
em um sistema Linux, se o número
de trocas de contexto cresce de alguns
Figura 1 Se o vmstat for executado sem quaisquer parâmetros, mostrará apenas os valores médios.
Linux Magazine #91 | Junho de 2012
61
REDES | Ferramentas de diagnóstico
milhares para mais de 100.000 em um
período curto, isso pode indicar o alto
uso de recursos desnecessariamente.
Munido dessas informações, o administrador Linux pode agora começar
a descobrir os problemas de desempenho, executando as ferramentas certas.
O vmstat
Muitos administradores de sistemas
Linux provavelmente estão familiarizados com o vmstat [1]. Essa poderosa
ferramenta mostra uma visualização
em forma de tabela para processos, uso
de RAM e paginação, I/O (entrada e
saída de dados) e atividade da CPU.
Se você chamar a ferramenta sem
nenhum parâmetro, verá somente
uma única linha que reflete os valores
médios desde a última reinicialização
(figura 1). A saída do vmstat normalmente ocupa seis colunas. A primeira
parte, procs, contém os valores r (run
time) para o número de processos
atualmente à espera do momento de
serem processados, enquanto b (blocked processes) significa processos em
um estado de espera que não pode
ser interrompido.
Se você olhar para a coluna
memory, verá o total de memória
virtual em uso em swpd, enquanto
free lhe dá o total de RAM não utilizado, buff o buffer de memória, e
cache o cache de memória.
A área swap dessa saída contém
um valor si para a memória alocada
do disco para a RAM (swapped in)
Curta
Longa
Função
-c
--cpu
Habilita estatísticas de CPU
-d
--disk
Habilita estatísticas de disco
-g
--page
Habilita estatísticas de paginação
-i
--int
Habilita estatísticas de interrupções
-l
--load
Habilita estatísticas de carga de sistema
-m
--mem
Habilita estatísticas de memória
-n
--net
Habilita estatísticas de rede
-s
--swap
Habilita estatísticas de troca
-y
--sys
Habilita estatísticas de sistema
-v
--vmstat
Saída do vmstat com o dstat
Tabela 1 Opções do dstat.
62
por segundo, e assim so se refere ao
processo oposto (swapped out). O io
mostra o número de blocos lidos pelo
sistema (bi) ou escritos (bo) por segundo. Uma olhada rápida na área system
revela o número de interrupções (in)
e trocas de contexto (cs) por segundo.
A coluna final, chamada cpu, é
bastante exaustiva e contém valores
percentuais: us é a porcentagem de
tempo de processamento que os processos no espaço do usuário exigem;
sy é a métrica de tempo de processamento exigido pelo kernel para o
processamento de eventos do sistema.
O id diz respeito ao tempo de inatividade (idle). O último valor na coluna atual, wa, lhe dá os processos em
espera por entrada ou saída.
O comando vmstat 1 5 executa o programa com uma taxa de atualização de
uma vez a cada segundo e cinco linhas
de saída (figura 2). Neste exemplo, os
processos tiveram de esperar o tempo
de execução duas vezes, e o Linux teve
que ler os dados do disco ao mesmo
tempo (primeira linha de saída).
Outra opção útil é vmstat -d para estatísticas de disco; isso lhe dá uma visão
um pouco desordenada dos eventos de
I/O na memória RAM e no disco. O
comando vmstat -s mostra os valores
de eventos de CPU e memória em
uma lista, o que torna a saída utilizável para avaliação automática em um
script. Outro adicional interessante é
a opção vmstat -p, seguida por uma
indicação da partição que lhe mostra as
operações de leitura e escrita somente
na partição selecionada.
O vmstat é extremamente popular
no uso diário, mas peca pela legibilidade da saída de dados, bem como
por uma falta de clareza geral.
O iostat
O iostat [2] foca na entrada e saída
de sistemas Linux. A ferramenta fornece estatísticas significativas, mesmo
sem opções de linha de comando. A
linha avg-cpu (average cpu) contém
estatísticas da CPU e dá ideias sobre
o estado de carga geral. Na figura 3, o
sistema parece ter muito pouco a fazer:
os processadores estão 84% ociosos e
a porcentagem de processos à espera
de I/O é inferior a um. Se seu sistema
tem várias CPUs, o iostat mostra os
valores médios.
A tabela na parte inferior da figura
3 fornece informações sobre os dispositivos de bloco. A coluna tps mostra
as transferências por segundo, o que
é equivalente ao número de pedidos
de I/O para o dispositivo. O parâmetro Blk_read/s (read blocks/s) lhe dá
o número de blocos que o Linux lê
a partir do dispositivo especificado
em 1 segundo. Um bloco normalmente significa 512 bytes. Blk_wrtn/s
mostra o acesso de escrita na mesma
unidade e as duas últimas colunas,
Blk_read e Blk_wrtn, representam as
estatísticas globais desde a última
inicialização do sistema.
Chamar o iostat sem nenhum
parâmetro fornece um panorama útil
de eventos de I/O. No caso da virtualização, o roubo (steal) também é
de interesse para o usuário: ele lhe
mostra quanto tempo os processadores virtuais estão gastando ao esperar
pelo hypervisor (máquina virtual). Se
os números apresentados são muito
grandes e portanto difíceis de ler, você
pode ajustar a saída para megabytes
colocando iostat -m.
Para um ajuste mais granular, é possível definir o parâmetro -p e a partição
a ser monitorada. O comando iostat
www.linuxmagazine.com.br
Ferramentas de diagnóstico | REDES
-c mostra apenas os valores de CPU.
Se você não está interessado em dados
dos dispositivos de bloco, pode salvar
muitas linhas de saída. Para obter mais
visibilidade para os dispositivos de bloco,
experimente o iostat -d, que esconde
as estatísticas da CPU. Claro, você pode
combinar os parâmetros: iostat -d -p
drbd4 só mostra o que está ocorrendo
atualmente no dispositivo drbd4.
O iostat também suporta sistemas de
arquivos NFS montados. O iostat -n lhe
dá uma visão geral dos diretórios NFS
montados e o tráfego atual em blocos e
kilobytes por segundo. Se você precisar
de mais detalhes sobre as ocorrências
de I/O, confira a página do manual, o
que mostra detalhes de outras opções
úteis, tais como -x, que adiciona mais
valores na saída de estatísticas.
O netstat
O netstat [3] é uma popular ferramenta de diagnóstico de rede tanto
no Windows quanto no mundo Linux.
Embora a maioria dos sistemas Linux
tenha substituído o netstat pelo o ss,
os administradores de sistemas ainda
gostam de usar a familiar ferramenta
netstat, que remonta a um passado
de quase 30 anos. A lista de recursos
do netstat é tão longa que este artigo
só pode examinar as características
mais importantes. Por exemplo, o
comando netstat --ip, mostra o
número de conexões abertas. Você
pode digitar o seguinte
Figura 2 O vmstat com cinco linhas de saída e uma taxa de atualização de
uma vez a cada segundo.
Figura 3 O iostat fornece informações sobre CPUs e dispositivos baseados
em blocos.
Figura 4 A ferramenta de rede netstat mostra as conexões de escuta (listening).
netstat --ip | wc -l
para contabilizar as conexões. Para
mais detalhes da lista de conexões,
utilize a opção netstat -l, como
mostrado na figura 4 (saída abreviada). A página de manual (man page)
do netstat lista outras opções úteis.
O ifstat
O ifstat [4] lhe dá um breve panorama do tráfego da rede para todas
as interfaces de rede que encontrar.
Se você executar o programa com as
opções -a -b, terá uma breve visuali-
Linux Magazine #91 | Junho de 2012
Figura 5 É possível monitorar suas interfaces (de rede) com o ifstat.
63
REDES | Ferramentas de diagnóstico
zação geral de todas as suas interfaces,
como mostrado na figura 5. O programa mostra os dados enviados e recebidos em kilobytes por segundo. Se
os serviços do sistema não estiverem
usando todas as interfaces disponíveis,
você pode omitir as interfaces não
utilizadas com a opção -z. Se você
prefere ter a saída do ifstat tão curta
quanto possível, digite ifstat -S para
restringir a saída para uma linha, que
é continuamente atualizada.
O dstat: recursos
combinados
Se esta lista de ferramentas individuais
para análise de sistema é muito longa
para o seu gosto, você perceberá que o
dstat [5] combina praticamente todos
os recursos dessas outras ferramentas
em um único utilitário. Além disso o
dstat usa cores e fixa a largura da coluna, o que significa que os números
são sempre apresentados de forma cla-
Figura 6 O dstat usa tabelas e cores para melhorar a legibilidade.
Figura 7 O dstat sendo executado em uma das partições do disco rígido.
ra. A ferramenta foi criada em 2004, é
escrita em Python possui licença GPL
e utiliza uma abordagem modular.
Cada coluna na saída é criada por
um módulo. Esses módulos residem
no diretório /usr/share/dstat/.
Você precisará instalar o dstat na
maioria das distribuições. Chamar a
ferramenta sem quaisquer argumentos de linha de comando mostra as
semelhanças com o vmstat (figura 6).
Como o vmstat, o dstat lhe dá todos
os valores em uma tabela.
A cor vermelha não indica necessariamente um problema. O dstat muda
a cor quando os valores excedem o
limite definido em um módulo. Essa
mudança de cores é projetada para
melhorar a legibilidade de dados e
chamar a atenção do administrador
para as mudanças no comportamento
do sistema. Mas se você realmente
não gostar do esquema de cores,
pode desativá-lo usando --nocolor,
ou pode usar --bw para modificar a
exibição para um terminal com uma
cor de fundo clara.
Os cabeçalhos das colunas correspondem aos do vmstat em sua maior
parte, portanto não precisam de nenhuma explicação. O que é interessante é
o enorme espaço para personalização
na estrutura modular do dstat. Para
uma visão geral dos plugins disponíveis,
digite o comando dstat --list. Chamar o dstat sem nenhum parâmetro
equivale a digitar o seguinte por padrão:
dstat -c -d -n -g -y
Figura 8 Caça dos maiores monopolizadores de memória: o dstat identificou
o serviço do LDAP neste caso.
Figura 9 Com as opções corretas, você pode usar o dstat como uma espécie
de iostat e monitorar a carga da CPU.
64
As opções que podem ser acionadas
com um único – dizem respeito às
funções embutidas no dstat. As que
vêm de módulos externos precisam de
dois sinais de menos, --. Os plugins
assim podem ser chamados digitando dstat --nome_plugin. Por exemplo,
se você digitar dstat --proc-cont, é
levado até uma lista de estatísticas
permanentemente atualizada com os
processos atualmente em execução.
Pelo fato de o dstat abranger as
versáteis características do vmstat,
www.linuxmagazine.com.br
Ferramentas de diagnóstico | REDES
do iostat, do ifstat e do netstat,
mesmo o autor do programa, Dag
Wieers, recomenda usar a ferramenta
especificamente para determinados
casos. Isso significaria, por exemplo,
apenas monitorar os discos rígidos e
pontos de montagem, o que você poderia fazer com o seguinte comando:
dstat -d --disco-util --freespace
A figura 7 mostra os resultados
(saída abreviada). O dstat divide a
saída mesmo nos discos existentes e
em partições. Se ocorrem ações de
escrita ou exclusão em segundo plano
nas partições especificadas, você automaticamente observa as mudanças
no dstat. E se você montar diretórios
NFS em seu sistema, também vai
encontrá-los nas estatísticas.
Os usuários comuns do vmstat podem gostar de se concentrar na análise
de memória. O seguinte comando:
dstat -g -l -m -s --top-mem
lhe dá uma visão útil para esta finalidade. Na figura 8 é possível ver como
o servidor LDAP, slapd, abarca mais e
mais recursos no decorrer do tempo.
O comando --top-mem revela que esse
processo é o consumidor número um
de memória. Refletindo o aumento da memória RAM exigida pelo
slapd, o parâmetro memory-usage mos-
tra um aumento na memória cache.
Enquanto o dstat estava funcionando,
o administrador lançou uma pesquisa
complexa no LDAP que disse para
o daemon ler informações do disco.
Os usuários do dstat também podem se concentrar no monitoramento
da CPU em um estilo semelhante
ao do iostat. Para revelar o processo
que consome mais tempo de CPU,
você deve digitar o seguinte (figura 9):
dstat -c -y -l --proc-cont --top-cpu
Como o valor para idl em
total-cpu-usage mostra, o sistema
não está muito carregado.
Os administradores de sistemas
atentos também executarão o programa em uma rede, como se segue:
dstat -n --socket --tcp --udp
Embora os valores medidos para os
sockets e o protocolo UDP mostrem
pouca mudança neste exemplo, você
pode ver na seção net/total que as
placas de rede atualmente precisam
responder aos pedidos (figura 10).
Novamente, o motivo para este aumento de atividade é uma pesquisa
LDAP. O dstat usa realce de cor para
chamar a atenção sobre a presença
de pedidos pendentes.
O dstat é rico em recursos, mas
também um monstro em opções.
Para ajudá-lo a se localizar, a tabela
1 mostra as opções mais importantes
a partir dos exemplos apresentados
neste artigo.
Conclusão
Depois de ter descoberto os benefícios do dstat, você provavelmente
vai considerar escrever seus próprios
plugins para suas necessidades específicas. A linguagem de programação usada para criar plugins para
o dstat é o Python. Depois de colocar os módulos que você fez em
/usr/share/dstat/, pode executá-los
como opção de linha de comando
digitando dois sinais de menos antes
do nome do módulo. Se você estiver
procurando um modelo, confira o
arquivo dstat_helloworld.py no diretório de módulos. Você pode até
mesmo executar esse código digitando
dstat --hello, mas note que ele serve
apenas como um exemplo.
Se você preferir um exemplo mais
significativo e prático, dê uma olhada nos outros módulos no diretório
/usr/share/dstat. Você encontrará
uma gama de exemplos diferentes, que pode modificar para seus
próprios fins. ■
Mais informações
[1] Vmstat: http://procps.
sourceforge.net/
[2] Iostat: http://sebastien.
godard.pagesperso-orange.
fr/documentation.html
[3] Netstat: http://www.tazenda.
demon.co.uk/phil/net-tools/
[4] Ifstat: http://gael.
roualland.free.fr/ifstat
[5] Dstat: http://dag.wieers.
com/home-fez/dstat
Gostou do artigo?
go?
Figura 10 O dstat monitorando sockets TCP e UDP.
Linux Magazine #91 | Junho de 2012
Queremos ouvir sua
ua opinião.
op ão.
Fale conosco em
[email protected]
e.com.b
Este artigo no nosso
so site:
sit
http://lnm.com.br/article/6957
articl 957
65
Download

Conheça a coleção Academy da Linux New Media