ЛАМПА на CenOS 6 спорадических таймаутов - PullRequest
0 голосов
/ 08 декабря 2011

У нас есть несколько серверов, недавно перешедших на нового провайдера (известного немецкого).Конфигурация такая же: процессор i7-2600, машины с 16 ГБ ОЗУ, карты 1 Гбит (подключены к маршрутизатору со скоростью 100 Мбит)

ОС - это Centos 6, приложение - LAMP (Apache 2.2.15, PHP 5.3.8 (APC)3.1.9), MySQL 5.5.18, демоны Memcached, запущенные на каждой машине)

PHP-страницы, вызываемые прокси-компонентом, написанным на Java (100-300 раз / сек. Зависит от количества пользователей).на серверах нет предупреждений в / var / log / messages, средняя загрузка составляет около 0,5-1,0 на серверах приложений и 2,0-3,0 на MySQL.В приложении нет узких мест (мы собираем метрики, стандартное время, необходимое для рендеринга, всегда около 0,015 секунд)

Проблема заключается в следующем: время от времени мы видим, что тайм-ауты в прокси-компоненте идут подряд в течение 2-3 секунд,Часто таймауты равны 3000, иногда 9000 и реже 21000 миллисекунд (это как-то связано с SYN-пакетами?) Это даже происходит, если прокси-компоненты размещены на одной машине с PHP-приложением (Apache + PHP)

Мытакже заметил, что:

  1. темы в Mysql в течение этого времени имеют статус «Чтение из сети».
  2. Во время тайм-аутов Страница состояния Apache быстро (1-3 секунды) заполняется процессами 'W' (поэтому все процессы стали в статусе 'W', некоторые в статусах 'C')
  3. Тайм-аутычаще всего появляется, когда трафик увеличивается (вечером), и эта проблема исчезает, когда трафик начинает снижаться (вечером-> ночь)
  4. Во время тайм-аутов средняя нагрузка увеличивается до 5,0 - 20,0

Вещи, которыеЯ пытался, и они не помогают:

  1. Я много играл с переменными sysctl / net (somaxconn, буферы, это не помогает)
  2. Отключение брандмауэра
  3. Отключение APC (отключено его использование в коде)
  4. Переключение на постоянные соединения (в PHP) и с MySQL на MySQLi

Только сейчас я обнаружил, что iperf показывает падение пропускной способностиво время тайм-аута:

------------------------------------------------------------
Client connecting to localhost, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size:  122 KByte (default)
------------------------------------------------------------
[  3] local 127.0.0.1 port 54006 connected with 127.0.0.1 port 5001
[ ID] Interval       Transfer     Bandwidth
...
[  3] 266.0-266.5 sec  24.0 MBytes   402 Mbits/sec
[  3] 266.5-267.0 sec  24.4 MBytes   410 Mbits/sec
[  3] 267.0-267.5 sec  24.0 MBytes   402 Mbits/sec
[  3] 267.5-268.0 sec  24.4 MBytes   410 Mbits/sec
[  3] 268.0-268.5 sec  24.0 MBytes   402 Mbits/sec
[  3] 268.5-269.0 sec  18.6 MBytes   312 Mbits/sec 
[  3] 269.0-269.5 sec  2.42 MBytes  40.6 Mbits/sec
[  3] 269.5-270.0 sec  7.87 MBytes   132 Mbits/sec
[  3] 270.0-270.5 sec  2.30 MBytes  38.5 Mbits/sec
[  3] 270.5-271.0 sec  2.84 MBytes  47.7 Mbits/sec
[  3] 271.0-271.5 sec  5.59 MBytes  93.8 Mbits/sec
[  3] 271.5-272.0 sec  3.42 MBytes  57.4 Mbits/sec
[  3] 272.0-272.5 sec  2.83 MBytes  47.5 Mbits/sec
[  3] 272.5-273.0 sec  13.5 MBytes   227 Mbits/sec
[  3] 273.0-273.5 sec  24.2 MBytes   407 Mbits/sec
[  3] 273.5-274.0 sec  24.1 MBytes   404 Mbits/sec
[  3] 274.0-274.5 sec  24.3 MBytes   408 Mbits/sec
...

Обратите внимание, что только клиент iperf был запущен с помощью команды «iperf -c localhost -i0.5 -b5000000000 -t3000».

В чем заключается проблема, которая приводит ктакие таймауты?Это связано с CentOS?

Спасибо, Арсен

...