Лаги при 500+ конектов

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Лаги при 500+ конектов

Непрочитанное сообщение mediamag » 2009-06-26 14:25:16

Имеется инет сервак на фряхе...так вот если 2 компа открывают торент, то начинается закачка и число одновременных конектов подскакивает до 500+, тогда внешние сервисы такие как тим спик и апач начинают лагать...+ пинг на внешнюю сетевую поднимается до 800. Скажите плиз в каком направлении копать? Как оптимизировать число одновременных конектов. Комп селерон 2,4 1 гиг оперативы.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
schizoid
подполковник
Сообщения: 3228
Зарегистрирован: 2007-03-03 17:32:31
Откуда: Украина, Чернигов
Контактная информация:

Re: Лаги при 500+ конектов

Непрочитанное сообщение schizoid » 2009-06-26 15:32:48

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

allow ip from any to any via rl0 limit src-addr 40
т.е. на каждого клиента из сети максимум 40 tcp и udp сессии
rl0- внутренний интерфейс
количесвто сессий сами уж решайте
ядерный взрыв...смертельно красиво...жаль, что не вечно...

mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Re: Лаги при 500+ конектов

Непрочитанное сообщение mediamag » 2009-06-26 15:38:37

так почему тормозить начинает уже при 500 конектах? Это хорошо что у меня 25 компов в сети..а если их будет 300 и все будут ломится в инет? Сервак вообще остановится...как убрать лаги при больших числах одновременных конектах?

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: Лаги при 500+ конектов

Непрочитанное сообщение zingel » 2009-06-26 16:56:42

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

netstat -Lan
Z301171463546 - можно пожертвовать мне денег

mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Re: Лаги при 500+ конектов

Непрочитанное сообщение mediamag » 2009-06-26 17:19:25

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

inetsrv# netstat -Lan

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

Current listen queue sizes (qlen/incqlen/maxqlen)
Proto Listen         Local Address
tcp4  0/0/10         127.0.0.1.25
tcp4  0/0/128        *.35665
tcp6  0/0/128        *.35665
tcp4  0/0/511        *.5700
tcp4  0/0/50         *.3306
tcp4  0/0/2768       127.0.0.1.8080
tcp4  0/0/2768       *.8080
tcp4  0/0/15         *.51234
tcp4  0/0/15         *.14534
tcp4  0/0/2          xx.xx.xx.xx.1723
tcp4  0/0/1024       192.168.0.108.5006
tcp4  0/0/2          127.0.0.1.5005
tcp6  0/0/128        ::1.953
tcp4  0/0/128        127.0.0.1.953
tcp4  0/0/3          127.0.0.1.53
tcp4  0/0/3          192.168.0.108.53

Еще заметил что в процесс natd занимет 10%

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: Лаги при 500+ конектов

Непрочитанное сообщение zingel » 2009-06-26 17:31:30

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

netstat -z | grep WAIT | wc -l
Z301171463546 - можно пожертвовать мне денег

mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Re: Лаги при 500+ конектов

Непрочитанное сообщение mediamag » 2009-06-26 17:49:52

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

inetsrv# netstat -z | grep WAIT | wc -l
или
хаотичо показывает или 0 или 1

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: Лаги при 500+ конектов

Непрочитанное сообщение zingel » 2009-06-26 18:09:00

сиречь увеличить max кол-во сокетов котоыре могут быть в статусе listen() убрать TIME_WAIT, заюзать polling ну и так далее
Z301171463546 - можно пожертвовать мне денег

mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Re: Лаги при 500+ конектов

Непрочитанное сообщение mediamag » 2009-06-26 18:18:33

это в sysctl.conf пописывать?

mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Re: Лаги при 500+ конектов

Непрочитанное сообщение mediamag » 2009-06-28 3:19:11

