Как узнать, какой процесс читает диск? - PullRequest
0 голосов
/ 28 апреля 2020

Я использую виртуальную машину GCP, время от времени я терял соединение sh с этой виртуальной машиной. После некоторого исследования я обнаружил, что в течение времени, когда я не могу подключиться к виртуальной машине sh, считывание дискового ввода-вывода очень высокое, почти 100 МБ / с.

enter image description here

Я почти уверен, что не запускаю процесс, требующий дискового ввода-вывода. Поэтому мне нужно выяснить, какой процесс это сделал.

Как я могу это сделать? Я проверил журналы в / var / log, и нет подозрительных журналов.

Поскольку я не могу войти в виртуальную машину, когда происходит чтение, мне нужен какой-то способ перевести его в фоновый режим.

1 Ответ

0 голосов
/ 28 апреля 2020

Вы можете периодически использовать что-то вроде iotop --only (например, cron), чтобы увидеть, какой процесс потребляет IO. Вы должны иметь возможность установить iotop через менеджер пакетов (apt, yum, ...). Смотрите эту ссылку:

https://www.tecmint.com/iotop-monitor-linux-disk-io-activity-per-process/

В случае, если приведенная выше ссылка не работает, вы можете добавить что-то вроде этого в crontab:

* * * * * root iotop -botqqq --iter=3 >> /var/log/iotop

для проверки использования ввода-вывода на процесс каждую минуту (вы можете менять каждые 5 минут, каждые 10 минут и т. Д. c.). Будьте осторожны, если вы не полностью заполняете свой диск /var/log/iotop (вращение журналов или что-то еще).

...