Ставить новую сетевую, проц или тюнинг?

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

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
blackjackchik
мл. сержант
Сообщения: 90
Зарегистрирован: 2008-06-13 12:56:54

Ставить новую сетевую, проц или тюнинг?

Непрочитанное сообщение blackjackchik » 2010-02-18 15:39:00

всем привет
шлюз на

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

FreeBSD gw.cn.km.ua 7.2-RELEASE-p6 FreeBSD 7.2-RELEASE-p6 #3: Mon Feb 15 16:17:44 EET 2010     admin@gw.cn.km.ua:/usr/obj/usr/src/sys/GATE  i386
при 120 мегабитах входящего трафика цпу идле уже равно 0.

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

last pid: 23832;  load averages:  5.55,  5.46,  5.08                                                                                            up 0+02:23:30  14:32:41
112 processes: 7 running, 87 sleeping, 18 waiting
CPU:  1.1% user,  0.0% nice, 98.2% system,  0.5% interrupt,  0.2% idle
Mem: 559M Active, 13M Inact, 166M Wired, 192K Cache, 23M Buf, 1259M Free
Swap: 5120M Total, 5120M Free

  PID USERNAME   THR PRI NICE   SIZE    RES STATE  C   TIME   WCPU COMMAND
   47 root         1  43    -     0K     8K RUN    1  58:36 76.07% em1_rx_kthread_1
   46 root         1  43    -     0K     8K CPU1   0  58:29 75.59% em1_rx_kthread_0
   36 root         1  43    -     0K     8K RUN    0  22:35 21.19% em0_rx_kthread_0
   37 root         1  43    -     0K     8K RUN    1  22:36 20.75% em0_rx_kthread_1
 3999 root         1  60  -15  9964K  7996K select 1   2:11  0.98% perl5.8.9
   45 root         1 -68    -     0K     8K WAIT   1   1:37  0.39% em1_txcleaner
 3998 root         1   8  -15 10552K  8688K nanslp 0   1:28  0.29% perl5.8.9
   14 root         1 -32    -     0K     8K WAIT   1   1:23  0.10% swi4: clock sio
   12 root         1 171 ki31     0K     8K RUN    0  30:09  0.00% idle: cpu0
   55 root         1 -68    -     0K     8K -      0  29:11  0.00% dummynet
   11 root         1 171 ki31     0K     8K RUN    1  26:38  0.00% idle: cpu1
грешил на драйвера сетевух, собрал яндексовые и с ними тоже самое.

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

netstat -w1 -h -I em1
            input          (em1)           output
   packets  errs      bytes    packets  errs      bytes colls
       56K     0        12M        56K     0        10M     0
       57K     0        12M        58K     0        10M     0
       58K     0        12M        59K     0        10M     0
       58K     0        12M        59K     0        10M     0
       51K     0        12M        52K     0        10M     0
       58K     0        12M        58K     0       9.9M     0
       58K     0        12M        58K     0       9.7M     0
       58K     0        12M        57K     0       9.6M     0
проц

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