Люди помогите плиз...Картина изменилась...даже при 50 одновременных конектах и общей загруженности канала в 2 мбита из 5 возможных, если включены торент клиенты в локалке пинг на внешнюю сетевую 500-600....пинг на юбой хост с локалки в нет 500-600...блин даже доступ по ссш становится невыносимым!!!

вот мой sysctl.conf на всякий

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

net.inet.tcp.blackhole=2
net.inet.udp.blackhole=1
net.inet.ip.random_id=1
net.inet.ip.portrange.first=1024
net.inet.ip.portrange.last=65535
net.inet.ip.portrange.randomized=0
net.inet.icmp.icmplim=100
kern.ipc.somaxconn=1024
kern.ipc.nmbclusters=262144
kern.ipc.maxsockets=204800
net.inet.icmp.drop_redirect=1
net.inet.icmp.log_redirect=1
net.inet.ip.redirect=0
net.inet.tcp.sendspace=65536
net.inet.tcp.recvspace=65536
net.inet.tcp.syncookies=1
net.inet.tcp.msl=15000
net.inet.tcp.maxtcptw=40960
net.inet.tcp.nolocaltimewait=1
net.inet.tcp.sack.enable=0
net.link.ether.inet.max_age=1200
net.inet.ip.sourceroute=0
net.inet.ip.accept_sourceroute=0
net.inet.icmp.maskrepl=0
net.inet.icmp.bmcastecho=0
net.inet.tcp.sack.enable=0
vfs.vmiodirenable=1
kern.maxfiles=65536
net.link.ether.inet.max_age=800

Аватара пользователя
f_andrey
майор
Сообщения: 2651
Зарегистрирован: 2007-12-26 1:22:58
Откуда: СПб
Контактная информация:

Re: Лаги при 500+ конектов

Непрочитанное сообщение f_andrey » 2009-06-28 3:54:53

mediamag писал(а):вот мой sysctl.conf на всякий
А зачем вы вот это все туда напихали? и как система ведет себя ведет система без этого?
Если ваша тема перенесена, то смотри http://forum.lissyara.su/viewtopic.php?f=1&t=32308

Аватара пользователя
LMik
капитан
Сообщения: 1852
Зарегистрирован: 2007-07-17 9:14:39
Откуда: МО
Контактная информация:

Re: Лаги при 500+ конектов

Непрочитанное сообщение LMik » 2009-06-28 4:27:05

Не проще было бы натд задавить на корню?

10% этож вроде многовато, а торенты это pps гигантский.
Последний раз редактировалось LMik 2009-06-28 13:32:39, всего редактировалось 1 раз.
BSD... Join the dark side.
Виpус детям не игpушка, не товаpищ и не дpуг!

mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Re: Лаги при 500+ конектов

Непрочитанное сообщение mediamag » 2009-06-28 13:03:02

если коментирую все эти строки в sysctl.conf - ни помогает....Lmik самое интересное что натд не всегда 10% показывает - сейчас например 0,09 но лагает так же...Расскажите пожалуста поподробнее как задавать нат на корню?

Аватара пользователя
LMik
капитан
Сообщения: 1852
Зарегистрирован: 2007-07-17 9:14:39
Откуда: МО
Контактная информация:

Re: Лаги при 500+ конектов

Непрочитанное сообщение LMik » 2009-06-28 13:33:34

Сори, опечатался, имелось ввиду задавить :)

ng_nat юзать, или ядерный в ipfw.

и покажте ка systat -v 1
BSD... Join the dark side.
Виpус детям не игpушка, не товаpищ и не дpуг!

mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Re: Лаги при 500+ конектов

Непрочитанное сообщение mediamag » 2009-06-28 18:21:51

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

1 users    Load  0.02  0.06  0.02                  Jun 28 18:24

Mem:KB    REAL            VIRTUAL                       VN PAGER   SWAP PAGER
        Tot   Share      Tot    Share    Free           in   out     in   out
