У нас есть несколько серверов, недавно перешедших на нового провайдера (известного немецкого).Конфигурация такая же: процессор 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)
Мытакже заметил, что:
- темы в Mysql в течение этого времени имеют статус «Чтение из сети».
- Во время тайм-аутов Страница состояния Apache быстро (1-3 секунды) заполняется процессами 'W' (поэтому все процессы стали в статусе 'W', некоторые в статусах 'C')
- Тайм-аутычаще всего появляется, когда трафик увеличивается (вечером), и эта проблема исчезает, когда трафик начинает снижаться (вечером-> ночь)
- Во время тайм-аутов средняя нагрузка увеличивается до 5,0 - 20,0
Вещи, которыеЯ пытался, и они не помогают:
- Я много играл с переменными sysctl / net (somaxconn, буферы, это не помогает)
- Отключение брандмауэра
- Отключение APC (отключено его использование в коде)
- Переключение на постоянные соединения (в 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?
Спасибо, Арсен