Страница 1 из 1

Проблема при большом количестве соединений

Добавлено: 2015-06-18 21:45:01
little_devil
Доброго времени суток,у меня сервер на FreeBSD 10.0-RELEASE,на сервере установлен TeamSpeak3 сервер,когда на него заходит 300 человек то начинаются потери пакетов,и поднимаеться пинг (по информации из самой программы),канал 100 мегабитный, пинг к самому серверу не превышает 20 мс,подозрения на то что из за большого колва конектов freebsd просто не принимает новые,и из за этого лаги на самом TeamSpeak3 сервере
вывод netstat -m (с онлайном 250 - 260 человек)

Код: Выделить всё

342/1953/2295 mbufs in use (current/cache/total)
298/962/1260/62824 mbuf clusters in use (current/cache/total/max)
298/959 mbuf+clusters out of packet secondary zone in use (current/cache)
0/16/16/31411 4k (page size) jumbo clusters in use (current/cache/total/max)
0/0/0/9307 9k jumbo clusters in use (current/cache/total/max)
0/0/0/5235 16k jumbo clusters in use (current/cache/total/max)
681K/2476K/3157K bytes allocated to network (current/cache/total)
29/0/257 requests for mbufs denied (mbufs/clusters/mbuf+clusters)
0/0/0 requests for mbufs delayed (mbufs/clusters/mbuf+clusters)
0/0/0 requests for jumbo clusters delayed (4k/9k/16k)
0/0/0 requests for jumbo clusters denied (4k/9k/16k)
0 requests for sfbufs denied
0 requests for sfbufs delayed
0 requests for I/O initiated by sendfile
вывод top

Код: Выделить всё

last pid:  1268;  load averages:  6.22,  5.80,  5.24                                              up 0+01:04:50  22:42:44
22 processes:  1 running, 21 sleeping
CPU: 14.1% user,  0.0% nice, 85.9% system,  0.0% interrupt,  0.0% idle
Mem: 81M Active, 29M Inact, 53M Wired, 109M Buf, 819M Free
Swap: 512M Total, 512M Free

  PID USERNAME    THR PRI NICE   SIZE    RES STATE    TIME    WCPU COMMAND
  759 root         24 -52   r0   106M 84220K select  37:56  49.85% ts3-server
  721 root          1  20    0 65484K  6712K select   0:00   0.00% sshd
  784 root          1  20    0 23492K  3860K pause    0:00   0.00% csh
  723 root          1  20    0 23980K  5324K select   0:00   0.00% sendmail
  593 root          1  20    0 14432K  2064K select   0:00   0.00% syslogd
  650 root          2  52    0 39440K  4372K select   0:00   0.00% mpd5
  745 root          1  20    0  1076K   708K accept   0:00   0.00% getty
  730 root          1  20    0 16520K  2152K nanslp   0:00   0.00% cron
  739 root          1  35    0 12288K  2052K select   0:00   0.00% portsentry
 1268 root          1  20    0 19768K  2780K RUN      0:00   0.00% top
  718 root          1  31    0 60816K  6284K select   0:00   0.00% sshd
  726 smmsp         1  20    0 23980K  4884K pause    0:00   0.00% sendmail
  796 root          1  52    0 14420K  1912K ttyin    0:00   0.00% getty
  474 root          1  20    0 13584K  4452K select   0:00   0.00% devd
  800 root          1  52    0 14420K  1912K ttyin    0:00   0.00% getty
  803 root          1  52    0 14420K  1912K ttyin    0:00   0.00% getty
  799 root          1  52    0 14420K  1912K ttyin    0:00   0.00% getty
  802 root          1  52    0 14420K  1912K ttyin    0:00   0.00% getty
  801 root          1  52    0 14420K  1912K ttyin    0:00   0.00% getty
  798 root          1  52    0 14420K  1912K ttyin    0:00   0.00% getty
  797 root          1  52    0 14420K  1912K ttyin    0:00   0.00% getty
  741 root          1  52    0 12288K  1952K select   0:00   0.00% portsentry