CPU: Intel(R) Pentium(R)  CPU       E5400  @ 2.70GHz (2700.02-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x1067a  Stepping = 10
  Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
  Features2=0x309<SSE3,MON,TM2,SSSE3>
  AMD Features=0x20100000<NX,LM>
  AMD Features2=0x1<LAHF>
  Cores per package: 2
real memory  = 2146304000 (2046 MB)
avail memory = 2090627072 (1993 MB)
ACPI APIC Table: <GBT    GBTUACPI>
FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
 cpu0 (BSP): APIC ID:  0
 cpu1 (AP): APIC ID:  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/



Ух-ух
проходил мимо

Re: Ставить новую сетевую, проц или тюнинг?

Непрочитанное сообщение Ух-ух » 2010-02-18 17:27:31

На PF переходи или проц меняй.


Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: Ставить новую сетевую, проц или тюнинг?

Непрочитанное сообщение hizel » 2010-02-18 17:46:36

где x порядкоовый номер

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

sysctl dev.em.х.tx_int_delay=250
sysctl dev.em.х.rx_abs_int_delay=250
sysctl dev.em.х.tx_abs_int_delay=250
sysctl dev.em.х.rx_processing_limit=4000
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

blackjackchik
мл. сержант
Сообщения: 90
Зарегистрирован: 2008-06-13 12:56:54

Re: Ставить новую сетевую, проц или тюнинг?

Непрочитанное сообщение blackjackchik » 2010-02-18 17:57:35

сделал, не помогло

Ух-ух
проходил мимо

Re: Ставить новую сетевую, проц или тюнинг?

Непрочитанное сообщение Ух-ух » 2010-02-18 18:17:46

blackjackchik писал(а):не могу перейти на пф
http://forum.lissyara.su/viewtopic.php?f=8&t=23956
Во блин! Не знал!
Ставь нормальный поцессор.

arkan
ст. прапорщик
Сообщения: 559
Зарегистрирован: 2008-08-03 19:58:13
Откуда: Новосибирск
Контактная информация:

Re: Ставить новую сетевую, проц или тюнинг?

Непрочитанное сообщение arkan » 2010-02-19 5:28:32

Если машинко слабовата то может попробывать IPNAT

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: Ставить новую сетевую, проц или тюнинг?

Непрочитанное сообщение terminus » 2010-02-19 18:24:03

http://groups.google.kz/group/fido7.ru. ... 12f2e7f125?
21 янв 2009, среда, в 14:17 KRAT, Valentin Davydov написал(а):

VD> 2EG: а ты по листам рассылки смотрел? Там эту тему раз в пару лет
VD> подымают,
VD> и называли цифры то 600, а то и 750 (последнюю - не совсем понятно в каком
VD> контексте).

Стабильно 742Kpps я научился получать, иногда всплески чуть больше.
Hо это только в режиме поллинга, потому что одно ядро получается загружено
полностью и в режиме прерываний переключения контекста сьедают
производительность.

1) Читаем man polling. По дефолту параметры поллинга заточены
под 100Mbit, для гигабита их надо поменять. Грубо говоря, при использовании
поллинга каждый тик таймера (с частотой HZ) драйвер получает возможность
послать/принять из железа определенное количество пакетов, не более
чем HZ*kern.polling.burst_max, причем для увеличения burst_max в ядре
прописан жесткий предел в 1000. Без увеличения HZ достигнуть 700Kpps
на своем железе я не смог, а 750Kpps только при HZ=4000.

Пишем в /boot/loader.conf:
kern.hz=4000

Для тестового потока через один интерфейс:

sysctl kern.polling.each_burst=1000
sysctl kern.polling.burst_max=1000

2) Hастраиваем драйвер сетевой карты.

Каждый такой драйвер в FreeBSD имеет очередь (FIFO), в которую верхние
слои сетевого стека складывают пакеты, из неё данные прямиком идут в чип
сетевой карты. Если места в этой FIFO нет, пакеты остаются в буферах стека,
ожидая, пока железо разгребет очередь. Для уменьшения задержек можно
увеличить размер этой очереди. По умолчанию в драйвере em он равен
256 пакетам, для большинства обслуживаемых драйвером em сетевых он может
быть увеличен до 4096 (кроме чипов 82542 и 82543 - максимум 256)
через /boot/loader.conf, отдельно для приёма и передачи:

hw.em.rxd=4096
hw.em.txd=4096

Бесплатно ничего не бывает, и каждый элемент очереди состоит из дескриптора
в 16 байт, а для приемной очереди ещё и из буфера - с учетом того,
что максимальный MTU равен 16110 байт. Так что такая приёмная очередь
может занять почти 64Mb ядерной памяти под буфера.
А в стеке IP есть ещё ограничение net.inet.ip.intr_queue_maxlen,
максимальаня длина приёмной очереди, при переполнении которой стек
дропает входящие пакеты, по дефолту 50, можно тоже увеличить до 4096.

