Verifique a integridade e a disponibilidade de seus servidores Linux para obter desempenho ideal com a ferramenta de monitoramento Linux do Site24x7.
Problemas de I/O de disco e uso de espaço são causas comuns de degradação de desempenho em sistemas de computação. As baixas velocidades do sistema podem afetar diretamente sua capacidade de recuperar e armazenar informações no disco.
Neste artigo, aprenderemos por que ocorrem problemas de I/O de disco, quais são os comandos do Linux que podem ser usados para diagnosticar e solucionar problemas de I/O de disco e métodos comuns para resolvê-los.
Problemas de I/O de disco podem ser resultado de complexidade de armazenamento, gargalos de aplicações, configurações de RAID, tempos de resposta e design. Vamos dar uma olhada em alguns desses pontos em detalhes.
Uma camada de armazenamento virtual ou definida por software é executada sobre a camada de armazenamento físico subjacente. O armazenamento virtual aumenta a complexidade e o número de possíveis pontos de falha devido à contenção de recursos porque é incapaz de ler e gravar dados tão rapidamente quanto o armazenamento físico.
Aplicações com uso intensivo de IO geralmente causam gargalos e problemas de latência de armazenamento. Eles ocorrem principalmente quando várias aplicações ocupadas usam o mesmo armazenamento de dados. A melhor solução para gargalos de aplicações é encontrar uma maneira de lidar com aplicativos com baixa largura de banda de I/O de armazenamento e usar uma base de usuários maior.
A configuração RAID pode ser usada para armazenamento em um aplicativo tanto em nível de hardware quanto de software. A configuração RAID distribui solicitações de I/O e cópias de dados em vários discos, aumentando a I/O de armazenamento e a confiabilidade. Qualquer problema no dispositivo físico ou software que gerencia a matriz RAID (por exemplo, devido à idade, configuração insuficiente ou software desatualizado) pode causar lentidão nas solicitações de I/O.
Um aumento no tempo de resposta de uma I/O de armazenamento pode degradar o desempenho de I/O. Quando um dispositivo de armazenamento demora mais para responder a uma solicitação de I/O, isso indica que há um gargalo na camada de armazenamento. A carga adicional nos gargalos de I/O de armazenamento existentes leva a um atraso consistente no tempo de resposta.
Outra causa de armazenamento de I/O lenta é o mau funcionamento dos dispositivos de armazenamento físico. À medida que os discos rígidos envelhecem ou experimentam um aumento na temperatura, é menos provável que eles atinjam suas taxas máximas de I/O e a latência de I/O começará a diminuir. Os discos mais antigos devem ser substituídos antes que se deteriorem e eventualmente se desgastem, levando a erros de I/O.
Para identificar e corrigir problemas de I/O de disco, é importante entender como eles podem se manifestar em seu sistema. Problemas de I/O de disco podem afetar o desempenho do sistema de diversas maneiras:
Assim que suspeitarmos de um possível problema de I/O de disco, podemos usar métricas para analisar o desempenho de I/O de disco. Algumas dessas métricas importantes são:
Depois de medir e monitorar o desempenho do disco usando as métricas acima, podemos usar comandos para identificar problemas de E/S do disco. Três dos comandos mais comumente usados para solucionar problemas são df, iostat,
e vmstat.
df
O comando df
é a forma abreviada do sistema de arquivos do disco. É um dos comandos mais básicos para solucionar problemas de E/S de disco. Se não houver espaço disponível, as operações de gravação falharão. O comando df
exibe o espaço usado e disponível para todos os sistemas de arquivos montados no Linux. O espaço usado e restante é mostrado por padrão em blocos de 1K.
Syntax:
df [OPTIONS] [FILES]
Example:
Executando o comando df
, você verá um output semelhante ao mostrado abaixo:
df
Como você pode ver no output acima, ele exibe as seguintes informações para todos os sistemas de arquivos montados:
vmstat
O comando vmstat
também é conhecido como estatísticas de memória virtual. É um utilitário de monitoramento de desempenho do sistema no Linux que exibe informações sobre processos, memória, agendamento de CPU, disco e bloco IO. Ele mostra aos usuários o desempenho do sistema em tempo real durante um período de amostragem. Se você não especificar nenhuma opção, o comando vmstat
mostrará por padrão as estatísticas desde a última reinicialização do sistema.
Syntax:
vmstat [options][delay [count]]
Atraso e contagem são dois parâmetros importantes para o comando vmstat. Eles são usados para mostrar continuamente o desempenho do sistema em tempo real na taxa de um intervalo especificado por um número definido de vezes.
vmstat
será executado infinitamente.Example:
Executar o comando vmstat
fornecerá umoutput semelhante ao mostrado abaixo:
vmstat
Esta é a saída básica que exibe estatísticas gerais. Você também pode especificar os parâmetros de atraso e contagem para exibir estatísticas em tempo real continuamente. Por exemplo, executar vmstat
5 3 exibirá as 3 estatísticas em tempo real abaixo, cada uma após um intervalo de 5 segundos.
vmstat
O output acima está dividido em quatro áreas. Nosso foco principal é a seção io. Ele mostra duas colunas:
Podemos usar essas informações para analisar quando os dados estão sendo muito gravados ou lidos. Podemos então usar outro comando, como iostat,
para ver qual disco rígido estava carregando a carga e tentar encontrar a causa raiz do problema de E/S do disco.
iostat
Como o próprio nome sugere, o comando iostat
é usado para monitorar estatísticas de entrada/saída de um sistema. Ele gera esses relatórios monitorando a relação entre o tempo ativo dos dispositivos e suas taxas médias de transferência. Os relatórios gerados podem ser usados para atualizar a configuração do sistema para obter um melhor equilíbrio de entrada/saída entre vários discos físicos disponíveis.
Syntax:
iostat [option] [interval] [count]
Semelhante ao que vimos com o comando vmstat, os parâmetros interval e count são usados para mostrar atualizações em tempo real infinitamente ou apenas para contagens específicas.
Example:
Executar o comando iostat
fornecerá umoutput semelhante ao mostrado abaixo:
iostat
Os relatórios padrão de saída exibem as estatísticas da CPU e as estatísticas de input/output do dispositivo desde a última reinicialização do sistema. Das duas seções, estamos mais preocupados com a seção Device. Ele gera as seguintes informações para todas as partições ou dispositivos:
Os exemplos acima indicam problemas de desempenho de disco no sistema. Você pode implementar diversas correções de software e hardware para mitigar problemas de I/O de disco e uso de espaço.
O uso do espaço em disco e problemas de I/O podem deteriorar significativamente o desempenho de um sistema. Você deve solucionar e encontrar a causa raiz de problemas como alto uso de espaço ou solicitações de I/O lentos antes de tomar as medidas apropriadas para corrigí-los.
O Linux tem vários comandos que você pode usar para restringir o que está causando problemas de I/O de disco. Os três comandos mais comumente usados discutidos aqui—df, iostat,
e vmstat
—são suficientes para ajudá-lo a encontrar a causa raíz. Embora tenhamos abordado uma série de correções de software úteis para problemas de I/O de disco, é bom lembrar que às vezes as atualizações de hardware oferecem a melhor solução permanente.
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