O monitoramento de carga é uma das tarefas mais críticas, especialmente se você estiver lidando com servidores. Ele não apenas dá uma ideia de como os recursos do sistema estão sendo utilizados, mas também ajuda a diagnosticar problemas relacionados ao desempenho. Neste artigo, discutiremos como realizar o monitoramento de carga no Linux usando a ferramenta atop.
Nota: todos os exemplos usados no artigo são testados no Ubuntu 14.04.
No topo
De acordo com sua página de manual, a ferramenta de linha de comando atop
é um monitor interativo para visualizar a carga em um sistema Linux. Mostra como os recursos de hardware do seu sistema, incluindo cpu, memória, disco e rede estão ocupados, tudo do ponto de vista do desempenho. Além disso, mostra quais processos são responsáveis pela carga indicada.
Nota: a carga do disco é mostrada se por processo “contabilidade de armazenamento” estiver ativo no kernel ou se o patch do kernel “cnt” tiver sido instalado. Da mesma forma, a carga da rede só é mostrada por processo se o patch do kernel “cnt” tiver sido instalado.
Baixar e instalar
Os usuários de sistemas baseados em Debian (como Mint e Ubuntu) podem baixar e instalar a ferramenta usando o seguinte comando:
sudo apt-get install atop
Aqueles que estão em outras distribuições Linux podem usar suas respectivas ferramentas de gerenciamento de pacotes. Por exemplo, yum
no caso da Red Hat. Você também pode baixar a ferramenta de seu website oficial.
Saída superior
Depois de instalada, você pode executar a ferramenta executando o seguinte comando na linha de comando:
sudo atop
Aqui está o exemplo de saída:
Como você pode ver, são muitas informações que estão amplamente divididas em duas partes: nível do sistema e nível do processo. O primeiro consiste nas seguintes linhas de saída:
PRC: Esta linha contém o tempo total de CPU consumido no modo de sistema (‘sys’) e em modo de usuário (‘usuário’), o número total de processos presentes neste momento (‘#proc’), o número total de threads presentes em neste momento no estado ‘running’ (‘#trun’), ‘dormindo interrompível’ (‘#tslpi’) e ‘dormindo ininterrupta’ (‘#tslpu’), o número de processos zumbis (‘#zombie’), o número de chamadas de sistema clone (‘clones’) e o número de processos que terminaram durante o intervalo (‘#exit’, que mostra ‘?’ se a contabilidade de processo não for usada).
CPU: Esta linha contém a porcentagem de tempo de CPU gasto no modo kernel por todos os processos ativos (‘sys’), no modo usuário (‘usuário’) para todos os processos ativos (incluindo processos em execução com um bom valor maior que zero), para interrupção manipulação (‘irq’) incluindo softirq, bem como a porcentagem de tempo de CPU não utilizado enquanto nenhum processo estava esperando por E / S de disco (‘ocioso’) e enquanto pelo menos um processo estava esperando por E / S de disco (‘ esperar’). No caso de um sistema multiprocessador, uma linha adicional é mostrada para cada processador individual (com ‘cpu’ em minúsculas), classificada por atividade.
CPL: Esta linha contém informações de carga de CPU – o número de threads que estão disponíveis para rodar em uma CPU (ou seja, parte da fila de execução) ou que estão esperando por E / S de disco, o número de mudanças de contexto (‘csw’), o número de interrupções atendidas (‘intr’) e o número de CPUs disponíveis.
MEM: Esta linha contém informações relacionadas ao consumo de memória – a quantidade total de memória física (‘tot’), a quantidade de memória que está atualmente livre (‘livre’), a quantidade de memória em uso como cache de página (‘cache’) , a quantidade de memória dentro do cache de página que deve ser liberada para o disco (‘sujo’), a quantidade de memória usada para metadados do sistema de arquivos (‘buff’) e a quantidade de memória sendo usada para o kernel malloc (‘slab’ )
SWP: Esta linha contém a quantidade total de espaço de swap no disco (‘tot’) e a quantidade de espaço de swap livre (‘free’), o espaço de memória virtual comprometido (‘vmcom’) e o limite máximo do espaço comprometido ( ‘vmlim’)
DSK: Esta linha contém informações relacionadas à utilização do disco – a parte do tempo que a unidade esteve ocupada tratando de solicitações (‘ocupado’), o número de solicitações de leitura emitidas (‘leitura’), o número de solicitações de gravação emitidas (‘gravação’) , o número de KiBytes por leitura (‘KiB / r’), o número de KiBytes por gravação (‘KiB / w’), o número de MiBytes por segundo de rendimento para leituras (‘MBr / s’), o número de MiBytes taxa de transferência por segundo para gravações (‘MBw / s’), a profundidade média da fila (‘avq’) e o número médio de milissegundos necessários para uma solicitação (‘avio’) para busca, latência e transferência de dados.
INTERNET: Esta é a informação relacionada à utilização da rede (TCP / IP) – uma linha é mostrada para atividade da camada de transporte (TCP e UDP), uma linha para a camada IP e uma linha por interface ativa.
As informações de nível de sistema são seguidas por informações de nível de processo, que como o nome sugere, informações detalhadas relacionadas aos processos dos quais a utilização de recursos foi alterada durante o último intervalo (um intervalo padrão é 10 segundos).
Um ponto importante a ser mencionado é que o atop usa cores (vermelho, ciano e mais) para indicar a criticidade do consumo de recursos no nível do sistema. Por exemplo, quando um recurso excede sua porcentagem crítica de ocupação, toda a linha da tela é colorida VERMELHA.
Nota: vá através do comando página man para obter mais detalhes sobre a saída do comando.
Comandos interativos
Você pode controlar a saída do comando atop de seu teclado. Por exemplo, pressione m
para mostrar a saída relacionada à memória, d
para saída relacionada ao disco, n
para saída relacionada à rede, v
para várias características de processo, c
para a linha de comando do processo, etc.
Aqui está a captura de tela das informações de nível de processo produzidas pelo comando atop quando c
foi pressionado:
Como você pode ver, a linha de comando do processo é exibida na saída.
Conclusão
O Atop é um comando de monitoramento de carga muito útil no Linux, que não apenas fornece informações sobre os recursos do sistema, mas também várias maneiras de personalizar e controlar sua saída. Recomenda-se que você passe pelo página man do comando para aprender mais sobre isso.