Podemos usar o comando htop para ver uma lista de todos os processos em execução do nosso servidor Linux. Mas e se quisermos monitorar quanta largura de banda do disco cada um desses processos está consumindo? Bem, podemos usar iotop.
iotop é uma ferramenta de monitoramento de I / O interativa no Linux, assim como o htop. Com o iotop, você pode monitorar facilmente o uso de largura de banda de leitura e gravação de disco para cada execução processada no Linux.
Neste artigo, vou mostrar como instalar o iotop em distribuições populares do Linux e como usar o iotop para monitorar o uso de largura de banda de leitura e gravação de disco por processo em execução. Vou usar o Ubuntu 18.04 LTS para a demonstração, mas os mesmos comandos devem funcionar em qualquer distribuição Linux moderna. Então vamos começar.
Instalando o iotop no Ubuntu:
iotop está disponível no repositório oficial de pacotes do Ubuntu. Então, você pode facilmente baixar 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á funcionando com o seguinte comando:
$ iotop --versioniotop está funcionando como você pode ver.
Instalando o iotop no CentOS 7:
iotop está disponível no repositório oficial de pacotes do CentOS 7. Você pode instalá-lo facilmente com o gerenciador de pacotes YUM da seguinte maneira:
$ sudo yum install iotop -y
Uso básico do iotop:
Para monitorar o uso do 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 imagem abaixo, no lado superior esquerdo, a velocidade total de leitura do disco / largura de banda é exibida. Da mesma forma, no lado superior direito, a velocidade de gravação / largura de banda total do disco é exibida.
Como você pode ver, o iotop exibe colunas para,
- ID do tópico (TID).
- Classe / nível de prioridade de I / O (PRIO).
- o dono do tópico com TID (DO UTILIZADOR).
- o disco lido por segundo (DISCO DE LEITURA).
- a gravação do disco por segundo (GRAVAÇÃO DE DISCO).
- a porcentagem de tempo que o encadeamento gastou durante a troca (SWAPIN).
- a porcentagem de tempo que o segmento gastou esperando no I / O (IO>).
- o comando que o thread está executando (COMANDO).
Na maioria dos casos, o Thread ID (TID) é equivalente ao ID do processo (PID).
Exibindo processos que realizam apenas operações de I / O:
Por padrão, o iotop mostra todos os processos em execução, estejam eles fazendo operações de I / O 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 que você exiba apenas os processos que estão realizando operações de I / O. Para fazer isso, você pode usar o -o ou -só opção de iotop.
Para exibir apenas os processos que realizam operações de I / O, execute iotop da seguinte maneira:
$ sudo iotop -oOu
$ sudo iotop --only
Como você pode ver, o processo com TID 1345 e 1957 está fazendo operações de I / O agora.
Este é o comando que estou executando para simular as operações de E / S neste artigo.
$ dd if = / dev / urandom of = iotest.img bs = 1M contagem = 1000
NOTA: Se você ainda não começou iotop com o -o ou -só opção, você ainda pode alternar para este modo pressionando o o tecla 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 a quantidade de leituras e gravações de disco no total que cada processo fez depois que o iotop foi iniciado. Para fazer isso, você deve usar o -uma ou -acumulado opção. Você também pode usá-lo com o -o ou -só opção também.
Por exemplo,
$ sudo iotop -aoComo você pode ver, o total de leituras e gravações de disco por processo é exibido.
Exibindo PID em vez de TID:
Como afirmei anteriormente, Thread ID (TID) é o mesmo que Process ID (PID) na maioria das vezes. Você pode usar estes de forma intercambiável. Mas se você realmente deseja ter certeza de que está trabalhando exatamente com o ID do 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 a coluna PID em vez da coluna TID, execute iotop da seguinte maneira:
$ sudo iotop -POu
$ sudo iotop --processes
Como você pode ver, a coluna TID é substituída pela coluna PID.
Filtrando processos iotop:
Você pode filtrar processos iotop com base no ID do processo (PID), ID do segmento (TID) e o proprietário processado (USUÁRIO).
Por exemplo, se você deseja monitorar a E / S de disco dos processos com o PID 2024 e 2035 apenas, você 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ê quiser monitorar a E / S do disco das threads apenas com o TID 2024 e 2035, execute o iotop da seguinte maneira:
$ sudo iotop -P -p 2024 -p 2035Novamente, digamos que você deseja monitorar a E / S do disco dos processos em execução como o usuário pá. 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 o usuário pá é exibido.
Se você deseja monitorar vários usuários ao mesmo tempo, também pode fazer isso.
Por exemplo, para monitorar I / O de disco de todos os processos que os usuários pá e lírio estão em execução, execute iotop da seguinte maneira:
$ sudo iotop -P -u shovon -u lírioEntão, é basicamente assim que você usa o iotop para monitorar E / S de disco no Linux. Obrigado por ler este artigo.