Act  121744   11700   307552    17744  767184  count
All  156032   16204  2449316    25080          pages
Proc:                                                            Interrupts
  r   p   d   s   w   Csw  Trp  Sys  Int  Sof  Flt        cow    2300 total
          1  70      4932  120 1285  292 1056             zfod        ata0 irq14
                                                          ozfod       ata1 irq15
 1.5%Sys   1.5%Intr  3.8%User  0.0%Nice 93.2%Idle        %ozfod   113 skc1 irq20
|    |    |    |    |    |    |    |    |    |    |       daefr   179 skc0 ehci0
=+>                                                       prcfr  2008 cpu0: time
                                        20 dtbuf          totfr
Namei     Name-cache   Dir-cache     69726 desvn          react
   Calls    hits   %    hits   %      3568 numvn          pdwak
      47      46  98                   236 frevn          pdpgs
                                                          intrn
Disks   ad0                                        110340 wire
KB/t   0.00                                        106356 act
tps       0                                         32624 inact
MB/s   0.00                                         14468 cache
%busy     0                                        752716 free
                                                   113488 buf
хотелось бы оставить натд..тем более люди утверждают что с натд проблем не бывает и она работает как часы. http://forum.lissyara.su/viewtopic.php? ... 8B#p173181

Аватара пользователя
ExTazZ
рядовой
Сообщения: 27
Зарегистрирован: 2009-05-25 13:46:15
Откуда: Санкт-Петербург
Контактная информация:

Re: Лаги при 500+ конектов

Непрочитанное сообщение ExTazZ » 2009-06-28 22:09:09

Пробуй вкомпелить в ядро natd только если у тебя FreeBSD седьмой ветки - должно меньше систему загружать!
Для этого в конфиг ядра добавь это:

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

options         IPFIREWALL
options         IPFIREWALL_VERBOSE
options         IPFIREWALL_VERBOSE_LIMIT=5
options         IPFIREWALL_FORWARD
options         IPDIVERT
options         DUMMYNET
options         IPFIREWALL_NAT
options         LIBALIAS
options         HZ=1000
options         NBUF=2048
options         MAXDSIZ=(512*1024*1024)
options         DFLDSIZ=(128*1024*1024)

mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Re: Лаги при 500+ конектов

Непрочитанное сообщение mediamag » 2009-06-28 22:23:01

ЕСТЬ ВОПРОСЫ

1.а хуже не будет?

2.какие правила нужны будут для организации ната?
сейчас у меня вот такие

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

${fwcmd} add 1400 divert natd ip from ${intnet} to any out via ${extif}
${fwcmd} add 1450 divert natd ip from any to ${extip} in via ${extif}
3.Как реализовывать редирект на этом нате?

Аватара пользователя
ExTazZ
рядовой
Сообщения: 27
Зарегистрирован: 2009-05-25 13:46:15
Откуда: Санкт-Петербург
Контактная информация:

Re: Лаги при 500+ конектов

Непрочитанное сообщение ExTazZ » 2009-06-29 0:43:28

У меня вот так firewall настроен! Всё работает!

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

#!/bin/sh

fw="/sbin/ipfw -q"                  - бинарник ipfw
Wan0="sis0"                         - внешняя сетевуха
IpWan0="10.10.10.10"             - внешний IP адрес
NetMask24="24"                    - маска локальной сетки
Lan0="rl0"                            - сетевуха смотрящая в локалку
IpLan0="172.16.0.1"              - внутренний IP
NetLan0="172.16.0.0"           - внутреннея сеть

##############Base rules#############################
# Flush rules         - сброс правил
${fw} -f flush
${fw} -f pipe flush
${fw} -f queue flush
${fw} add check-state

# rules for 127.0.0.1 lo0           - тут думаю всё понятно это настройки интерфейса обратной петли
${fw} add allow ip from any to any via lo0
${fw} add deny ip from any to 127.0.0.0/8
${fw} add deny ip from 127.0.0.0/8 to any

