Тайм-аут Famd/ Gamin с курьером-Imap
Я использую почтовый сервер для 200 пользователей с courier-imap на Debian 7. Этот сервер работает под ядром Linux 2.6.38 в гостевой системе Xen, имеющей 2 ядра ЦП и 2 ГБ ОЗУ. Сервер принимает входящую почту через postfix, но ресурсоемкие проверки (amavis, spamassassin) делегируются другому серверу.
В последнее время я сталкиваюсь с проблемами производительности IMAP из-за случайного сброса клиентских подключений. Нагрузка на сервер не низкая, но она также невелика, даже в тех случаях, когда происходит обрыв соединения. В часы пик у меня есть около 120 одновременных клиентов imap, и 5-минутная загрузка составляет < 1.
Я заметил, что разрывы соединения появляются одновременно со следующими строками журнала на моем сервере:
imapd: FAMPending: timeout
Я предполагаю, что когда FAM истекает, сервер imap возвращает какую-то ошибку, и, в зависимости от клиента, ошибка обрабатывается изящно или нет (некоторым клиентам веб-почты это не нравится).
Обычный Debian courier-imap
пакет требует реализации Fam, у меня есть выбор использования famd
или же gamin
, Я пробовал оба, и оба сталкиваются с этими таймаутами. Мне кажется, что Gamin снижает нагрузку на сервер, но тайм-ауты все же происходят.
Мне интересно, есть ли что-нибудь, что я могу настроить, чтобы улучшить производительность Fam / Gamin и избежать сообщений о тайм-ауте. В демонах не так много настроек. Однако может ли быть так, что у меня заканчиваются файловые дескрипторы или ресурсы inotify? Как я могу это проверить?
Или вы думаете, что лучшим выбором было бы обновить моего гостя Xen или отойти от courier-imap?