Хоча тут є багато корисної інформації у відповідях, мені цікаво, чи реально це застосовно?
Якщо ви говорите про файли в 10-ти гігабайт, постійно записуючись у них, то якщо вони не є файлами журналів або подібними, до яких постійно додаються (у такому випадку просто слідкуйте за розмірами файлів), швидше за все, ці файли є mmap'd . Якщо це так, то найкращою відповіддю може бути те, що ви повинні перестати шукати більшість рішень. Перше, що ви повинні запитати у будь-якому іншому запропонованому рішенні, це "чи працює він з mmap", оскільки в основному вони звичні. Однак, можливо, ви зможете перетворити проблему на моніторинг блокового пристрою, а не на моніторинг файлу.
Коли програма запитує сторінку з файлу mmap'd, вона просто посилається на розташування у віртуальній пам'яті. Ця сторінка може бути або не може бути в пам'яті. Якщо це не так, то генерується помилка сторінки, яка запускає завантаження сторінки з диска, але це відбувається в системі віртуальної пам’яті, яка не так легко пов'язана з конкретним процесом подання заявки або конкретним файлом. Аналогічно, коли ваш додаток оновлює сторінку mmap'd, залежно від прапорів, це може не викликати негайне записування на диск, а в деяких випадках взагалі може не переходити на диск (хоча, мабуть, останні не є випадками, які вас цікавлять в).
Найкраще, що я можу придумати для файлів mmap'd, якщо це є життєздатним для вас, - це розмістити кожен із цікавих файлів на окремому пристрої та використовувати статистику пристрою для збору інформації про використання. Ви можете використовувати для цього розділи lvm. Прив’язка кріплення не буде працювати, хоча це не створює новий блок пристрою.
Коли ви матимете свої файли на окремих блокових пристроях, ви можете отримати статистику з / sys / block / * або / proc / diskstats
Це може бути занадто руйнівним, щоб представити це на виробничому сервері, але, можливо, ви можете ним скористатися.
Якщо файли не mmapped, тоді так, ви можете вибрати одне з інших рішень тут.