Em qual arquivo o servidor Linux está gravando?

6

O servidor está escrevendo ativamente em algum arquivo. Como encontrar o arquivo que está recebendo I / O pesado?

    
por romaninsh 12.05.2011 / 18:46

2 respostas

6

Experimente o iotop. No Debian / Ubuntu:

apt-get install iotop

Em seguida, iotop mostrará E / S por processo. Você pode então inspecionar os descritores de arquivo para o processo em questão se precisar de mais dados - por exemplo, com ls -l /proc/<PID>/fd ou lsof -p <PID> .

    
por 12.05.2011 / 18:47
3

Como a contabilidade de E / S não está disponível, talvez você possa usar uma solução baseada em inotify. Isso está incluído no kernel desde 2.6.13. Usando inotifywatch de inotify-tools , você pode observar as alterações em qualquer arquivo em seu sistema com% código%. Levará muito tempo para estabelecer todos os relógios, e você pode ter que aumentar / proc / sys / fs / inotify / max_user_watches . O Inotifywatch será executado até que você o interrompa com ctrl-c . Depois de interromper, para cada arquivo que foi acessado, serão feitas as estatísticas das operações executadas. Por exemplo

$ inotifywatch -r ~
Establishing watches...
Finished establishing watches, now collecting statistics.
total  access  modify  close_write  open  moved_from  moved_to  create  filename
6099   0       6092    2            2     1           1         1       /home/example/foo
    
por 13.05.2011 / 05:56

Tags