3) Собственно простейший бенчмарк на основе ng_source:

#!/bin/sh

stop_and_show() {

ngctl msg em0:orphans stop

ngctl msg em0:orphans getstats

ngctl shutdown em0:orphans

}

trap "stop_and_show; exit 1" SIGINT SIGTERM

ngctl mkpeer em0: source orphans output

nghook em0:orphans input < packet.cap

ngctl msg em0:orphans start 100000000

sleep 60

stop_and_show
#EOF

Для его работы надо изготовить IP-пакет, который будет посылаться непрерывно
в течение теста и положить в packet.cap (со всеми заголовками IP).
Запускаем: ./bench, ждем 60 секунд (можно прервать раньше по Ctrl-C)
и видим приблизительно следующее:

nghook: EOF(stdin)
Rec'd response "getstats" (1) from "[73]:":
Args: { outOctets=4736425984 outFrames=44683264 queueOctets=106
queueFrames=1 startTime={ tv_sec=1232569999 tv_usec=871790 } endTime={
tv_sec=1232570060 tv_usec=62699 } elapsedTime={ tv_sec=60 tv_usec=190909 }
lastTime={ tv_sec=1232569999 tv_usec=871790 } }

Берем значение outFrames - сколько фреймов успели послать и делим
на прошедшее время elapsedTime: 44683264/60.190909 = 742359pps, или 772Mbps.

Eugene
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Гость
проходил мимо

Re: Ставить новую сетевую, проц или тюнинг?

Непрочитанное сообщение Гость » 2010-02-19 19:51:07

Привет
Значит так друзья.
Заметил закономерность, если ставлю

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

net.isr.direct=1
или

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

net.inet.ip.fastforwarding=1
то начитнаются дропы пакетов
если ставлю оба параметра в 0, то ни единой ошибки, но входщий трафик падает на процентов 25 а исход на 50 %.

blackjackchik
мл. сержант
Сообщения: 90
Зарегистрирован: 2008-06-13 12:56:54

Re: Ставить новую сетевую, проц или тюнинг?

Непрочитанное сообщение blackjackchik » 2010-02-19 19:54:29

примерно вот так

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

            input          (em0)           output
   packets  errs      bytes    packets  errs      bytes colls
       18K     0        14M        12K     0       2.3M     0
       17K     0        13M        11K     0       2.1M     0
       17K     0        12M        12K     0       2.1M     0
       17K     0        13M        12K     0       2.1M     0
^C
[root@gw /home/admin]# sysctl net.inet.ip.fastforwarding=1
net.inet.ip.fastforwarding: 0 -> 1
[root@gw /home/admin]# netstat -h -w1 -I em0
            input          (em0)           output
   packets  errs      bytes    packets  errs      bytes colls
       25K   128        18M        20K     0       4.7M     0
       26K    36        18M        19K     0       4.6M     0
       25K   125        18M        19K     0       4.4M     0
       25K   256        18M        18K     0       4.2M     0

Аватара пользователя
Laa
ст. лейтенант
Сообщения: 1032
Зарегистрирован: 2008-02-21 18:25:33
Откуда: Украина, Россия

Re: Ставить новую сетевую, проц или тюнинг?

Непрочитанное сообщение Laa » 2010-03-03 15:03:38

Слушай, а вот карточки emX бывают разные.
Покажи pciconv -lcv для своих сетевушек.

В /boot/loader.conf поставил значения?

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

hw.em.rxd=4096
hw.em.txd=4096 
exim: помните, что выдавая deny, вы можете недоставить ваше же письмо, зарубив sender-verify удаленного MTA к вашему MTA!!!

blackjackchik
мл. сержант
Сообщения: 90
Зарегистрирован: 2008-06-13 12:56:54

Re: Ставить новую сетевую, проц или тюнинг?

Непрочитанное сообщение blackjackchik » 2010-03-03 15:43:26

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

