Como identificar a gravação pesada no disco?

9

Eu tenho esse problema com o servidor executando o aplicativo CakePHP. O servidor é incrivelmente lento, primeiro pensei que fosse um problema de aplicativo, mas depois encontrei gravação constante de 5-6MB / s no disco.

Qual é a maneira mais fácil de encontrar a causa de uma gravação tão pesada?

O servidor está executando o Gentoo.

Jakub Arnold
fonte

Respostas:

15

Instale o iotop e descubra qual programa está fazendo isso.

wazoox
fonte
17

Como autor do Dstat, eu apontaria opções adicionais. Você pode ver facilmente qual processo está consumindo mais largura de banda de E / S:

dstat -ta --top-bio

ou dstat -ta --top-io

O primeiro é a E / S do bloco superior e o segundo a E / S superior (incluindo em cache). Isso pode ajudá-lo a validar se é isso que você espera (tanto como consumidor quanto como consumo).

Existem outros plugins que podem ajudá-lo a identificar a taxa de utilização de discos:

dstat -tdf --disk-util

Portanto, se você tiver gargalos de E / S, isso informará quais discos estão envolvidos para que você possa ver se algo pode ser feito nesse sentido.

E se você estiver solucionando problemas de sistemas de arquivos específicos (de rede), pode-se usar outros plug-ins para obter mais informações sobre esses sistemas de arquivos. O Dstat também possui plugins para outras métricas (cpu, VM, virtualização, etc ...) e, dependendo do que você precisa visualizar, você pode escrever seus próprios plugins ou modificar os plugins existentes para mostrar exatamente o que você precisa correlacionar.

No entanto, se você precisar de ajuda, quiser contribuir ou ter uma idéia nova e interessante, entre em contato comigo para ver como podemos proceder ...


fonte
3

Você pode usar a ferramenta dstat chique

Yuri
fonte
3

Na página do manual do dstat - 'dstat -M time, cpu, net, disk, sys, load, proc, topcpu'. O dstat vem instalado com a maioria das distribuições, portanto é mais rápido do que instalar o iotop.

Saurabh Barjatiya
fonte
3

tente vmstat e iostat


fonte
1

Você pode despejar atividades de disco (junto com o pid gerando) no syslog com o seguinte comando:

echo 1 > /proc/sys/vm/block_dump

Antes de emitir isso, verifique se os logs do sistema não estão em um dispositivo de bloco, caso contrário, você terminará em um loop infinito.

asdmin
fonte