Просмотр статистики файловых систем
fsysinfo [опции]* устройство|файловая_система
ЗОСРВ «Нейтрино»
aarch64, arm, armv7, e2k, mips, ppc, x86
Утилита fsysinfo является внешним интерфейсом для функции devctl( DCMD_FSYS_STATISTICS ) (из <sys/fs_stats.h>
), которая запрашивает статистику дисковой файловой системы. Эта статистика включает в себя данные операций чтения и записи разделов диска, эффективность внутреннего кэширования, число различных системных вызовов, выполненных с помощью кода пользователя и т.д.
По умолчанию текущая статистика отображается один раз. Также доступен режим цикла, в котором утилита выполняется циклично и повторно выводит статистику через заданный период времени (опция -l используется для вывода необработанных данных, а -L – для отображения разницы с прежними значениями). Для прерывания цикла нажмите Ctrl - C
.
Статистику можно обнулить с помощью опции -z или -Z (-z показывает значения до сброса, а при применении опции -Z результаты не выводятся – эту опцию целесообразно использовать в сценариях).
При выборе опции -m утилита fsysinfo не объединяет статистику ввода-вывода для диска указанной файловой системы и устройства/раздела соответствующего хоста. Как правило, это требуется при использовании нескольких реализаций файловой системы, в которых обновление метаданных привязывается к устройству хоста, а не к определенному высокоуровневому файлу. (Например, при выборе опции -m изменения в файлах .bitmap
и .inode
в файловой системе fs-qnx4.so не отображаются в смонтированной файловой системе как данные ввода-вывода.)
Выводится следующая информация:
Раздел | Статистика | Описание |
---|---|---|
FILESYS | Точка монтирования и тип файловой системы | |
MOUNT | mounted | Время монтирования файловой системы |
elapsed | Время с момента последнего сброса статистики | |
DISK I/O | write | Количество физических операций записи в секторы устройства |
read | Количество физических операций чтения из секторов устройства | |
r/a | Упреждающее чтение с устройства | |
direct | Секторы DCMD_FSYS_DIRECT_IO | |
bad | Поврежденные блоки | |
CACHE | write | Секторы с отложенной записью в кэш-память буфера (blk delwri= commit=) |
read | Секторы, повторно прочитанные из кэш-памяти буфера | |
rate | Соотношение (CACHE read) : (DISK IO read + r/a) | |
wipe | Буферы, повторно использованные вне алгоритма замещения блока данных с наиболее длительным отсутствием обращений (Least Recently Used, LRU) для поддержания максимальной интенсивности использования (blk wipe=) | |
protect | Буферы метаданных при условии усиленного применения LRU (blk protect=) | |
SYSCALL | open | Количество вызовов функции open() |
stat | Количество вызовов функции stat() или fstat() calls | |
namei | Количество преобразований путевых имен в файл | |
write | Количество вызовов функции write() | |
read | Количество вызовов функции read() | |
devctl | Количество вызовов функции devctl() | |
NAMES | exist | Имена известных файлов (без сканирования) |
enoent | Имена несуществующих файлов (без сканирования) | |
misses | Файлы с неизвестными именами (требуется сканирование каталога) | |
unsuit | Имена файлов не подходящих для кэширования (слишком длинные или неоднозначные) | |
stale | Записи с устаревшим именем (демонтирована файловая система или повторно используется соответствующий виртуальный дескриптор) | |
rate | Соотношение (exist + enoent) : (misses + unsuit) | |
BMAP | hit | Известное отображение логического блока на физический |
miss | Неизвестное отображение логического блока на физический | |
rate | Соотношение (hit) : (miss) | |
VNODES | create | Открытие неизвестного файла (необходима загрузка/построение виртуального дескриптора из файловой системы) |
hit | Открытие известных или недавно использованных файлов | |
rate | Соотношение (hit) : (create) | |
lock/UC | Неочевидная/очевидная блокировка виртуального дескриптора | |
recycle | Повторное использование записи из кэш-памяти для нового файла (blk vnode=) | |
SLAB | map | Число страниц, отображаемых в подсистеме памяти динамического резервирования памяти |
unmap | Число страниц, извлеченных из подсистемы памяти динамического резервирования памяти | |
active | Разница между (map) − (unmap) |
Эта информация используется для анализа эффективности различных типов кэшей io-blk.so, что может позволить точно определить значения опций командной строки драйвера (blk cache= ncache= map= vnode=).
Определение типов и количества дисковых операций, необходимых для выполнения действия:
# fsysinfo -Z /fs/hd/tmp # cd /fs/hd/tmp # rw -t150m -r8k # fsysinfo /fs/hd/tmp FILESYS /fs/hd (qnx4) MOUNT mounted Wed Jul 18 20:39:44 2007 elapsed 18 secs DISK I/O write 307874 read 282 r/a 307038 direct 0 bad 0 CACHE write 326473 read 331538 rate 51% wipe 0 protec 1003 SYSCALL open 2 stat 1 namei 5 write 19200 read 19201 devctl 7 NAMES exist 3 enoent 2 misses 2 unsuit 0 stale 194 rate 71% BMAP hit 38155 miss 501 rate 98% VNODES create 1 hit 9 rate 90% lock/U 38427 lock/C 0 recycl 1265 SLAB map 4041 unmap 24 active 4017
Контроль доступа к диску в режиме реального времени:
# fsysinfo -L500 /fs/hd
Эта команда выводит информацию, аналогичную приведенной выше, но с обновлением каждые 500 мс.
Базовые подсистемы ЗОСРВ «Нейтрино»
Предыдущий раздел: Утилиты