У меня была эта проблема с тех пор, как я использую NFS (более 10 лет), но она стала более очевидной с недавним появлением SSD.
У меня есть настройка локальной сети с двумя напрямую подключенными серверами с каждой из двух связанных Ethernet-карт 1 Гбит / с. Сервер NFS и клиент Debian 8. Я экспортирую каталог с сервера, который находится на SSD.
У меня нет проблем с пропускной способностью, я читаю файлы со скоростью более 150 МБ / с, atop
показывает пиковую скорость передачи 1,6 Гбит / с, что нормально. Запись составляет около 125 МБ / с с синхронизацией, 160 МБ / с с асинхронностью.
Тем не менее, случайный доступ + время записи кажется проблемой. Мой настоящий тест - это построение Java-приложения. Процесс сборки распараллелен, до 6 потоков и производительность процессора не является проблемой. На локальном SSD процесс сборки занимает около 90 секунд.
Когда я собираю одно и то же приложение на монтировании NFS, производительность падает. Сборка занимает около 4 минут на NFSv3 (асинхронный) и около 7 минут на NFSv4 (асинхронный). У меня не было опыта тестирования с синхронизацией, это даже медленнее.
Запуск набора тестов NFS показал, что при использовании NFSv4 делегирование записи не выполняется. Я не нашел никаких подсказок о том, как включить его.
Я не ожидаю, что какая-либо сетевая файловая система будет работать так же хорошо, как локальная, но коэффициент 3 или 4 действительно делает ее действительно непригодной для использования.
Процесс сборки читает около 500 МБ и пишет около 1 ГБ.