${fw} add allow icmp from any to any icmptypes 0,8,11       - разрешаем некоторые icmp запросы
${fw} add allow tcp from any to any established               - Выпускаем сервер в инет
${fw} add allow ip from ${IpWan0} to any out xmit ${Wan0}    - Выпускаем сервер в инет
${fw} add allow udp from any 53 to any via ${Wan0}              - Открываем DNS для сервера
${fw} add allow udp from any to any 123 via ${Wan0}            - Синхронизация времени
${fw} add allow tcp from any to ${IpWan0} 49152-65535 via ${Wan0} -  Открывем сереверу доступ по FTP

# base deny rules for WAN            - IP адреса которые не должны быть в инете! Только убери отсюда свою локалку, у меня не работало!
${fw} add deny ip from any to 10.0.0.0/8 in via ${Wan0}
#${fw} add deny ip from any to 172.16.0.0/12 in via ${Wan0}
${fw} add deny ip from any to 192.168.0.0/16 in via ${Wan0}
${fw} add deny ip from any to 0.0.0.0/8 in via ${Wan0}
${fw} add deny ip from any to 169.254.0.0/16 in via ${Wan0}
${fw} add deny ip from any to 224.0.0.0/4 in via ${Wan0}
${fw} add deny ip from any to 240.0.0.0/4 in via ${Wan0}
${fw} add deny icmp from any to any frag
${fw} add deny log icmp from any to 255.255.255.255 in via ${Wan0}
${fw} add deny log icmp from any to 255.255.255.255 out via ${Wan0}
${fw} add deny ip from 10.0.0.0/8 to any out via ${Wan0}
${fw} add deny ip from 172.16.0.0/12 to any out via ${Wan0}
${fw} add deny ip from 192.168.0.0/16 to any out via ${Wan0}
${fw} add deny ip from 0.0.0.0/8 to any out via ${Wan0}
${fw} add deny ip from 169.254.0.0/16 to any out via ${Wan0}
${fw} add deny ip from 224.0.0.0/4 to any out via ${Wan0}
${fw} add deny ip from 240.0.0.0/4 to any out via ${Wan0}

############# END Base rules#########################

${fw} nat 777 config ip ${IpWan0} log same_ports \               - включение NAT и указываем IP и порт и куда перебрасывать
redirect_port tcp172.16.0.2:2202 10.10.10.10:2202 \               - переброс порта 2202 на локальную машину
redirect_port tcp 172.16.0.2:80 10.10.10.10:80                             - переброс порта 80
${fw} add nat 777 tcp from 172.16.0.2 2202 to any                 - для переброски порта
${fw} add nat 777 tcp from any to 172.16.0.2 2202                  - для переброски порта
${fw} add nat 777 all from ${NetLan0}/${NetMask24} to any out via ${Wan0}      - заворачиваем локалку в NAT
${fw} add nat 777 all from any to ${IpWan0} in via ${Wan0}       - тоже необходимо для NAT

# Rules for Lan iface                    -разрешаем трафик на локальном интерфейсе
${fw} add allow ip from any to ${NetLan0}/${NetMask} in via ${Lan0}
${fw} add allow ip from ${NetLan0}/${NetMask24} to any out via ${Lan0}
# Rules for DNS servers

${fw} add allow udp from ${NetLan0}/${NetMask24} to any 53 in via ${Lan0}    - Правила для DNS серверов если конечно они у тебя не в локалке!
${fw} add allow udp from any 53 to ${NetLan0}/${NetMask24} out via ${Lan0}

############## BEGIN USERS ########################

# User 1
${fw} add allow tcp from 192.168.0.2 to any 80,22,21,20,25,443 in via ${Lan0} setup    - указываем IP юзверя и порты сервисов которые будут доступны ему из инета

############## End BEGIN USERS ######################

${fw} add allow tcp from any to ${IpWan0} 22 via ${Wan0}           - Открывем себе доступ не сервер на пример по SSH

