У нас есть сервер с высокой посещаемостью. Недавно мы переехали из
2 x 4-ядерный сервер (8 ядер в / proc / cpuinfo), 32 ГБ ОЗУ, работает CentOS 5.x, чтобы
2 сервера по 4 ядра (16 ядер в / proc / cpuinfo), 32 ГБ ОЗУ, под управлением CentOS 6.3
Сервер, на котором запущен nginx в качестве прокси, сервер mysql и sphinx-search.
Трафик высокий, но базы данных mysql и sphinx-search относительно малы, и обычно все работает очень быстро.
Сегодня средняя загрузка сервера составила 100 ++. Посмотрев на top и sar, мы заметили, что (% sys) очень высокое - от 50 до 70%. Использование диска было менее 1%. Мы попытались перезагрузить компьютер, но после перезагрузки проблема не исчезла. В любой момент на сервере было не менее 3-4 ГБ свободной оперативной памяти.
Единственное сообщение, показанное dmesg, было «возможное SYN-лавинное сообщение на порт 80. Отправка файлов cookie.».
Вот фрагмент sar
11:00:01 CPU %user %nice %system %iowait %steal %idle
11:10:01 all 21.60 0.00 66.38 0.03 0.00 11.99
Мы знаем, что это проблема трафика, но мы не знаем, как действовать дальше и где искать решение.
Есть ли способ узнать, где именно используются эти «66,38%».
Мы ценим любые предложения.
обновление: сегодня средняя загрузка "нормальная" и "sys%" тоже в порядке ~ 4%. Однако сегодня трафик примерно на 20-30% меньше, чем вчера. Это заставляет меня думать, что вчерашняя проблема связана с некоторыми настройками ядра для TCP.
Я бы установил поверх репозитория EPEL. Atop должен помочь вам определить причину активности% sys.
Atop также имеет функцию atop -r, которая позволяет вам перемещаться по журналам назад и вперед во времени с помощью клавиш t / T.
Также просмотрите / proc / interrupts и свои / var / log / httpd / logs и отсортируйте их по ip, чтобы увидеть, есть ли какой-либо подозрительный IP-адрес, вызывающий ненормальный объем трафика httpd.
Я бы записал cat / proc / interrupts в файл журнала. Ищите высокие дельты в перерывах.