É raro que meu desktop Linux fique lento. Isso não quer dizer que nunca aconteça, pois isso seria mentira. Na maioria das vezes, quando ocorre uma lentidão do sistema, geralmente consigo rastreá-la até um aplicativo específico (geralmente o VirtualBox é o culpado). No entanto, tive problemas causados por gargalos no disco rígido.
Além disso: Os primeiros 5 comandos do Linux que todo novo usuário deve aprender
Vamos dar uma olhada em como você pode rastrear gargalos relacionados ao hardware com alguns comandos.
1. iostat
Este comando relata estatísticas de CPU e estatísticas de E/S (entrada/saída) para dispositivos e partições. Com o iostat, você pode monitorar o carregamento do dispositivo monitorando o tempo que um dispositivo está ativo em relação às taxas médias de transferência. Este comando gera relatórios que podem ser usados para ajudá-lo a configurar seu sistema para desempenho ideal. Com o iostat, existem três métricas que você deve considerar prioritárias:
- %util – Quanto tempo um disco ficou ocupado lidando com solicitações. Se o número for superior a 80%, há boas chances de você estar lidando com um gargalo.
- wait – O tempo médio para a conclusão de uma solicitação de E/S. Se o valor for alto, você está lidando com um disco muito lento ou com problemas.
- svctm – O tempo médio de serviço para solicitações de E/S. Se o valor for alto, significa que o disco está demorando muito para responder.
Uma coisa a ter em mente é que o iostat lista todos os dispositivos (incluindo loopbacks). Os dispositivos que você deseja procurar são provavelmente do tipo nvme, sdX e zram (onde X é uma letra).
Além disso: 5 melhores comandos do Linux para solucionar problemas (e como eu os uso)
O iostat pode não estar instalado em seu sistema por padrão. Caso contrário, você pode instalar o aplicativo sysstat com um comando como:
- Distribuições baseadas em Ubuntu – sudo apt-get install sysstat -y
- Distribuição baseada no Fedora – sudo dnf instalar sysstat -y
2.iotop
O comando iotop é semelhante ao iostat, mas em vez de gerar relatórios estáticos, ele reporta em tempo real. Iotop é semelhante ao principal comando; a diferença é que top exibe estatísticas sobre software e serviços, enquanto iotop exibe processos e atividades de disco. Se você detectar um processo que está usando recursos excessivos do sistema, provavelmente o problema é seu.
O aplicativo iotop precisa ser executado com privilégios sudo. Quando executado, você verá colunas para TID, PRIO, Usuário, Leitura de disco, Gravação de disco, SwapIn, Prioridade de E/S e Comando. As três informações mais importantes a serem verificadas são leitura de disco, gravação de disco e prioridade de E/S. Se você encontrar algum processo com um valor alto de leitura ou gravação, o problema é seu. Ao mesmo tempo, se você detectar algo usando um grande número de recursos de E/S (Prioridade de E/S), você desejará ajustar a prioridade desse processo usando o comando ionice (para definir ou obter a classe de agendamento de E/S do processo e prioridade).
Para instalar o iotop em distribuições baseadas no Ubuntu ou no Fedora, os comandos seriam:
sudo apt-get install iotop -y sudo dnf install iotop -y
3. dstat
O comando dstat é outro método de monitorar como os recursos do sistema estão sendo usados, especialmente E/S de disco. O comando dstat é quase como uma combinação de iotop e iostat, pois relata tantas informações quanto o iostat, mas o faz em tempo real como o iotop. Os detalhes mais importantes a serem verificados seriam leitura/gravação de disco (se houver atividade consistentemente intensa, esse pode ser o seu problema) e espera de disco (quanto tempo as operações de E/S individuais levam para serem concluídas. Um número alto indica um gargalo).
Você pode instalar o dstat no Ubuntu ou em distribuições baseadas no Fedora com os comandos:
sudo apt-get install dstat -y sudo dnf install dstat -y
Um pequeno truque útil é usar um limite para o que são os relatórios dstat. Por exemplo, se você deseja apenas visualizar as estatísticas da CPU, emita o comando:
Se você deseja apenas visualizar as estatísticas do disco, emita o comando:
4. sar
O sar O comando também é instalado junto com o sysstat e coleta, relata e salva informações sobre a atividade do sistema. O sar O comando é um pouco mais complicado que os comandos acima porque você precisa usar opções. Por exemplo, se você quiser visualizar três conjuntos de estatísticas de CPU com dois segundos entre as pesquisas, o comando seria:
O comando acima imprimiria três conjuntos de estatísticas de CPU e depois um quarto para a média. A saída inclui o seguinte:
- CPU – o número do núcleo da CPU que está sendo testado (o padrão é todos).
- %Usuário – a porcentagem de tempo que um aplicativo é executado no nível do usuário.
- %Nice – a porcentagem de tempo que um aplicativo é executado no nível do usuário com prioridade agradável.
- %sistema – a porcentagem de tempo que leva para a execução dos processos no nível do sistema.
- %iowait – a porcentagem de tempo que uma CPU fica ociosa com uma solicitação de E/S de disco pendente.
- %steal – a porcentagem de tempo que uma CPU virtual ficou ociosa devido ao host atender uma VM diferente.
- %idle – a porcentagem de tempo que uma CPU fica ociosa sem uma solicitação de E/S pendente.
Se você suspeitar que um núcleo específico seja um problema, você sempre pode testá-lo por número, assim:
A opção -P é seguida pelo número principal que você deseja testar.
5. smartctl
Se você quiser verificar a integridade de seus discos rígidos, o smartctl comando é o que você deseja usar. Existem duas informações específicas em um smartclt relatório a ser observado:
- Reallocated_Sector_Ct – o número de setores que foram realocados devido a erros. Se o número for alto, a unidade pode estar falhando.
- Seek_Error_Rate – se o valor for alto, a unidade pode estar tendo problemas para localizar informações específicas, o que pode ser um sinal de dano.
E aí está… cinco comandos para ajudá-lo a encontrar problemas de gargalo em seu sistema Linux. Certifique-se de ler mais sobre esses comandos com a ajuda de homem (ou seja, homem smarctl, homem sar, homem dstat, homem iotop, e homem iostat).