URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID15
Нить номер: 112
[ Назад ]

Исходное сообщение
"Производительность FreeBSD 4.8 vs 5.4, сеть"

Отправлено Klice , 01-Фев-06 18:09 
Недавно сделал усилие и перенес сервер между локалками с FreeBSD 4.8 на 5.4 и вот что заметил. Хотя и сервак довольно хламовый (Celeron 500, 160Mb RAM, две интеловские сетевухи), но на 4.8 обеспечивал NAT между интерефесами на скорости 9Mb/s (при включенном polling и 100% загрузке CPU). От 5.4 ожидал примерно того же. Однако на 5ой БСД скорость НАТа упала более чем в двое, т.е. сейчас реально можно прокачать 3Mb/s, и это при влюченном polling режиме и полной загрузке проца.

Причем polling стал работать достаточно странно. Если на 4.8 загрузка при включенном polling по прирываям даже при максимальной скорости составляла 5-10%, а при бездействии вообще 0%, то в 5.4 даже при бездействии загрузка по прирываниям около 5%, если выключить polling то при бездействии нагрузка по прирываниям становиться тоже около 0%, но и максимальная скорость падает до 2Mb/s. Мне кажеться это не правельным. Где что можно подкрутить что было "как былО"?

Ядра имеют примерно одну и ту же кофигурацию с оглядкой на отличия между 5ой и 4ой ветками. Правила IPFW вообще одинаковы (скрипты были просто скопированны). Серисы тоже одинаковы, на 5.4 даже пока не установленно многое из того, что было на 4.8. Да и вообще как-то на 5.4 все медленне работает, при компиляции даже относительно не большой проги загрузка проца  под 100%.

# uname -a
FreeBSD xxx.xxx.ru 5.4-RELEASE-p9

Зарание спасибо.


Содержание

Сообщения в этом обсуждении
"Производительность FreeBSD 4.8 vs 5.4, сеть"
Отправлено smb , 01-Фев-06 21:47 
>Да и вообще как-то на 5.4 все медленне работает, при компиляции даже :>относительно не большой проги загрузка проца  под 100%.

Другой memory allocator, другой планировщик - и вот результат...:D
Не факт, конечно, надо смотреть и копать....Загрузка памяти большая?В 4-ке  хорошая работа при малом кол-ве памяти, спасибо Matthew Dillon-y и остальным, в пятерке - хз.....(если кто грамотно расскажет - респектну сильно)


"Производительность FreeBSD 4.8 vs 5.4, сеть"
Отправлено Klice , 04-Фев-06 09:19 
Что-то я вообще ни чего не понимаю... Пробовал играться с включением/выключением polling. Такое ощение, что он не работает вообще, по крайней мере толку ни какого. Да, vmstat -i при включенном пуллинге показывает, что прирывания на сетевухах не растут, но загрузка проца ни как не падает!


"Производительность FreeBSD 4.8 vs 5.4, сеть"
Отправлено rWizard , 05-Фев-06 12:03 
попробуйте "ядерный" NAT - ipnat+ipfilter или pf

"Производительность FreeBSD 4.8 vs 5.4, сеть"
Отправлено Klice , 05-Фев-06 13:16 
>попробуйте "ядерный" NAT - ipnat+ipfilter или pf

Да, уже поставил, скорость выросла, но в основном за счет снижения наргузок связанных с НАТом, загрузка по прирываниям так и осталась большой.. Гуглил по это поводу, нашел только то, что да, в ветке 5.х расходы на передачу пакетов выросли, свзянно это с подгонкой под мультипроцессорные системы... хоть обратно 4.8 ставь..


"Производительность FreeBSD 4.8 vs 5.4, сеть"
Отправлено rWizard , 05-Фев-06 19:42 
Попробуйте произвести какую-нибуть оптимизацию, тк 3MB/s - на мой взгляд маловато. Что-то конкретное посоветовать не могу (нет времени искать ), но у меня сейчас 5.3 на p2-400, 128 RAM делает NAT,Shaping (~200 очередей) ~15Mbit/s

ядро -
maxusers 512

device pf
options         ALTQ
options         ALTQ_CBQ        # Class Bases Queueing
options         ALTQ_RED        # Random Early Drop

без polling (сетевушки intel) c link0


"Производительность FreeBSD 4.8 vs 5.4, сеть"
Отправлено Klice , 07-Фев-06 08:23 
Вот что интересно, вот вывод вмстат при включенном пуллинге и почти полном бездействии сети:

