LINUX.ORG.RU
решено ФорумAdmin

что использует диск

 ,


0

2

Есть один сервер с двумя дисками.

  • sda - диск с rhel6. На нем, по-хорошему, не должно быть почти никакой активности.
  • sdb - тут живет mysql база и много всяких логов, которые парсятся скриптами и складываются в базу. Активность на этом диске есть, иногда высокая.

Недавно начал замечать активность на системном диске, которой там быть не должно. Вот пример - пики чтения/записи на sda (правый верхний график). При этом load average ненадолго возрастает с 0.5 до 100.

Хочу выяснить, какой процесс использует именно sda.

Чем пробовал мониторить:

  • htop - показывает IO процессов безотносительно устройства - не подходит
  • iotop - то же самое
  • iostat - не показывает процессы

Судя по периодичности - возможно, по cron-у взлетает какая-нибудь индексация/чистка.
Поищи по mtime, что менялось, м.б. поймешь кто писал.

ABW ★★★★★
()

у тебя там случайно астериска нету ?

ae1234 ★★
()

atop

попробуй сабж, он записывает состояние процессов и сортирует по disk, memory, generic. Удобная штука

vadv ★★
()

soomrack

lsof

т.е. сделать что-то вроде

lsof -a +D /tmp -a +D /home/username -a +D /var
в cron каждую минуту и сливать вывод в файлы а потом их просматривать? Кстати, с такими фильтрами выполняется очень долго.

---

ABW

Поищи по mtime,

Разве что каталоги, т.к. временный файл мог быть удален сразу же. Но идею уловил.

---

Lighting

inotify-tools

Так его же, вроде, надо на заранее известные файлы натравливать ?

---

ae1234

у тебя там случайно астериска нету ?

Не, только mysql + nginx + некий самописный модуль внутри. Ну и скрипты чтобы логи парсить.

---

vadv

atop

Сабж хорош и на сервере крутится. Но, как и htop/iotop, не покажет, какой именно диск был использован процессом, а выведет абстрактное I/O идущее непонятно куда.

fjoe
() автор топика
Ответ на: комментарий от fjoe

Зато надежно. Кроме того это одна из стандартных утилит, которую советует umount, при занятости фс, другая это fuser.

soomrack ★★★★
()

Итак, история успеха: использование systemtap. Установка. Скрипты с примерами использования: 1, 2.

Первый скрипт показывает топ 10 процессов, занимающих I/O + устройство:

# stap ./desktop.stp
Tue Apr 24 19:15:07 2012 , Average:181973Kb/sec, Read:  790185Kb, Write: 119683Kb

     UID      PID     PPID                       CMD   DEVICE    T        BYTES
     496    13527    13170                    mysqld     sda3    R    803390432
     496    13527    13170                    mysqld     sda3    W    121262508
     500    10421    10342                       php     sdb1    R       961139
     500     9410    20427                     nginx     sdb1    W       878134
     500     9407    20427                     nginx     sdb1    W       268194
     500    10419    10343                       php     sda3    R       125013
     500    10417    10345                       php     sda3    R        89000
       0    10501    10418                   rrdtool     sda3    R        79281
       0    13381    10418                   rrdtool     sda3    R        79281
       0    13489    10418                   rrdtool     sda3    R        79281

Mysql зачем-то полез туда, где он не должен быть. Второй скрипт показал куда именно:

# stap ./iotime.stp | fgrep '(mysqld)'
35983 13527 (mysqld) access /tmp/#sql_34d7_0.MYD read: 0 write: 0
35997 13527 (mysqld) access /tmp/#sql_34d7_0.MYI read: 0 write: 1024
36003 13527 (mysqld) iotime /tmp/#sql_34d7_0.MYI time: 197
14926139 13527 (mysqld) access /tmp/#sql_34d7_0.MYI read: 412 write: 0
14926147 13527 (mysqld) iotime /tmp/#sql_34d7_0.MYI time: 17
14926154 13527 (mysqld) access /tmp/#sql_34d7_0.MYD read: 690838176 write: 690838176
14926160 13527 (mysqld) iotime /tmp/#sql_34d7_0.MYD time: 1419485

Создает временные таблицы в /tmp. Надо будет указать в конфиге, чтобы к себе на диск их создавал. Вопрос снят, всем спасибо.

fjoe
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.