Настройка:
Мы запускаем экземпляр cygwin nfsd на сервере Windows 2008 (Xeon 3,2 ГГц). Есть несколько машин Sun Solaris и SunOS, обращающихся к общим ресурсам.
Это файл экспорта:
/disk3 (rw,all_squash)
/disk2 (rw,all_squash)
Эти пути мягко связаны с соответствующими путями cygdrive / d / path / to / dir. Некоторые папки содержат до 10к файлов.
Эта проблема:
ls -la
на смонтированной папке на солнечных ящиках занимает 2 - 3 минуты и общая скорость чтения очень плохая.
cat filename
отображает файл медленно, и это снижает производительность задач, которые сильно обращаются к этим общим файлам.
Загрузка процессора не является проблемой, сервер nfs большую часть времени простаивает, задачи cygwin никогда не загружаются более чем на 1%.
Недавно была проведена некоторая работа по ускорению доступа к каталогам, которая будет в Cygwin 1.7.8. Ожидается, что он будет выпущен где-то в январе, но вы можете попробовать последние снимки на сайте http://www.cygwin.com/snapshots.
Кроме того, вы можете захотеть избежать символических ссылок в пути, поскольку они вызывают дополнительные накладные расходы. Вы можете смонтировать нужные каталоги прямо в /etc/fstab
, вот так:
c:/path/to/dir /disk3 ntfs binary 0 0
Вы также можете попробовать отключить сопоставление разрешений POSIX с ACL Windows (что означает, что разрешения будут подделаны):
c:/path/to/dir /disk3 ntfs binary,noacl 0 0
Видеть http://cygwin.com/cygwin-ug-net/using.html#mount-table для получения дополнительной информации об этом.
В конце концов, однако, Cygwin / Windows просто не очень хорошая серверная система.
Это вполне нормально, вы запускаете NFS-сервер в пользовательском режиме поверх уровня Unix поверх другой операционной системы.
Было бы намного лучше использовать сервер GNU / Linux.
Взгляните в средство просмотра событий, чтобы увидеть, есть ли какие-либо проблемы с разрешениями, и в этом случае установите соответствующие разрешения для монтирования, например:
/ disk3 (rw, all_squash, anonuid = xxx, anongid = yyy)