Назад | Перейти на главную страницу

Предотвращение отказа в обслуживании NFS

У меня есть сервер NFS4 под управлением Ubuntu 10.04 Server в корпоративной среде с более чем 50 клиентами.

В целом все работает нормально, но время от времени какой-то клиент начинает совершать +1000 операций NFS в секунду, обычно из-за сбоя клиентского программного обеспечения или плохо написанного программного обеспечения.

Когда это происходит, обычно клиенты начинают получать много сообщений, подобных этому, на dmesg:

[443947.760016] nfs: server 192.1.1.111 not responding, still trying
[443952.696017] nfs: server 192.1.1.111 not responding, still trying
[443954.056079] nfs: server 192.1.1.111 OK
[443954.056311] nfs: server 192.1.1.111 OK

Мой сервер NFS4 запускает 96 демонов. Он работает на 8-ядерном многопоточном процессоре (всего 16 потоков) с 16 ГБ оперативной памяти. Может 96 - не лучший выбор?

Я разработал несколько инструментов для построения графика использования клиентов NFS, чтобы я мог обнаруживать проблемы и вручную убивать клиентов. Конечно, я тоже мог это автоматизировать. Однако я не хочу быть таким агрессивным. В большинстве случаев это не их вина, и я не хочу, чтобы клиенты сходили с ума из-за того, что я испортил их двухнедельную симуляцию, потому что gnome-settings-daemon идет забавно.

Итак, прежде чем пройти этот не очень хороший путь, есть ли какие-нибудь передовые практики или установленные механизмы для предотвращения отказа в обслуживании NFS?