Monitore a E/S do disco com iotop no Linux

Monitore a E/S do disco com iotop no Linux
Nos servidores Linux, você tem muitos processos em execução e cada um desses processos está fazendo algumas operações de E/S. Então, esses processos estão consumindo a largura de banda do disco de armazenamento.

Podemos usar o comando HTOP para ver uma lista de todos os processos de execução do nosso servidor Linux. Mas e se quisermos monitorar quanta largura de banda de disco cada um desses processos está consumindo? Bem, podemos usar o Iotop.

O Iotop é uma ferramenta de monitoramento de E/S interativa no Linux, como HTOP. Com o IOTOP, você pode monitorar facilmente a leitura do disco e gravar o uso da largura de banda para cada execução processada no Linux.

Neste artigo, vou mostrar como instalar o IOTOP nas distribuições populares do Linux e como usar o IOTOP para monitorar a leitura do disco e escrever uso de largura de banda por processo de corrida. Eu estarei usando o Ubuntu 18.04 LTS para a demonstração, mas os mesmos comandos devem funcionar em qualquer distribuição moderna do Linux. Então vamos começar.

Instalando o Iotop no Ubuntu:

O Iotop está disponível no repositório oficial do pacote do Ubuntu. Então, você pode baixar facilmente o Iotop usando o gerenciador de pacotes apt.

Primeiro, atualize o cache do repositório de pacotes apt com o seguinte comando:

$ sudo apt update

Agora, instale o Iotop com o seguinte comando:

$ sudo apt install iotop

Iotop deve ser instalado.

Agora, verifique se o Iotop está trabalhando com o seguinte comando:

$ Iotop -Versão

Iotop está funcionando como você pode ver.

Instalando o Iotop no CentOS 7:

O IOTOP está disponível no repositório oficial do pacote do CentOS 7. Você pode instalá -lo facilmente com o Yum Package Manager da seguinte forma:

$ sudo yum install iotop -y

Uso básico do Iotop:

Para monitorar o uso de disco de cada processo em execução com o Iotop, execute o Iotop da seguinte maneira:

$ sudo iotop

Como você pode ver, a janela interativa do Iotop é aberta. Aqui, você pode ver qual processo está usando o disco.

Como você pode ver na captura de tela abaixo, no lado superior esquerdo, a velocidade total de leitura/largura de banda é exibida. Da mesma maneira, no lado superior direito, a velocidade total de gravação do disco/largura de banda é exibida.

Como você pode ver, o Iotop exibe colunas para,

  • ID do tópico (Tid).
  • E/S Priority Class/Nível (Prio).
  • o proprietário do tópico com tid (DO UTILIZADOR).
  • o disco lido por segundo (Leitura de disco).
  • a gravação do disco por segundo (Gravação em disco).
  • a porcentagem de tempo que o fio gasta enquanto trocava (Trocar).
  • A porcentagem de tempo o tópico gasto esperando a E/S (Io>).
  • O comando que o tópico está em execução (COMANDO).

Para a maioria dos casos, o ID do thread (TID) é equivalente ao ID do processo (PID).

Exibindo processos fazendo apenas operações de E/S:

Por padrão, o Iotop mostra todos os processos em execução, estejam eles fazendo operações de E/S ou não. Então, a lista é muito longa. É mais difícil encontrar os processos de que precisamos e monitorá -los.

Felizmente, o Iotop permite exibir apenas os processos que estão fazendo operações de E/S. Para fazer isso, você pode usar o -o ou -apenas opção de iotop.

Para exibir apenas os processos que realizam operações de E/S, execute o IOTOP da seguinte maneira:

$ sudo iotop -O

Ou

$ sudo iotop -apenas

Como você pode ver, o processo com TID 1345 e 1957 estão fazendo operações de E/S agora.

Este é o comando que estou executando para simular operações de E/S neste artigo.

$ dd if =/dev/urandom de = iotest.img bs = contagem de 1m = 1000

OBSERVAÇÃO: Se você não começou o Iotop com o -o ou -apenas opção, você ainda pode mudar para este modo pressionando o o Chave no seu teclado. Você pode alternar entre esses 2 modos de Iotop usando o o chave.

Exibindo o uso total de E/S por processo:

O Iotop também permite monitorar o quanto as leituras de disco e o disco escritos no total de cada processo foram feitos depois que o Iotop começou também. Para fazer isso, você tem que usar o -a ou -acumulado opção. Você também pode usá -lo com o -o ou -apenas opção também.

Por exemplo,

$ sudo iotop -ao

Como você pode ver, as leituras totais de disco e as gravações de disco por processo são exibidas.

Exibindo PID em vez de TID:

Como afirmei anteriormente, o ID do thread (TID) é o mesmo que o ID do processo (PID) na maioria das vezes. Você pode usá -los de forma intercambiável. Mas se você realmente deseja ter certeza de que está trabalhando exatamente com ID de processo (PID), então o Iotop tem o -P ou -processos Opção que você pode usar para alterar a coluna TID padrão para coluna PID.

Para exibir coluna PID em vez de coluna TID, execute o IOTOP da seguinte forma:

$ sudo iotop -p

Ou

$ sudo iotop -processos

Como você pode ver, a coluna TID é substituída pela coluna PID.

Filtrando os processos de Iotop:

Você pode filtrar os processos de Iotop com base no ID do processo (PID), ID do thread (TID) e o proprietário processado (usuário).

Por exemplo, se você deseja monitorar a E/S do disco dos processos apenas com o PID 2024 e 2035, executaria o IOTOP da seguinte maneira:

$ sudo iotop -p -p 2024 -p 2035

Como você pode ver, apenas os processos com o PID 2024 e 2035 estão sendo monitorados.

Se você quisesse monitorar a E/S do disco dos threads com o TID 2024 e 2035, você executaria o IOTOP da seguinte maneira:

$ sudo iotop -p -p 2024 -p 2035

Mais uma vez, digamos, você deseja monitorar a E/S do disco dos processos em execução como o usuário Shovon. Para fazer isso, execute o Iotop da seguinte maneira:

$ sudo iotop -p -u shovon

Como você pode ver, apenas os processos em execução como usuário Shovon é exibido.

Se você deseja monitorar vários usuários de uma só vez, também pode fazer isso.

Por exemplo, para monitorar a E/S de disco de todos os processos que os usuários Shovon e lírio estão correndo, execute o Iotop da seguinte maneira:

$ sudo iotop -p -u shovon -u lily

Então, é basicamente assim que você usa o Iotop para monitorar a E/S do disco no Linux. Obrigado por ler este artigo.