подскажите пожалуйста какие значения изменить ?, ориентировочная максимальная нагрузка на сервер около 1 000 пользователей одновременно,

Проблема при большом количестве соединений

Добавлено: 2015-06-18 22:51:24
BirdGovorun
Процессор не тянет столько народу.

Проблема при большом количестве соединений

Добавлено: 2015-06-18 22:53:53
little_devil
BirdGovorun писал(а):Процессор не тянет столько народу.
то есть сейчас проблема с ЦП ?, но ведь показывает что CPU: 14.1% user

Отправлено спустя 46 секунд:
little_devil писал(а):
BirdGovorun писал(а):Процессор не тянет столько народу.
то есть сейчас проблема с ЦП ?, но ведь показывает что CPU: 14.1% user
upd вывод netstat -s -p udp
udp:
8584286 datagrams received
0 with incomplete header
0 with bad data length field
33 with bad checksum
296921 with no checksum
8481 dropped due to no socket
26050 broadcast/multicast datagrams undelivered
166841 dropped due to full socket buffers
0 not for hashed pcb
8382881 delivered
45414875 datagrams output
0 times multicast source filter matched

Проблема при большом количестве соединений

Добавлено: 2015-06-18 23:01:35
BirdGovorun
CPU: 0.0% idle говорит, что проц занят на 100%
load averages: 6.22 говорит, что система нагружена по самые немогу.

Проблема при большом количестве соединений

Добавлено: 2015-06-18 23:06:40
little_devil
BirdGovorun писал(а):CPU: 0.0% idle говорит, что проц занят на 100%
load averages: 6.22 говорит, что система нагружена по самые немогу.
а CPU: 14.1% user за что тогда отвечает ?)

Проблема при большом количестве соединений

Добавлено: 2015-06-18 23:22:22
BirdGovorun
little_devil писал(а):
BirdGovorun писал(а):CPU: 0.0% idle говорит, что проц занят на 100%
load averages: 6.22 говорит, что система нагружена по самые немогу.
а CPU: 14.1% user за что тогда отвечает ?)
Не отвечает, а показывает сколько процессорного времени занимают пользовательские процессы.
Лучше systat -vmstat 1 чего и как, выход :q
И чего вы хотите с одноголового, памяти 1G и swap неправильный.

Проблема при большом количестве соединений

Добавлено: 2015-06-19 0:33:34
little_devil
BirdGovorun писал(а):
little_devil писал(а):
BirdGovorun писал(а):CPU: 0.0% idle говорит, что проц занят на 100%
load averages: 6.22 говорит, что система нагружена по самые немогу.
а CPU: 14.1% user за что тогда отвечает ?)
Не отвечает, а показывает сколько процессорного времени занимают пользовательские процессы.
Лучше systat -vmstat 1 чего и как, выход :q
И чего вы хотите с одноголового, памяти 1G и swap неправильный.
а сколько должен быть своп ?,
памяти так понимаю ещё много свободно )
насколько я понимаю загрузка проца под 70% сейчас ?)
Изображение

Отправлено спустя 1 час 47 секунд:
вот кстати мой sysctl может что то нужно подправить ?
p.s заказал у хостера доп ядро :),виртуализацию КВМ использую
net.inet.udp.recvspace=41600
net.route.netisr_maxqlen=4096
net.inet.ip.sourceroute=0
net.inet.ip.accept_sourceroute=0
kern.ipc.somaxconn=4096
net.inet.icmp.drop_redirect=1
net.inet.tcp.sack.enable=0
net.inet.icmp.maskrepl=0
net.inet.udp.blackhole=1
net.inet.tcp.syncookies=1
net.inet.tcp.recvspace
net.inet.tcp.sendspace=65535
net.inet.tcp.blackhole=2
net.link.ether.inet.max_age=1200
net.inet.icmp.bmcastecho=0
net.inet.ip.ttl=255
net.inet.udp.log_in_vain=1
net.inet.tcp.log_in_vain=1
net.inet.ip.forwarding=1
net.inet.icmp.drop_redirect=1
net.inet.icmp.log_redirect=1

