В чем разница между rMB_nor/s, rMB_dir/s и rMB_svr/s в iostat?
Я пытаюсь интерпретировать результаты выполнения следующей команды
iostat -mnhyc
Выдает следующее
Filesystem: rMB_nor/s wMB_nor/s rMB_dir/s wMB_dir/s rMB_svr/s wMB_svr/s ops/s rops/s wops/s
/NFS_mount_path/
376.46 0.00 0.00 0.00 0.98 0.00 132.80 129.60 0.00
Сколько данных фактически читается из моего монтирования NFS? Должен ли я рассмотреть rMB_nor/s или rMB_svr/s? Страница man для iostat говорит, что rMB_nor/s - это количество МБ, прочитанное приложениями через вызов read(2), а rMB_svr / s - это количество МБ, прочитанное с сервера клиентом NFS через запрос NFS READ. Но я не совсем понимаю, что в них особенного. В чем разница между NFS READ и read(2)? Разве все чтения к монтированию NFS не должны быть NFS READ? Разве я не должен ожидать, что rMB_svr / s будет больше или равно rMB_nor/s?
1 ответ
Если данные доступны в кеше файловой системы, то системный вызов read прочитает данные, но на сервер NFS не будет отправлено ни одного запроса на чтение. Это может произойти, когда приложение считывает одни и те же блоки несколько раз или когда пользователь открывает один и тот же файл несколько раз. Вы можете очистить кэш файловой системы и снова посмотреть результат iostat:
# echo 3 > /proc/sys/vm/drop_caches