В чем разница между 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
Другие вопросы по тегам