Verifique a integridade e a disponibilidade de seus servidores Linux para obter desempenho ideal com a ferramenta de monitoramento Linux do Site24x7.
O tempo de espera de I/O é uma métrica usada para medir a quantidade de tempo que a CPU espera pela conclusão das operações de I/O do disco. Um alto tempo de espera de I/O indica uma CPU ociosa e solicitações de I/O pendentes – embora possa não prejudicar a integridade do sistema, limitará o desempenho da CPU.
A espera de I/O da CPU significa que, embora nenhum processo estivesse em estado executável, pelo menos uma operação de I/O estava em andamento. Em termos simples, a espera de I/O é o tempo gasto pela CPU aguardando a conclusão da I/O.
A espera de I/O simplesmente indica o estado da CPU ou dos núcleos da CPU. Uma espera alta de I/O significa que a CPU está pendente nas solicitações, mas é necessária uma investigação mais aprofundada para confirmar a origem e o efeito.
Aqui estão algumas causas possíveis para o alto tempo de espera de I/O:
A alta espera de I/O força o servidor a lidar com maior largura de banda para realizar outros cálculos enquanto aguarda solicitações de I/O. A espera de I/O é uma métrica comum para analisar o desempenho do sistema. Quando a espera alta de I/O ocorre com frequência, ela pode impactar negativamente o desempenho do sistema, tornando-o mais lento ou causando problemas como baixa taxa de transferência de transações no banco de dados e degradação da integridade em aplicações e bancos de dados.
Os dois comandos mais comumente usados para identificar e solucionar problemas de tempo de espera de I/O no Linux são top
e vmstat.
Esses comandos exibirão várias estatísticas em nível de CPU, incluindo o tempo de espera do I/O.
top
O comando top
é o comando mais fácil e mais amplamente usado para identificar o tempo de espera de I/O no Linux. Ele exibe uma visão dinâmica e em tempo real do sistema, estatísticas em nível de CPU e uma lista em execução de processos gerenciados pelo kernel.
Syntax:
top [options]
Example:
A execução do comando top
exibirá um output semelhante à mostrada abaixo:
top
Vamos nos concentrar na linha %Cpu(s)
. Ele exibe, entre outras estatísticas importantes, o tempo de espera de I/O. O tempo de espera de I/O é indicado pelo rótulo wa na linha %Cpu(s)
.
wa
denota a porcentagem de tempo que a CPU esperou pela conclusão da I/O. Se você estiver em um sistema com processador multi-core, poderá pressionar 1 enquanto o comando top
estiver em execução para obter um detalhamento do uso da CPU por CPU.
vmstat
O comando vmstat
é outra ferramenta de monitoramento de desempenho fornecida pelo Linux. Ele fornece informações sobre memória, processos, CPU e muito mais. Por padrão, vmstat
exibe as estatísticas desde a última reinicialização do sistema. Ele também pode mostrar estatísticas em tempo real que são atualizadas após um intervalo especificado.
Syntax:
vmstat [options][delay [count]]
Os dois parâmetros comumente usados com o comando vmstat são:
Example:
Executar o comando vmstat
fornecerá um output semelhante à mostrada abaixo:
vmstat
O output está dividido em quatro seções; vamos nos concentrar na seção CPU. As colunas nesta seção são semelhantes à linha %Cpu(s) do comando Top. Junto com o tempo de espera de I/O (wa), também obtemos algumas informações adicionais por meio do comando vmstat, como o total de memória livre ou o número de blocos trocados de e para I/O. Ter menos memória livre, por exemplo, pode levar a um alto tempo de espera de I/O.
Depois de confirmar que você está lidando com um alto tempo de espera de I/O, a próxima etapa deverá ser encontrar processos responsáveis por essas operações de I/O. Um dos comandos mais fáceis e usados com mais frequência é iotop.
iotop
O comando iotop
é idêntico ao comando Top no sentido de que é usado para monitorar o uso de I/O do disco junto com a lista em execução de processos ou threads responsáveis por ele. É baseado em Python e requer acesso ao kernel para monitorar os processos que realizam I/O.
Syntax:
iotop [options]
Example:
Executar o comando iotop
fornecerá um output semelhante ao mostrado abaixo:
iotop
A primeira linha contém a largura de banda total de leitura e gravação do disco. A próxima linha exibe a largura de banda real das operações de leitura e gravação realizadas pelos processos ou threads atualmente realizando I/O. A próxima seção exibe a lista de processos em execução com dados sobre o uso atual de I/O do disco. A coluna mais importante aqui é a coluna I/O, que exibe a porcentagem de tempo que o processo esteve realizando I/O em relação ao tempo total de processamento. Esta lista específica de processos é classificada em ordem inversa nesta coluna.
Uma das opções mais comumente usadas com este comando é -o ou -only. Execute junto com o comando (iotop -o),
ele restringe os resultados a uma lista em execução de processos que estão realmente executando I/O.
Os comandos top
e vmstat
nos informam sobre o tempo de espera de I/O, e o comando iotop
nos ajuda a identificar os processos que realizam operações de I/O . Um outro fator importante a considerar é quais discos estão sendo usados nessas operações. O comando iostat
fornece essas informações.
iostat
O comando iostat
exibe as estatísticas de input/output de um sistema. Ele gera relatórios em nível de dispositivo monitorando o período ativo em relação às taxas médias de transferência. E assim como os comandos top
e vmstat
, iostat
também exibe as estatísticas da CPU.
Syntax:
iostat [option] [interval] [count]
Os parâmetros de intervalo e contagem aqui são semelhantes aos do comando vmstat e são usados para mostrar atualizações em tempo real infinitamente ou apenas para contagens específicas.
Example:
Executar o comando iostat
fornecerá um output semelhante ao mostrado abaixo:
iostat
A primeira linha acima exibe as estatísticas médias da CPU, incluindo o tempo de espera de I/O. Representa o mesmo valor de wa
nos comandos top
e vmstat
. As próximas seções fornecem os seguintes dados para todos os dispositivos e partições:
Depois de identificarmos os processos por trás do alto tempo de espera de I/O e os discos envolvidos, há várias correções que podemos aplicar. Estes são alguns dos métodos mais comuns para minimizar o alto tempo de espera de I/O:
Ao solucionar problemas de alta espera de I/O no Linux, é importante entender a causa raiz como primeira etapa. Os comandos top
e vmstat
podem ajudar a diagnosticar o alto tempo de espera de I/O, enquanto iotop
e iostat
podem ajudar solucionar problemas identificando os processos e discos que causam o alto tempo de espera de I/O. Aprendemos que existem várias maneiras de lidar com o alto tempo de espera de I/O, dependendo da causa. Concentre-se em minimizar a espera de I/O – quanto menor o tempo de espera de I/O, melhor será o desempenho do seu sistema.
Write for Site24x7 is a special writing program that supports writers who create content for Site24x7 “Learn” portal. Get paid for your writing.
Apply Now