Перейти к содержимому
Калькуляторы

Freebsd 7.0 - NAS server \ проблема с SMP

Мы после оптимизации ipfw/dummynet будем потихоньку активировать smp, смотреть что будет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Для тех, кто следит за темой.

 

Оптимизация ipfw привела лишь к снижению нагрузки на CPU, зависания всё равно имели место быть. Сейчас система работает без сбоев более двух суток при полной загрузке (все юзеры со всех NAS специально заведены в один). Что сделали с момента последнего зависания:

 

[*] FreeBSD 7.1-STABLE #0: Fri Jan 16 15:51:48 MSK 2009

[*] portupgrade mpd 5.1 -> mpd 5.2

[*] GENERIC (SMP)

 

Уверен, что из этих пунктов самым важным является второй. Перерыли весь инет, но Changelog для mpd 5.2 так и не нашли и не узнали, что было изменено.

 

Еще спустя некоторое время отпишусь по ситуации, как подкопится аптайм.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Уверен, что из этих пунктов самым важным является второй. Перерыли весь инет, но Changelog для mpd 5.2 так и не нашли и не узнали, что было изменено.

http://mpd.sourceforge.net/doc5/mpd4.html#4

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Уверен, что из этих пунктов самым важным является второй. Перерыли весь инет, но Changelog для mpd 5.2 так и не нашли и не узнали, что было изменено.
http://mpd.sourceforge.net/doc5/mpd4.html#4

Changes since version 5.1

В моем понимании, это изменения, вступившие в силу с момента выхода версии 5.1. А я ищу Changelog для версии 5.2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

since, как мне подсказывает гуголь, переводится "с тех пор". В приминении к ману - это означает "изменения с тех пор как вышла версия ..."

Так что это чейнджлог для 5.2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Уверен, что из этих пунктов самым важным является второй. Перерыли весь инет, но Changelog для mpd 5.2 так и не нашли и не узнали, что было изменено.
http://mpd.sourceforge.net/doc5/mpd4.html#4

Changes since version 5.1

В моем понимании, это изменения, вступившие в силу с момента выхода версии 5.1. А я ищу Changelog для версии 5.2

не правильно понимаете.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

сущ 2 машины freebsd , mpd5.2

 

выполняют nat,dummynet через ng_nat , правила ipfw одинаковые

в часы пик практически при одинаковом кол-ве абонентов на 1й большое кол-во потерь, на 2й- все ок

 

машина1 freebsd6.3 core2-duo

vpn1# netstat -w1
            input        (Total)           output
   packets  errs      bytes    packets  errs      bytes colls
     15497   312    7669757      16274     0    7834629     0
     14880   705    7093851      15347     0    6998353     0
4294920320   551 4280058467 4294932663     0 4275962012     0
     16721   498    8511010      17097     0    8312150     0
     16966   240    8514200      17484     0    8444998     0
     15624   616    7780072      16096     0    7606069     0
     15377   510    7780844      16142     0    7938516     0
     16783    51    8380002      17029     0    8141433     0
     17662   308    9262899      18226     0    9246951     0
     15069   397    7364648      15704     0    7405801     0
     14615   853    7012706      15435     0    7248492     0

vpn1# ifconfig | grep ng | wc -l
     615

last pid: 85665;  load averages:  0.83,  0.91,  0.94                                           up 16+06:11:07  21:09:30
125 processes: 5 running, 102 sleeping, 18 waiting
CPU states:  0.9% user,  0.0% nice,  2.4% system, 42.3% interrupt, 54.3% idle
Mem: 165M Active, 350M Inact, 287M Wired, 64K Cache, 108M Buf, 165M Free
Swap: 5120M Total, 5120M Free

  PID USERNAME  THR PRI NICE   SIZE    RES STATE  C   TIME   WCPU COMMAND
   14 root        1 -44 -163     0K     8K CPU0   1 177.5H 86.52% swi1: net
   10 root        1 171   52     0K     8K RUN    1 367.7H 85.55% idle: cpu1
   11 root        1 171   52     0K     8K RUN    0 204.5H 20.80% idle: cpu0
   42 root        1 -68    0     0K     8K -      1 621:45  0.00% dummynet
1131 root        5  20    0 28836K 25532K kserel 1 340:10  0.00% mpd5
   12 root        1 -32 -151     0K     8K RUN    1 254:57  0.00% swi4: clock sio
1014 bind        1  96    0   117M   117M select 1  99:31  0.00% named

 

