
Как добиться низкой задержки при экспорте NFS, чтобы, например, разработчики могли без проблем работать в Eclipse/Visual Studio, смонтировав свои рабочие пространства через NFS?
решение1
Похоже, вы все еще на стадии проектирования. Если это правда, вот несколько вещей, на которые стоит обратить внимание:
- NFSv3/4 поверх NFSv2, чтобы обеспечить более крупные пакеты и такие функции, как «безопасная асинхронная запись»
- Проверьте ваш NFS-клиент на наличие упреждающего чтения и отложенной записи, обе эти функции помогут
- Очевидно, что необходимо поддерживать низкую задержку в сети — гигабитные соединения через быстрый коммутатор
- Убедитесь, что ваш сервер NFS настроен на скорость. Это и реализация NFS, и то, как он настроен.
Вот хороший FAQ по NFS, включающий несколько советов по настройке:http://nfs.sourceforge.net/
решение2
Не компилируйте через NFS. Производительность NFS обычно является фактором производительности дискового ввода-вывода, а компиляция — это то, что будет определять количество операций файлового ввода-вывода.
Если вы не можете этого избежать, кэширование — это то, что спасет положение. Заполните этот NFS-сервер оперативной памятью настолько, насколько сможете, используйте асинхронную запись и включите все кэширование, которое сможете, на стороне клиента. Дело в том, что RAID не лучше справляется с (некэшированными) дисковыми операциями, чем один жесткий диск. А с небольшими размерами файлов рабочей нагрузки компиляции объединенная пропускная способность ничего не изменит.
решение3
Подождите кэширования файловой системы или не делайте компиляцию через NFS. Жесткие диски всегда будут быстрее сетевых файловых систем.
решение4
Поместите файлы на очень быстрый диск или RAID-массив, рассчитанный на высокую скорость, поскольку дисковый ввод-вывод определит нижнюю границу задержки, независимо от того, является ли клиент локальным или удаленным. Другие ответы также ОК.
Хорошее решение — сделать файловый серверстроитьсервер тоже.