# vmstat 5
procs      memory      page                    disks     faults      cpu
r b w     avm    fre  flt  re  pi  po  fr  sr ad0 ad2   in   sy  cs us sy id
1 1 0  104132  80508  165   1   2   0 129   0   0   0 59581  400 4173  2 13 85
0 1 0  104132  80508    1   0   0   0   1   0   1   0 61943   61 4268  0  9 91
0 1 0  107092  79192   68   0   0   0   6   0   2   0 61549  317 4265  6 10 84
0 1 0  107088  79200   13   0   0   0  13   0   1   0 61877   97 4264  1  8 91
0 3 0  122864  71312  579   0   2   0 135   0  23   0 60507 2211 4303 48 32 20
0 1 0  109644  76424  263   0   1   0 492   0  16   0 58683  647 4285  9 22 69
0 1 0  109664  76376   85   0   0   0  75   0   0   0 54379  245 3844  2 11 88

Теперь выключаем пулиинг:

0 1 0  109664  76364  113   0   0   0  82   0   3   0 2343  171 494  3  2 95
0 1 0  109664  76364   36   0   0   0  33   0  14   0 2362  110 538  1  2 97
1 2 0  118232  70448  392   0   0   0 106   0  12   0 2358  852 545 36  8 56
0 1 0  109688  73908  945   0   2   0 910   0  12   0 2372  933 571 33 29 38
0 1 0  109688  73908   11   0   0   0  11   0   0   0 2334  109 473  0  1 98
0 1 0  109688  73904   11   0   0   0  11   0   0   0 2347  231 501  0  2 98
0 1 0  109688  73904    0   0   0   0   0   0   6   0 2334   56 475  0  1 99
0 1 0  109688  73904    0   0   0   0   3   0   7   0 2348   65 506  0  2 98
0 1 0  109688  73904    0   0   0   0   2   0   3   0 2324   52 454  0  1 99

Прерывания и там и там по моему завышенны, но 60000 это уж очень через чур. Причем все врмя один процесс блокированн, как можно узнать, что это за процесс и из-за чего он блокированн?


"Производительность FreeBSD 4.8 vs 5.4, сеть"
Отправлено rWizard , 08-Фев-06 10:42 
по поводу прерываний и polling -
в 5.4 polling нужно включать отдельно на интерфейсе а-ла
ifconfig fxp0 polling (естественно, при имеющимся options DEVICE_POLLING и sysctl kern.polling.enable=1 )

"Производительность FreeBSD 4.8 vs 5.4, сеть"
Отправлено tor , 15-Фев-06 13:56 
>по поводу прерываний и polling -
>в 5.4 polling нужно включать отдельно на интерфейсе а-ла
>ifconfig fxp0 polling (естественно, при имеющимся options DEVICE_POLLING и sysctl kern.polling.enable=1 )
>
Проверь значение HZ это первое ...
И у полинга есть значение % от загрузки канала при котором он включается по умолчанию в 5 это 50% если у тебя линки 100М то неудивительно ...
Настраивается через sysctl ...


"Производительность FreeBSD 4.8 vs 5.4, сеть"
Отправлено Klice , 16-Фев-06 18:51 
# ifconfig
fxp0: flags=18843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,POLLING> mtu 1500
        options=48<VLAN_MTU,POLLING>
        inet x.x.x.x netmask 0xffffff80 broadcast x.x.x.x
        ether 00:a0:c9:df:62:7d
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
fxp1: flags=18843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,POLLING> mtu 1500
        options=48<VLAN_MTU,POLLING>
        inet x.x.x.x netmask 0xffffffc0 broadcast x.x.x.x
        ether 00:08:c7:3a:20:1e
        media: Ethernet 100baseTX <full-duplex>
        status: active

# sysctl kern.polling
kern.polling.idlepoll_sleeping: 1
kern.polling.stalled: 104
kern.polling.suspect: 1227875
kern.polling.phase: 0
kern.polling.enable: 1
kern.polling.handlers: 2
kern.polling.residual_burst: 0
kern.polling.pending_polls: 0
kern.polling.lost_polls: 4554234
kern.polling.short_ticks: 1878
kern.polling.reg_frac: 20
kern.polling.user_frac: 50
kern.polling.poll_in_trap: 0
kern.polling.idle_poll: 0
kern.polling.burst_max: 150
kern.polling.each_burst: 5
kern.polling.burst: 150

# sysctl kern.clockrate
kern.clockrate: { hz = 1000, tick = 1000, profhz = 1024, stathz = 128 }

Что тут можно подкруть?