машина2 freebsd7.0 core2-quard

vpn3# netstat -w1
            input        (Total)           output
   packets  errs      bytes    packets  errs      bytes colls
     19402     0   10522038      20013     0   10569939     0
     19460     0   10947851      20063     0   10765650     0
     11140     0    9603545       8677     0    1634317     0
     18284     0   10224756      18983     0   10183625     0
     18502     0   10606310      19059     0   10509032     0
     18736     0   10537962      19210     0   10427244     0
     18744     0   10481433      19240     0   10307417     0
     18632     0   10557478      19258     0   10601310     0
     19795     0   11110883      19993     0   10712450     0
     19943     0   11362508      20463     0   11248256     0
     18603     0   10727864      19154     0   10711630     0
     18502     0   10801406      18754     0   10437695     0
     18267     0   10939199      18543     0   10515738     0
     17710     0   10096621      18301     0   10195503     0
     19173     0   10847841      19539     0   10673522     0

vpn3# ifconfig | grep ng | wc -l
     510

last pid: 61182;  load averages:  1.02,  0.95,  0.93                         up 0+06:18:06  02:56:32
88 processes:  6 running, 65 sleeping, 17 waiting
CPU states:  0.4% user,  0.0% nice,  0.8% system,  2.4% interrupt, 96.5% idle
Mem: 142M Active, 10M Inact, 67M Wired, 708K Cache, 34M Buf, 1737M Free
Swap:

  PID USERNAME  THR PRI NICE   SIZE    RES STATE  C   TIME   WCPU COMMAND
   11 root        1 171 ki31     0K     8K RUN    3 365:54 95.61% idle: cpu3
   12 root        1 171 ki31     0K     8K RUN    2 363:38 95.26% idle: cpu2
   13 root        1 171 ki31     0K     8K CPU1   1 339:45 94.68% idle: cpu1
   14 root        1 171 ki31     0K     8K CPU0   0 277:55 88.62% idle: cpu0
   15 root        1 -44    -     0K     8K WAIT   1  98:39  9.52% swi1: net
   44 root        1 -68    -     0K     8K -      1  36:45  1.76% dummynet
  829 root        2   4    0 27296K 13088K select 3   6:28  1.22% mpd5
  769 bind        7  96    0   149M   122M select 1   4:13  0.00% named

 

 

при практически одинаковом кол-ве kpps получается такая разная нагрузка , говорится ли о том, что машина 1 просто не "переваривает" такое кол-во абонентов ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1) freebsd6.3 и 86.52% swi1: net

2) freebsd7.0 и 9.52% swi1: net

ИМХО цифры довольно красноречиво говорят что нужно сделать :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

конфиги ipfw абсолютно одинаковы

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

сегодня 2я машина ведет себя след образом :

vpn3# ifconfig | grep ng | wc -l
     645
vpn3# netstat -w1
            input        (Total)           output
   packets  errs      bytes    packets  errs      bytes colls
     23425    14   14139008      24005     0   13941485     0
     23118    84   14090238      23865     0   14128866     0
     23509    91   13870689      24088     0   13704614     0
     23240    70   14146771      23975     0   14032445     0
     23384     0   13968655      23711     0   13609907     0
     23107     0   13361684      24225     0   13524894     0
     23046   226   13394001      23688     0   13282616     0
c     23014   226   13893365      24072     0   14017456     0

создается впечатление, что после 600 коннектов, машина "валится" . отчего такое может происходить ?

какие настройки sysctl рекомендуется смотреть ?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

net.inet.ip.fw.dyn_max, net.inet.ip.fw.dyn_count ? у меня засада была только в этом

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

vpn1# sysctl net.inet.ip.fw.dyn_max

net.inet.ip.fw.dyn_max: 65000

vpn1# sysctl net.inet.ip.fw.dyn_count

net.inet.ip.fw.dyn_count: 334

 

vpn3# sysctl net.inet.ip.fw.dyn_max

net.inet.ip.fw.dyn_max: 65000

vpn3# sysctl net.inet.ip.fw.dyn_count

net.inet.ip.fw.dyn_count: 654

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

еще можно попробовать

ifconfig em0 -polling

ifconfig em1 -polling

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

vpn1# sysctl net.inet.ip.fw.dyn_max
Посмотреть на sysctl net.inet.ip.intr_queue_drops Если они есть, то

net.inet.ip.intr_queue_maxlen=5000 уменьшит потери, но увеличит задержки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

