Як я можу контролювати введення / виведення диска в певному каталозі?


10

У мене є кілька процесів із відомим ім'ям, які всі записують у файли в єдиний каталог. Я хотів би зафіксувати кількість зчитуваних і записуваних блоків диска протягом певного періодуне лише доступу до файлів), щоб перевірити, чи зміна параметра значно зменшує кількість вводу-виводу. Зараз я використовую iostat -d -p, але це обмежено всім розділом.



1
Це відрізняється від цих питань, оскільки мене не цікавлять самі файли, а швидше кількість вводу / виводу.
l0b0

Відповіді:


10

Я усвідомлюю, що це буде звучати як спрощено, так і абсурдно, але якщо ви маєте контроль над розглянутими додатками (можливо, в тестовому середовищі), ви зможете встановити ТОЛЬКО цей каталог на власному розділі, то iostatі т. Д. Сказав би вам лише про це, і більше нічого на тому місці.

Якщо є фізичні накопичувачі, ви можете підробити це за допомогою петлі для кріплення à la

dd if=/dev/zero of=/bigdisk/LOOPFILE bs=1024m count=1024m # 1gb loopback file
mke2fs -j /bigdisk/LOOPFILE
mkdir /tmpcopy
mount -o loop /tmpcopy /bigdisk/LOOPFILE
cp -r -p $SPECIALDIR2MONITOR /tmpcopy
umount /tmpcopy
mount -o loop $SPECIALDIR2MONITOR  /bigdisk/LOOPFILE,

Це не призведе до повного видалення всіх конкуруючих дискових вводу-виводу, але я впевнений, iostatщо висновок буде більш конкретним для ваших потреб.


3

Я не думаю, що існує прямий шлях. Одним із способів отримати потрібні дані буде отримати доступ до дерева каталогів через віртуальну файлову систему, яка реєструє доступ. Loggedfs - одна з таких файлових систем, хоча я не знаю, чи може вона відображати всі дані, які вас цікавлять.

mkdir /tmp/replica
loggedfs /path/to/directory /tmp/replica
mycommand --root=/tmp/replica
fusermount -u /tmp/replica

2

Ви можете використовувати inotifywait -m DIRNAMEз інструментів inotify .


-dне існує в inotifywait 3.13. Ви маєте на увазі -m?
l0b0

@ l0b0: о, я використовую 3.14 від git repo. вибачте. Але в manpage зазначено, що це те саме, що -mі за винятком запуску у фоновому режимі та вимагає поточного виходу.
Тобіас Кіенцлер

також -rможе бути корисним
Tobias Kienzler

1
Випробував це. Вибачте за непорозуміння, але мене не цікавить, до яких файлів (або навіть у скільки файлів) було доступно, а швидше, обсяг вводу / виводу.
l0b0

2
Зауважте, це специфічно для Linux. У BSD є kqueue та pnotify системні дзвінки, але я не знаю, чи роблять вони саме те, що вимагає автор.
Шон Дж. Гофф
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.