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

Странные проблемы с загрузкой при использовании Courier IMAP внутри Linode VPS

Итак ... Я вижу очень странные проблемы с нагрузкой на наш почтовый сервер. Он начинает подниматься около 8-9 утра (по совпадению, когда люди начинают работать), но спадает около 11 утра. Загрузка процессора остается нормальной, свободной памяти много, подкачки нет. Вчера у нас был действительно высокий iowait% (49,75) при действительно высокой нагрузке (40), сегодня у нас «всего» была нагрузка 11-12, при этом iowait% находился между 3-4 вершинами.

Все признаки указывают на imapd как на виновника (courier-imap), потому что, когда я его остановил, нагрузка внезапно начала снижаться, и в течение 2-3 минут она вернулась в норму. У меня было около 40-60 из них. Мы используем thunderbird, который открывает 5 соединений каждое, я снизил его до 1 на большинстве рабочих станций, это немного помогло (нагрузка упала до 5-7), затем ... весь сервер вернулся в нормальное состояние около 11 утра.

У меня все еще работает ~ 30 изображений, но с совершенно нормальной нагрузкой (от 0,2 до 0,4). Итак ... Я действительно не понимаю, почему это происходит, потому что, по логике, оно должно быть намного выше, если это может быть причиной проблемы.

Это Linode 1080 VPS с 1 ГБ оперативной памяти.

(chkrootkit / rkhunter ничего необычного не показал.)

Если вы используете VPS, вы разделяете пропускную способность ввода-вывода, время процессора и пропускную способность памяти с другими пользователями, которые не видны вашему VPS.

Я с уверенностью могу сказать, что другой domU, размещенный на физической машине, потребляет большое количество одного или нескольких из этих ресурсов (скорее всего, ввода-вывода).

Если вы используете iostat -x вы, вероятно, увидите, что время вашего обслуживания сильно колеблется, что объясняет, почему ваша средняя нагрузка резко возрастает из-за процессов, блокирующих операции ввода-вывода на диске.

Насколько я понимаю, загрузка в системе * nix означает «количество процессов, ожидающих запуска». Это не обязательно означает, что они ждут ЦП. Они могут ждать доступа к диску или завершения сетевого подключения.

Например, я имел обыкновение управлять системой, в которой нагрузка начинала увеличиваться до 80, время от времени приводя систему к ползанию. В конечном итоге это произошло из-за того, что внешний сервер LDAP не работал, и локальная система выполняла запросы аутентификации для клиентов.

Я бы поискал сетевые зависимости, которые могут быть причиной необычно высоких значений нагрузки в ваших приложениях, если ваш процессор и iowait кажутся нормальными.

Как указано на первом плакате, скорее всего, это IO. На самом деле у меня такая же настройка на моем vserver, и я часто вижу одни и те же проблемы. Проблема в том, что текущие контейнерные методы виртуальных серверов, таких как vserver, не разделяют эффективно операции ввода-вывода. Вот технический документ, который подробно объясняет это на странице 13, если вам интересно. http://www.cs.princeton.edu/~mef/research/vserver/paper.pdf