Existe um bom utilitário de linha de comando para monitorar a carga do disco rígido no Linux? Algo como, top
mas depois monitorando a atividade do disco, o uso da CPU.
Mais especificamente, suspeito que, para alguns servidores (carga pesada) após várias otimizações em várias partes do (s) programa (s) executado (s), agora o gargalo é simplesmente o log de arquivos no disco. Mas acho muito difícil avaliar quanto tráfego os servidores podem suportar.
Minha ferramenta ideal seria algo que imprime "Você está usando 35% da largura de banda do seu disco agora". Alguma ideia?
linux
hard-drive
load-testing
Pieter
fonte
fonte
/sys/block/sda/stat
. O campo 1 fornece o número total de leituras, o campo 5 é o número total de gravações, o campo 9 é o número de operações de E / S em andamento. Veja mais em kernel.org/doc/Documentation/iostats.txt Os valores não são assinados por muito tempo e podem ser quebrados.how do you do it with SNMP?
. É bom fazer login e verificar as coisas, mas é realmente necessário dados históricos.Respostas:
Você pode obter uma boa medida disso usando a
iostat
ferramentaA utilização do disco está listada na última coluna. Isso é definido como
fonte
apt-cache dump
não apareceu nada para o iostatO iotop é uma versão do top que analisa a quantidade de IO que cada processo está usando. Está nos repositórios padrão do ubuntu; Não sei se está no RHEL ou no Fedora, mas deveria estar.
Para kernels mais antigos (por exemplo, CentOS 5.x ou RHEL 5.x) que não oferecem suporte ao iotop, use topio (documentado aqui: http://yong321.freeshell.org/freeware/pio.html#linux . Ele conta com / proc // io para estatísticas io e fornece funcionalidade semelhante ao iotop.Veja o link para obter mais detalhes.
fonte
Conforme sugerido por sastanin nos comentários, você pode processar diretamente os valores fornecidos em
/sys/block/sda/stat
ou/proc/diskstats
. Isso pode ser útil quando nenhuma das outras ferramentas mencionadas estiver disponível e você não puder instalá-las facilmente.Por exemplo (IIUC), algo como isto (no bash) deve fornecer o número de leituras por segundo:
Consulte https://www.kernel.org/doc/Documentation/iostats.txt e https://www.kernel.org/doc/Documentation/block/stat.txt para obter documentação.
fonte
Você deve dar uma olhada no topo , que combina o poder do iotop / top / iftop, tudo em um só lugar, e destaca as partes críticas do seu sistema.
fonte
Eu recomendaria dar uma olhada na ferramenta nmon. Ele mostrará a carga ativa em vários parâmetros do sistema, bem como a gravação de dados em um arquivo para leitura posterior. É uma ferramenta gratuita disponível aqui :
fonte
para descobrir qual é sua largura de banda total, você pode usar
hdparm -T /dev/sda
para testar o desempenho do cache de buffer (fileio)hdparm -t /dev/sda
para testar o desempenho de leitura do dispositivoexemplos: meu laptop obtém 82 MB / s no disco SATA e 2 GB / s no cache. Meu dekstop recebe 12 GB / s do cache e 500 MB / s da matriz HW RAID. Eu suspeito que esses últimos números possam ser o dobro no hardware da classe de servidor.
definir readahead maior que 256, 4096 funciona melhor para mim
vezes lendo 1 GB em diferentes tamanhos de bloco e diferentes leituras antecipadas
fonte
--setra
é agora-a
e 2), oshdparm -{T,t}
comandos emitem apenas leituras de disco, de acordo comstrace
, portanto não são destrutivas. (A ferramenta padrão para mostrar a carga do disco rígido é
iostat
.Não informará quanto% de largura de banda de idade do disco você está usando, pois não sabe quanta largura de banda seu disco possui. De qualquer forma, seu disco possui apenas a citação do fabricante para grandes transferências de dados contíguos.
fonte
Eu acho que o RRDtool deve fazer o que você quer aqui, ele usa um daemon para despejar dados do sistema e, em seguida, permite que você processe como quiser. Eu freqüentemente o uso para produzir gráficos, etc., para medir a carga do sistema.
fonte