em0@pci0:3:0:0:	class=0x020000 card=0x10828086 chip=0x107d8086 rev=0x06 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = 'PRO/1000 PT'
    class      = network
    subclass   = ethernet
    cap 01[c8] = powerspec 2  supports D0 D3  current D0
    cap 05[d0] = MSI supports 1 message, 64 bit enabled with 1 message
    cap 10[e0] = PCI-Express 1 endpoint
em1@pci0:6:1:0:	class=0x020000 card=0x002e8086 chip=0x100e8086 rev=0x02 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '82540EM Gigabit Ethernet Controller'
    class      = network
    subclass   = ethernet
    cap 01[dc] = powerspec 2  supports D0 D3  current D0
    cap 07[e4] = PCI-X supports 2048 burst read, 1 split transaction
    cap 05[f0] = MSI supports 1 message, 64 bit 
поставил но сервер еще не перезагружался, поэтому пока эффекта от этого нет. Частично виной проблемы был юдп трафик который вырос полсе обновления торрент клиентов до версии 2. На графике видно как упали ошибки после запрета юдп.
Вложения
graph_image.php.png
Последний раз редактировалось blackjackchik 2010-03-03 15:51:03, всего редактировалось 1 раз.

Аватара пользователя
Laa
ст. лейтенант
Сообщения: 1032
Зарегистрирован: 2008-02-21 18:25:33
Откуда: Украина, Россия

Re: Ставить новую сетевую, проц или тюнинг?

Непрочитанное сообщение Laa » 2010-03-03 15:50:37

Еще сделайте попробуйте так:

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

sysctl dev.em.0.debug=1
sysctl dev.em.1.debug=1
затем посмотрите выводы

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

sysctl -a|grep ^em0
sysctl -a|grep ^em1
сравните значения Packet buffer для каждой из ваших карточек. На хороших и дорогих карточках значения выше, imho.
Последний раз редактировалось Laa 2010-03-03 15:52:55, всего редактировалось 1 раз.
exim: помните, что выдавая deny, вы можете недоставить ваше же письмо, зарубив sender-verify удаленного MTA к вашему MTA!!!

blackjackchik
мл. сержант
Сообщения: 90
Зарегистрирован: 2008-06-13 12:56:54

Re: Ставить новую сетевую, проц или тюнинг?

Непрочитанное сообщение blackjackchik » 2010-03-03 15:52:47

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

[root@gw /home/admin]# sysctl -a|grep em0
em0: Adapter hardware address = 0xc5618218 
em0: CTRL = 0x400c0241 RCTL = 0x8002 
em0: Packet buffer = Tx=16k Rx=32k 
em0: Flow control watermarks high = 30720 low = 29220
em0: tx_int_delay = 244, tx_abs_int_delay = 244
em0: rx_int_delay = 244, rx_abs_int_delay = 244
em0: fifo workaround = 0, fifo_reset_count = 0
em0: hw tdh = 37, hw tdt = 37
em0: hw rdh = 68, hw rdt = 54
em0: Num Tx descriptors avail = 254
em0: Tx Descriptors not avail1 = 0
em0: Tx Descriptors not avail2 = 0
em0: Std mbuf failed = 0
em0: Std mbuf cluster failed = 0
em0: Driver dropped packets = 0
em0: Driver tx dma failure in encap = 0
[root@gw /home/admin]# sysctl -a|grep em1
em1: Adapter hardware address = 0xc5671218 
em1: CTRL = 0x58340249 RCTL = 0x8002 
em1: Packet buffer = Tx=16k Rx=48k 
em1: Flow control watermarks high = 47104 low = 45604
em1: tx_int_delay = 244, tx_abs_int_delay = 244
em1: rx_int_delay = 244, rx_abs_int_delay = 244
em1: fifo workaround = 0, fifo_reset_count = 0
em1: hw tdh = 222, hw tdt = 222
em1: hw rdh = 108, hw rdt = 107
em1: Num Tx descriptors avail = 256
em1: Tx Descriptors not avail1 = 81422
em1: Tx Descriptors not avail2 = 0
em1: Std mbuf failed = 0
em1: Std mbuf cluster failed = 0
em1: Driver dropped packets = 0
em1: Driver tx dma failure in encap = 0

