C.7. Отслеживание блочных операций

В основе работы любой файловой системы лежит манипулирование блоками. Для хранения информации об использовании пространства GFS2 использует традиционную битовую карту, где состояние каждого блока представлено двумя битами. При помощи обработчиков событий файловой системы можно определить, сколько времени занимают операции распределения и сопоставления блоков.
gfs2_bmap вызывается дважды для одной операции с картой блоков: первый раз для просмотра запроса, второй раз — для отображения результата. Таким образом, можно легко определить, сколько времени уходит на отведение блоков в разных сегментах файловой системы или даже в разных файлах. Этот обработчик также помогает сравнить средний размер полученных экстентов с запрашиваемым.
gfs2_block_alloc следит не только за выделением блоков, но и за их освобождением. Каждый занятый блок связан с индексным дескриптором, что позволяет определить, каким файлам отведены те или иные блоки. В комбинации с результатами теста blktrace, который анализирует производительность ввода-вывода, gfs2_block_alloc поможет определить дескрипторы, и как следствие — файлы, которым принадлежат проблемные блоки.