vpn1# sysctl net.inet.ip.fw.dyn_max
Посмотреть на sysctl net.inet.ip.intr_queue_drops Если они есть, то

net.inet.ip.intr_queue_maxlen=5000 уменьшит потери, но увеличит задержки.

Читать умеете ? Какие могут быть дропы на 22kpps ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

И все-таки как решить проблему?

 

Опробовано FreeBSD 6.2, 6.3, 7.0RC, 7.1-RELEASE-p1 в связке с mpd 5.2

Шейпим через ng_car, dummynet выключен.

Пробовали с поллингом и без него, итог всегда такой: или ребут или зависает fatal trap 12. Зависимости от нагрузки на серв или кол-ва сессий не замечено. Может проработать неделю, а может за день 2 раза упасть.

Да, еще интересно то что ядро без SMP тоже не помогает картина та же. Опробовано на 2х серверах, оба серверные платформы.

Осталось только попробовать mpd 4.4, но веры уже нет

 

Также интересно услышать рабботает ли у кого-нибудь связка фри 7й версии с мпд и обслуживает большое кол-во сессий.

Изменено пользователем Wave

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

У меня работает. 6.2-STABLE + mpd4 uptime 414 days, 7.0-STABLE + mpd4 - uptime 102 days.

 

ng_car вместе с mpd включают только <censored>.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У меня работает. 6.2-STABLE + mpd4 uptime 414 days, 7.0-STABLE + mpd4 - uptime 102 days.

 

ng_car вместе с mpd включают только <censored>.

А чем Вы шейпите клиентов? И чем так плох шейпинг через ng_car? Через ipfw с дамминетом увеличиваются задержки пакетов при большом кол-ве сессий, что не есть хорошо.

Изменено пользователем Wave

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А чем Вы шейпите клиентов? И чем так плох шейпинг через ng_car?

dummynet, pf. ng_car как шейпинг может и не плох, но ставить его надо на другую машину, чтобы не было косяков с нодами netgraph.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А чем Вы шейпите клиентов? И чем так плох шейпинг через ng_car?

dummynet, pf. ng_car как шейпинг может и не плох, но ставить его надо на другую машину, чтобы не было косяков с нодами netgraph.

До этого пользовали дамминет, с тюнингом и полингом при 800-1000 сессий пинг вырастал на 20-30 мс, а это очень плохо.

Как шейпинг ng_car очень хорош, так как бережно расходует ЦПУ, держит большое кол-во сессий без увеличения задержки и удобен в использовании. Плохо себе представляю как увязать нгкар на другой машине с ВПН сервером? Ведь скорость выставляется на ng интерфейсе подключения к мпд.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

И все-таки как решить проблему?

 

Опробовано FreeBSD 6.2, 6.3, 7.0RC, 7.1-RELEASE-p1 в связке с mpd 5.2

Шейпим через ng_car, dummynet выключен.

Пробовали с поллингом и без него, итог всегда такой: или ребут или зависает fatal trap 12. Зависимости от нагрузки на серв или кол-ва сессий не замечено. Может проработать неделю, а может за день 2 раза упасть.

Собирать с отладкой, получить панику, а лучше несколько. В зависимости от ситуации, либо send-pr, либо менять железо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А чем Вы шейпите клиентов? И чем так плох шейпинг через ng_car?

dummynet, pf. ng_car как шейпинг может и не плох, но ставить его надо на другую машину, чтобы не было косяков с нодами netgraph.

Плохо себе представляю как увязать нгкар на другой машине с ВПН сервером? Ведь скорость выставляется на ng интерфейсе подключения к мпд.

например так

 

table_in=20

table_out=21

 

ipfw table ${table_in} add 192.168.n.m ${pipe_in_n}

ipfw table ${table_out} add 192.168.n.m ${pipe_out_n}

 

ipfw del 20

ipfw -q add 20 netgraph tablearg ip from table\(${table_in}\) to any out

 

ipfw del 21

ipfw -q add 21 netgraph tablearg ip from any to table\(${table_out}\) in

 

настройки ng_ipfw+ng_car если надо могу выслать в ПМ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

например так

 

настройки ng_ipfw+ng_car если надо могу выслать в ПМ.

Буду признателен за высланный пример настроек.

Изменено пользователем Wave

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А я могу и не приватным сообщением: http://subnets.ru/blog/?tag=ng_car

Изменено пользователем Dm1try

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.