Аватара пользователя
Laa
ст. лейтенант
Сообщения: 1032
Зарегистрирован: 2008-02-21 18:25:33
Откуда: Украина, Россия

Re: Ставить новую сетевую, проц или тюнинг?

Непрочитанное сообщение Laa » 2010-03-03 15:54:20

Посмотрите разницу:

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

em0: Packet buffer = Tx=16k Rx=32k 
...
em1: Packet buffer = Tx=16k Rx=48k 
exim: помните, что выдавая deny, вы можете недоставить ваше же письмо, зарубив sender-verify удаленного MTA к вашему MTA!!!

blackjackchik
мл. сержант
Сообщения: 90
Зарегистрирован: 2008-06-13 12:56:54

Re: Ставить новую сетевую, проц или тюнинг?

Непрочитанное сообщение blackjackchik » 2010-03-03 17:28:26

так, разницу увидел, а просветите меня пожалуйста сколько надо буфера чтобы могло перелопатить 500-1000м трафика и подскажите модель сетевушки.

Аватара пользователя
Laa
ст. лейтенант
Сообщения: 1032
Зарегистрирован: 2008-02-21 18:25:33
Откуда: Украина, Россия

Re: Ставить новую сетевую, проц или тюнинг?

Непрочитанное сообщение Laa » 2010-03-03 18:39:06

Я читал, что теоретически шина pci может переварить до 1гбита. Это вся шина. Ну или около 1гбит. Если у вас две сетевушки, то получается теоретический предел 500мбит на каждой или 1гбит в сумме. Реально должно быть меньше, так как на шине сидят еще устройства, есть еще потребители как аппаратные, так и программные (нат, файервол и тд). На шине pci-e/pci-x пределы выше. Опять же, хорошо бы отключать все лишнее в биосе (звук, усб, лпт и тд и тп, все то, что не будет использоваться). Нужны мощне процессоры и классное охлаждение. Сетевушки интел не все хорошие, но четко знаю, что сетевушки ...Intel Server adapter .. лучше чем ...Intel Desktop adapter...

Думаю, что стоит для дальнейшего развития вам завести сервер (лучше именно сервер, а не ПК) с шиной pci-e (4x-8x-16x) и с хорошим процессором, на эту шину поставьте сетевушку с двумя портами, например Intel® PRO/1000 MT Dual Port Server Adapter (сам пока такую не юзал, еще руки не дошли, но выбрал на будущее такую), а может быть и будет у вас на сервере пара встроенных сетевух (зависит от сервера). Ну и подтюньте как тут рекомендуют ядро и систему.

У меня сейчас переливается пока около 150мбит интернета с учетом ната и файервола. Больше пока клиенты не гребут. :sorry: Сервер на 2x Intel Xeon 3.00Ghz с двумя набортными сетевушками в шине pci-x.

Все сказанное -- IMHO, критика приветствуется.
exim: помните, что выдавая deny, вы можете недоставить ваше же письмо, зарубив sender-verify удаленного MTA к вашему MTA!!!

blackjackchik
мл. сержант
Сообщения: 90
Зарегистрирован: 2008-06-13 12:56:54

Re: Ставить новую сетевую, проц или тюнинг?

Непрочитанное сообщение blackjackchik » 2010-03-03 20:54:44

вот на графике видно что сейчас переваривает сервер, это с натом, шейпером думминет и 3 фуллвью.
насчет шины pci вот здесь когдато я поднимал эту тему http://local.com.ua/forum/topic/13989-n ... ntry106433

так вот после смены сервера на новый, та же сетевая карта может перетравить и больше.
Вложения
graph_image.php.png