Проблема при большом количестве соединений

Добавлено: 2015-06-19 7:47:57
kharkov_max
Подумайте над этим
166841 dropped due to full socket buffers

Проблема при большом количестве соединений

Добавлено: 2015-06-19 9:34:14
little_devil
kharkov_max писал(а):Подумайте над этим
166841 dropped due to full socket buffers
задумался)),отредактировал sysctl.conf вот сами настройки :
############################################
#### Прочее для сетевых интерфейсов ########
############################################
#разрешим обмен пакетами между интерфейсами
net.inet.ip.forwarding=1

############################################
#### Оптимизация сетевой подсистемы ########
############################################
#Диапазон возможных портов для соединений
net.inet.ip.portrange.first=1024 #начало
net.inet.ip.portrange.last=65535 #конец
#Размер UDP receive буфера
net.inet.udp.recvspace=41600
#Размер исходящей очереди
net.route.netisr_maxqlen=4096
# Буферы для отправки данных
net.inet.tcp.sendspace=65535
#Буферы для приема данных
net.inet.tcp.recvspace=65536
# время жизни записи в IP route кэше
net.link.ether.inet.max_age=1200
#время жизни пакетов
net.inet.ip.ttl=255
# Включается возможность перехода в syncookies
net.inet.tcp.syncookies=1
#позволяет улучшить производительность при большой патере пакетов
net.inet.tcp.sack.enable=0
# размер очереди для сокетов
kern.ipc.somaxconn=4096
# Максимально количество TIME_WAIT сокетов
net.inet.tcp.maxtcptw=65536
#После того как соединение закрывается сокет переходит в состояние TIME_WAIT
net.inet.tcp.msl=30000
# Количество фрагментированных пакетов в очереди
net.inet.ip.maxfragpackets=1024
# максимальное количество сокетов
kern.ipc.maxsockets=65537
############################################
######## Зашита от сетевых атак ############
############################################
#если 1, то SYN пакеты пришедшие на порты для которых нет активных сервисов, остаются без RST ответа, если 2, то
#на любые пакеты нет ответа (затрудняет сканирования портов);
net.inet.tcp.blackhole=2
#отбрасываються все пакеты адрессованные закрытым портам
net.inet.udp.blackhole=1
#уничтожать icmp-датаграммы переадресации
net.inet.icmp.drop_redirect=1
#запрещаем ICMP-сообщения, приводящие к изменению таблицы маршрутизации
net.inet.ip.redirect=0
#логируем icmp
net.inet.icmp.log_redirect=1
#дропаем icmp
net.inet.icmp.drop_redirect=1
#отражаем в логе попытки соединения к портам, для которых нет активных сервисов;
net.inet.udp.log_in_vain=1 #udp порты
net.inet.tcp.log_in_vain=1 #tcp порты
#для защиты от SMURF атак (ICMP echo request на broadcast адрес) нудно поставить 0;
net.inet.icmp.bmcastecho=0
#что бы не прошупали сеть из нутри
net.inet.ip.sourceroute=0
net.inet.ip.accept_sourceroute=0
#запрет запроса маски сети через icmp
net.inet.icmp.maskrepl=0
# Отбрасывать пакеты с флагами SYN+FIN (зашита от сканирования портов)
net.inet.tcp.drop_synfin=1
Отправлено спустя 1 минуту 18 секунд:
вывод netstat -s -p udp
udp:
953012 datagrams received
0 with incomplete header
0 with bad data length field
0 with bad checksum
20820 with no checksum
721 dropped due to no socket
40855 broadcast/multicast datagrams undelivered
0 dropped due to full socket buffers
0 not for hashed pcb
911436 delivered
949262 datagrams output
0 times multicast source filter matched
Отправлено спустя 18 секунд:
что можно сделать с dropped due to no socket ?

