Как чтобы найти процессы, вызывающие высокий уровень ввода-вывода при записи в хранилище

Теперь, когда в одной из DBS, операции ввода-вывода с высокой записью наблюдаются в хранилище в определенное время каждый день .. Возможно ли найдите, какой процесс выполняет этот ввод-вывод с высокой скоростью записи ... Любые команды, связанные с ОС, чтобы отслеживать, откуда приходят эти запросы ... кроме iostat и top

0
08.06.2017, 13:45
1 ответ

Раньше я пробовал htop. Кажется, это отслеживает использование ввода-вывода на основе процесса.

По-видимому, на Github есть много других опций, таких как «взгляды» и «поверх».

Альтернатива iotop для не -пользователя root без привилегий sudo

Это заставляет меня задаться вопросом, является ли ваша конкретная ситуация чем-то уникальным и может ли потребоваться некоторая настройка. (Некоторые люди заходят так далеко, что выступают за синтаксический анализ необработанной статистики, поступающей от proc ). Существует множество вариантов, включая iodump (, написанный на Perl ).

root@kanga:~# while true; do sleep 1; dmesg -c; done | perl iodump
^C# Caught SIGINT.
TASK                   PID      TOTAL       READ      WRITE      DIRTY DEVICES
firefox               4450       4538        251       4287          0 sda4, sda3
kjournald             2100        551          0        551          0 sda4
firefox              28452        185        185          0          0 sda4
kjournald              782         59          0         59          0 sda3
pdflush                 31         30          0         30          0 sda4, sda3
syslogd               2485          2          0          2          0 sda3
firefox              28414          2          2          0          0 sda4, sda3
firefox              28413          1          1          0          0 sda4
firefox              28410          1          1          0          0 sda4
firefox              28307          1          1          0          0 sda4
firefox              28451          1          1          0          0 sda4

https://www.xaprb.com/blog/2009/08/23/how-to-find-per-process-io-statistics-on-linux/

#!/bin/bash

hostname=`hostname -s`    
carbon_host=YOUR_CARBON_HOSTNAME_OR_IP
carbon_port=2003

pidstat -h -d 1 | grep --line-buffered -v '^$' | grep --line-buffered -v '^#' | grep --line-buffered -v '^Linux' | awk --assign=hostname=${hostname} '{ printf "servers.%s.pidstat.%s.read %s %s\nservers.%s.pidstat.%s.write %s %s\n", hostname, $6, $3, $1, hostname, $6, $4, $1 ; fflush(); }' > /dev/tcp/${carbon_host}/${carbon_port}

https://serverfault.com/questions/574708/report-per-process-io-stats-with-pidstat-or-sar

https://serverfault.com/questions/169676/howto-check-disk-i-o-utilisation-per-process

2
28.01.2020, 02:33

Теги

Похожие вопросы