3proxy и ping request time out

18 Jul 2015 | Автор: dd |

Возился тут с одной VPS где была очень странная ситуация, канал на неё падал периодически, т.ч даже залипала консоль, на 10-20 секунд.
В какой то момент меня это достало и решил заняться более плотно. Из софта там стоял всего лишь 3proxy, т.ч особой нагрузки, кроме числа потоков не было.

Картина была следующая:

при пинге с запущенным 3proxy терялось от 5 до 15% пакетов (по request time out), при этом где то через 2-3 пакета время отклика с 50-60мс улетало за 300;
если 3proxy вырубать, то пакеты либо терялись в пределах 2%, либо появлялись пакеты со сременем отклика более 500 мс, которые, видимо, при отклике под нагрузкой и давали потерю.

При этом одновременных сессий, через
# lsof -i
показывалось от силы 150

Саппорт на все вопросы морозился, отнекиваясь что проблема в вашем ПО, т.ч заказывайте еще одну VPS и на ней тестируйте, либо же меняйте ПО.

Учитывая что тормоза в прохождении пакетов наблюдались даже при выключенном ПО, понятно было что грабли где то в сетевой составляющей, т.ч нехотя переругиваясь с сисадминами, попутно штудировал листинг:
# sysctl -a
пока не набрел на очаровательный вывод
net.core.somaxconn = 128
говорящий о том, что сисадмины хостинга банально зарезали число открытых сокетов до 128, т.ч выставил в /etc/sysctl.conf значение в
net.core.somaxconn = 4096

после перезагрузки получил уже более менее стабильно работающий VPS, т.к пакеты по прежнему куда то девались, но уже в пределах 2%, но при этом консоль и соединение уже не висли наглухо.

После этого добавил еще несколько параметров, определяющих работу буфера и очереди обработки
net.ipv4.netfilter.ip_conntrack_max = 16777216
net.core.netdev_max_backlog = 1000
net.core.rmem_default=65536
net.core.wmem_default=65536
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216

после чего перезагрузил машину, подождал открытия максимального количества сессий и зафиксировал тот момент, что потерь стало меньше 1%

дальше попытся подкрутить следующие параметры стека, которые использую на серверах с большим количеством подключений, но с ними сервер вообще перестал жить, т.к потери выросли до 20%

Покумекав на счет потерь в работе 3proxy, сменил в конфиге строку
nserver 8.8.8.8

на локальные DNS’ы хостера, до которых пинг шел 0.7 мс, вместо 55 до гуглевского, но потери остались на том же уровне, т.ч вернул все обратно к первоначальному варианту, в котором потери составляли порядка 1%.

VN:F [1.9.21_1169]
Rating: 2.9/10 (24 votes cast)
VN:F [1.9.21_1169]
Rating: +2 (from 6 votes)
3proxy и ping request time out, 2.9 out of 10 based on 24 ratings

Теги: ,

Ваш отзыв