Отправлено спустя 20 минут 5 секунд:
в логах нашел,походу частью причины dropped due to no socket являеться то что сканят мой сервер :)
Jun 19 10:25:05 TeamSpeak3_server_service-voice kernel: TCP: [5.9.31.205]:40907 to [94.79.54.101]:3128 tcpflags 0x2<SYN>; tcp_input: Connection attempt to closed port
Jun 19 10:25:05 TeamSpeak3_server_service-voice kernel: TCP: [144.76.61.107]:35550 to [94.79.54.101]:3128 tcpflags 0x2<SYN>; tcp_input: Connection attempt to closed port
Jun 19 10:25:05 TeamSpeak3_server_service-voice kernel: TCP: [88.198.31.50]:38043 to [94.79.54.101]:3128 tcpflags 0x2<SYN>; tcp_input: Connection attempt to closed port
Jun 19 10:25:05 TeamSpeak3_server_service-voice kernel: TCP: [5.9.77.82]:52197 to [94.79.54.101]:3128 tcpflags 0x2<SYN>; tcp_input: Connection attempt to closed port
Jun 19 10:25:05 TeamSpeak3_server_service-voice kernel: TCP: [176.9.143.13]:37721 to [94.79.54.101]:3128 tcpflags 0x2<SYN>; tcp_input: Connection attempt to closed port
Jun 19 10:25:05 TeamSpeak3_server_service-voice kernel: TCP: [78.46.128.206]:34862 to [94.79.54.101]:3128 tcpflags 0x2<SYN>; tcp_input: Connection attempt to closed port
Jun 19 10:25:05 TeamSpeak3_server_service-voice kernel: TCP: [88.198.221.233]:53765 to [94.79.54.101]:3128 tcpflags 0x2<SYN>; tcp_input: Connection attempt to closed port
Jun 19 10:26:21 TeamSpeak3_server_service-voice kernel: Connection attempt to UDP 94.79.54.101:123 from 184.105.139.126:48798
Jun 19 10:26:42 TeamSpeak3_server_service-voice kernel: TCP: [61.183.128.6]:54486 to [94.79.54.101]:8888 tcpflags 0x2<SYN>; tcp_input: Connection attempt to closed port
Jun 19 10:26:50 TeamSpeak3_server_service-voice kernel: TCP: [122.114.119.126]:6000 to [94.79.54.101]:1433 tcpflags 0x2<SYN>; tcp_input: Connection attempt to closed port
Jun 19 10:27:45 TeamSpeak3_server_service-voice kernel: Connection attempt to UDP 94.79.54.101:61699 from 74.40.165.51:53

Проблема при большом количестве соединений

Добавлено: 2015-06-19 9:36:54
kharkov_max
Погуглить, найти настройку системы, поправить и радоваться жизни ...

Отправлено спустя 28 секунд:
А сканить всегда будут ...

Проблема при большом количестве соединений

Добавлено: 2015-06-19 9:39:12
little_devil
kharkov_max писал(а):Погуглить, найти настройку системы, поправить и радоваться жизни ...

Отправлено спустя 28 секунд:
А сканить всегда будут ...
portsentry установлен),в блоках за день по 200+ ip,подскажите пожалуйста что можно оптимизировать в конфиге sysctl.conf,и вообще :)

Проблема при большом количестве соединений

Добавлено: 2015-06-19 21:22:13
little_devil
уже 2 ядра..,но нагрузка на проц в таких же пределах
load averages: 4.21, 4.76, 4.59
hw.machine: amd64
hw.model: Common KVM processor
hw.ncpu: 2
hw.machine_arch: amd64