Лаги при 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
майор
Сообщения: 2547
Зарегистрирован: 2007-11-16 18:22:04

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! Всё равно начинается скачка торрентов.

Аватара пользователя
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
т.е. торенты работают, мне их резать не нужно, но количество соединений ограничено
ядерный взрыв...смертельно красиво...жаль, что не вечно...