${fw} add deny ip from any to any         - Рубим всё что не попало под правила frewall'a!
P.S. настрой firewall до того как перезагрузишься с новым ядром иначе придётся бежать в серверную! :crazy:

mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Re: Лаги при 500+ конектов

Непрочитанное сообщение mediamag » 2009-06-29 15:03:12

1.расскажи плиз поподробнее про правила которые начинаются со слова nat ..
почему их так много?
2.почему 777?

3. В rc.conf чтото дописывать или изменять нужно?

Аватара пользователя
ExTazZ
рядовой
Сообщения: 27
Зарегистрирован: 2009-05-25 13:46:15
Откуда: Санкт-Петербург
Контактная информация:

Re: Лаги при 500+ конектов

Непрочитанное сообщение ExTazZ » 2009-06-29 21:54:01

777 - это просто номер правила nat можешь поставит любое хоть 666! :smile:

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

Сдесь намом деле одна строка а не три! Включет nat под номером 777! Если не надо пепекидывать порты оставь так "${fw} nat 777 config ip ${IpWan0} log same_ports"
${fw} nat 777 config ip ${IpWan0} log same_ports redirect_port tcp 172.16.0.2:2202 10.10.10.10:2202
# Эти два правила нужны если решил перебросить порт в данном случае порт 2202 иначе работать не будет
${fw} add nat 777 tcp from 172.16.0.2 2202 to any
${fw} add nat 777 tcp from any to 172.16.0.2 2202
# Эти два правила нужны если у тебя есть локалка, если их не будет работать NAT для локалки!
${fw} add nat 777 all from ${NetLan0}/${NetMask24} to any out via ${Wan0}
${fw} add nat 777 all from any to ${IpWan0} in via ${Wan0} 
В принципе всё!
А так читай мануалы по ipfw!

Аватара пользователя
skeletor
майор
Сообщения: 2507
Зарегистрирован: 2007-11-16 18:22:04
Откуда: Kiev
Контактная информация:

Re: Лаги при 500+ конектов

Непрочитанное сообщение skeletor » 2009-06-30 10:39:46

schizoid писал(а):

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

allow ip from any to any via rl0 limit src-addr 40
т.е. на каждого клиента из сети максимум 40 tcp и udp сессии
rl0- внутренний интерфейс
количесвто сессий сами уж решайте
Это ничего не даст, особенно против торрентов! Проверял, даже если ставить количество коннектов 1! Всё равно начинается скачка торрентов.
"Винда съела дрова и резет здесь не фурычит."
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих фалов вообще нет!"

Аватара пользователя
schizoid
подполковник
Сообщения: 3228
Зарегистрирован: 2007-03-03 17:32:31
Откуда: Украина, Чернигов
Контактная информация:

Re: Лаги при 500+ конектов

Непрочитанное сообщение schizoid » 2009-06-30 10:48:00

почему-то у меня дает.

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

# tail -f /var/log/security
Jun 30 10:47:02 gate kernel: ipfw: 8400 drop session 192.168.0.125:1170 -> 95.135.98.97:22483, too many entries
Jun 30 10:47:02 gate kernel: ipfw: 8400 drop session 192.168.0.125:1179 -> 95.54.212.196:26118, too many entries
Jun 30 10:47:03 gate kernel: ipfw: 8400 drop session 192.168.0.125:1182 -> 94.178.163.191:41380, too many entries
Jun 30 10:47:05 gate kernel: ipfw: 8400 drop session 192.168.0.125:1183 -> 95.134.87.20:27360, too many entries
Jun 30 10:47:06 gate kernel: ipfw: 8400 drop session 192.168.0.125:1182 -> 94.178.163.191:41380, too many entries
Jun 30 10:47:08 gate kernel: ipfw: 8400 drop session 192.168.0.125:1183 -> 95.134.87.20:27360, too many entries
т.е. торенты работают, мне их резать не нужно, но количество соединений ограничено
ядерный взрыв...смертельно красиво...жаль, что не вечно...