Визначення того, який процес викликає введення / виведення важкого диска?


19

Я бачив це питання: як визначити важкий запис на диск?

І я раніше використовував dstat та atop ... але вони, схоже, не визначають, який процес викликає введення / виведення диска. Наприклад, з dstat:

dstat -ta --top-bio
----system---- ----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system-- ----most-expensive----
     time     |usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw |  block i/o process
14-12 16:16:25| 22   3  49  26   0   0|2324k    0 |  17k 6144B|   0     0 |1324     0 |
14-12 16:16:26| 24   3  30  43   0   0|4960k 8192B|1498B 4322B|   0     0 |1494     0 |wget          0  4096B
14-12 16:16:27| 25   4  38  33   0   0|4612k  548k|5011B   27k|   0     0 |1582     0 |kjournald     0    24k
14-12 16:16:28| 23   3  42  32   0   0|5072k    0 |  24k 4368B|   0     0 |1495     0 |

Зауважте, наскільки високий dsk / total - від 2 до 5 Мб / сек. Але тоді подивіться на "найдорожчу" колонку - тут лише пара байтів, пара КБ, а іноді навіть нічого. Це те саме, що з 'на вершині'. Показує високе загальне використання диска, але низьке використання від окремих процесів. Я працюю CentOS 5, ядро ​​2.6.18-53.

Чи потрібна мені новіша версія ядра? Можливо, десь встановлено налаштування системи? Домашня сторінка 'на вершині' рекомендує встановити деякі патчі ядра, але я краще не переживаю проблем із налаштуванням та компілюванням власного ядра.

Відповіді:


26

iotop ( посилання ) для початківця;) Я не бачив, щоб ви розміщували висновок цього.

1: Я пережив майже таку саму ситуацію з файловою системою реєстрації та atime, але з більшою кількістю записів.

Постарайтеся здійснити повторне перезарядження та відключіть журнал файлової системи (пізніше лише для тестування), щоб перевірити, чи базується вона на файловій системі, і як сказано, iotop, якщо це процес.

2: Я думаю, що цей розділ не є частиною щойно відновлюваного рейдового масиву, чи не так?

3: Якщо у вас багато дуже маленьких файлів (набагато менше, ніж фактичний блок блоку блоку та / або блокування файлової системи), і ви читаєте ці невеликі файли, ви в кінцевому підсумку читаєте цілі блоки з системи, і більшість з цих блоків буде прочитано дарма.

4: Якщо вище нічого не допомагає, ви завжди можете отримати список файлів, доступ до яких виконується виконанням

echo 1 > /proc/sys/vm/block_dump

Зверніть увагу, що це значно погіршує продуктивність системи. Інструкції доступні в моєму попередньому дописі тут


1
Побийте мене приблизно 5 секунд;) +1
pehrs

Мені просто пощастило, але майже одразу ж продовжили відповідь, оскільки це була не зовсім відповідь на питання;)
asdmin
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.