Добро пожаловать, Гость. Пожалуйста авторизуйтесь здесь.
FGHIGate на GaNJa NeTWoRK ST@Ti0N - Просмотр сообщения в эхоконференции RU.UNIX.BSD
Введите FGHI ссылку:


Присутствуют сообщения из эхоконференции RU.UNIX.BSD с датами от 18 Jan 11 22:51:00 до 16 Sep 24 17:28:15, всего сообщений: 10763
Ответить на сообщение К списку сообщений Предыдущее сообщение Следующее сообщение
= Сообщение: 2652 из 10763 ===================================== RU.UNIX.BSD =
От   : Vladimir Yesakov                 2:461/58.202       19 Mar 15 19:37:47
Кому : Eugene Grosbein                                     19 Mar 15 19:37:47
Тема : L2TP termination / mpd5 / CPU usage
FGHI : area://RU.UNIX.BSD?msgid=2:461/58.202+550b64fe
На   : area://RU.UNIX.BSD?msgid=2:461/58.202+54f65fd1
= Кодировка сообщения определена как: CP866 ==================================
Ответ: area://RU.UNIX.BSD?msgid=<1187500294@ddt.demos.su>+4437e3a9
==============================================================================

   Hello Eugene!

03 Mar 15 20:28, I wrote to you:

VY>     Я заранее прошу прощения, длинновато получилось...

    Дошли у меня наконец-то руки закончить с этим сервером...

VY>>> В идеале хотелось бы получить полные 10G с сервера... ( карточка
VY>>> на 2 порта, в один принимаем l2tp, а в другом Internet )
EG>> Это может быть нетривиально, но пробуй.

    Кому лень читать все, то сразу выводы:

1) Фря 9.3 некорректно работает с двумя процессорами. Вынимание одного никак не влияет на общую производительность системы при данном конкретном виде нагрузки. Возможно, что на этой контретной маме (SuperMicro X9DRT). 10.0 у меня на такой же задаче вешалась при 1k сессий (примерно), а 10.1 я не пробовал.

2) Похоже если взять _один_ процессор, но побыстрее и с большим числом ядер, то до 10GB добратся будет можно. Процессор, правда под 2 килобакса, встанет, но Cisco с 10G интерфейсами (подержанная) все равно тянет на $15k.

Теперь детали.

VY>     PPS взяты с "netstat -i 1"

Текущие данные (до пика еще 2 часа...)
=== Cut ===
            input        (Total)           output
   packets  errs idrops      bytes    packets  errs      bytes colls
    859206     0     0  515649102    1085071     7 1214621518     0
    947910     0     0  581993230    1216279     4 1321367893     0
    953823     0     0  581299125    1222578     6 1387690664     0
    925894     0     0  566564259    1184950     7 1354310104     0
    877375     0     0  527778823    1109854     7 1271385911     0
    924253     0     0  549384743    1166242     7 1287634128     0
    939129     0     0  564925817    1196570     6 1330810876     0
    953851     0     0  569204225    1212750     3 1351247171     0
    949041     0     0  568973122    1212448     9 1367340259     0
=== Cut ===

Похоже Фря не может эффективно использовать 2 CPU Sockets. Я вынул один процессор и включил HT (чтоб прибивку к ядрам не править, вдруг пришлось бы срочно откатывать на 2 CPU). Картина сильно изменилась по PMCSTAT и практически без изменений по TOP -SHIP:

=== Cut ===
PMC: [INSTR_RETIRED_ANY] Samples: 148752 (100.0%) , 0 unresolved

%SAMP IMAGE      FUNCTION             CALLERS
  5.6 kernel     _mtx_lock_sleep      _mtx_lock_flags
  4.9 kernel     cpu_search_lowest    cpu_search_lowest
  4.7 kernel     _mtx_lock_spin       wakeup_one:2.5 _sleep:0.9 turnstile_trywait:0.7
  4.6 pmcstat    _init
  4.1 kernel     _rw_rlock            ng_address_hook:1.8 rtalloc1_fib:0.8
  3.2 kernel     rn_match             rtalloc1_fib
  2.7 kernel     _rw_runlock          ng_address_hook:1.1 arpresolve:0.6 rtalloc1_fib:0.5
  2.4 kernel     in_pcblookup_hash_lo in_pcblookup_hash
  2.1 netgraph.k ng_snd_item          ng_apply_item
  1.9 libc.so.7  bsearch
  1.7 kernel     ip_output            ip_forward:0.9 udp_send:0.8
  1.7 kernel     uma_zalloc_arg
  1.6 kernel     atomic_fetchadd_int  ng_unref_hook:0.9 ng_unref_node:0.7
  1.4 kernel     bzero
  1.4 kernel     uma_zfree_arg        m_freem
  1.3 kernel     ixgbe_xmit           ixgbe_mq_start_locked
  1.3 kernel     ixgbe_rxeof          ixgbe_msix_que
  1.2 kernel     spinlock_exit
  1.2 kernel     _mtx_unlock_flags    ngthread
  1.1 kernel     critical_exit        spinlock_exit
  1.1 mpd5       _init
=== Cut ===

=== Cut ===
CPU 0:   1.6% user,  0.0% nice, 25.5% system, 48.6% interrupt, 24.3% idle
CPU 1:   0.0% user,  0.0% nice, 19.6% system, 51.0% interrupt, 29.4% idle
CPU 2:   0.4% user,  0.0% nice, 22.0% system, 49.0% interrupt, 28.6% idle
CPU 3:   2.4% user,  0.0% nice, 30.2% system, 41.2% interrupt, 26.3% idle
CPU 4:   0.8% user,  0.0% nice, 24.3% system, 51.0% interrupt, 23.9% idle
CPU 5:   0.8% user,  0.0% nice, 25.9% system, 47.5% interrupt, 25.9% idle
CPU 6:   0.0% user,  0.0% nice, 40.0% system, 26.7% interrupt, 33.3% idle
CPU 7:   0.8% user,  0.0% nice, 35.3% system, 23.5% interrupt, 40.4% idle
CPU 8:   2.0% user,  0.0% nice, 39.6% system, 27.1% interrupt, 31.4% idle
CPU 9:   1.2% user,  0.0% nice, 31.8% system, 32.5% interrupt, 34.5% idle
CPU 10:  0.8% user,  0.0% nice, 43.1% system, 19.6% interrupt, 36.5% idle
CPU 11:  2.4% user,  0.0% nice, 38.4% system, 27.8% interrupt, 31.4% idle
Mem: 3550M Active, 360M Inact, 1889M Wired, 1859M Buf, 9987M Free
Swap: 2897M Total, 2897M Free

  PID USERNAME   PRI NICE   SIZE    RES STATE   C   TIME    WCPU COMMAND
   12 root       -92    -     0K  1072K WAIT    0 209:14  51.17% intr{irq282: ix0:que }
   12 root       -92    -     0K  1072K WAIT    2 192:46  50.00% intr{irq284: ix0:que }
   12 root       -92    -     0K  1072K WAIT    5 192:21  49.17% intr{irq287: ix0:que }
   12 root       -92    -     0K  1072K CPU4    4 186:24  49.07% intr{irq286: ix0:que }
   12 root       -92    -     0K  1072K CPU1    1 200:22  47.85% intr{irq283: ix0:que }
   12 root       -92    -     0K  1072K CPU3    3 185:22  43.90% intr{irq285: ix0:que }
  705 root       -16    -     0K   192K sleep   4 143:01  35.06% ng_queue{ng_queue4}
  705 root       -16    -     0K   192K sleep   1 142:32  35.06% ng_queue{ng_queue3}
  705 root       -16    -     0K   192K sleep   0 143:00  34.77% ng_queue{ng_queue7}
  705 root       -16    -     0K   192K CPU5    5 142:39  34.77% ng_queue{ng_queue0}
  705 root       -16    -     0K   192K sleep   1 142:28  34.77% ng_queue{ng_queue6}
  705 root       -16    -     0K   192K sleep   5 142:13  34.77% ng_queue{ng_queue5}
  705 root       -16    -     0K   192K CPU2    2 143:01  34.57% ng_queue{ng_queue10}
  705 root       -16    -     0K   192K CPU6    6 142:47  34.47% ng_queue{ng_queue1}
  705 root       -16    -     0K   192K sleep   3 142:27  34.47% ng_queue{ng_queue9}
  705 root       -16    -     0K   192K sleep  10 141:55  34.47% ng_queue{ng_queue8}
  705 root       -16    -     0K   192K sleep   0 141:55  34.08% ng_queue{ng_queue11}
  705 root       -16    -     0K   192K CPU4    4 141:57  33.69% ng_queue{ng_queue2}
   11 root       155 ki31     0K   192K CPU10  10 654:42  33.59% idle{idle: cpu10}
   11 root       155 ki31     0K   192K CPU9    9 640:42  31.40% idle{idle: cpu9}
   11 root       155 ki31     0K   192K RUN     7 654:16  31.05% idle{idle: cpu7}
   11 root       155 ki31     0K   192K CPU6    6 638:41  30.27% idle{idle: cpu6}
   11 root       155 ki31     0K   192K RUN     8 635:37  29.05% idle{idle: cpu8}
   12 root       -92    -     0K  1072K WAIT   11 124:46  28.86% intr{irq294: ix1:que }
   12 root       -92    -     0K  1072K WAIT    8 141:02  27.78% intr{irq291: ix1:que }
   12 root       -92    -     0K  1072K WAIT    6 134:53  27.20% intr{irq289: ix1:que }
   11 root       155 ki31     0K   192K RUN    11 637:22  26.95% idle{idle: cpu11}
   12 root       -92    -     0K  1072K WAIT    9 135:50  25.88% intr{irq292: ix1:que }
   11 root       155 ki31     0K   192K RUN     3 612:49  25.10% idle{idle: cpu3}
   12 root       -92    -     0K  1072K WAIT    7 109:33  24.66% intr{irq290: ix1:que }
   11 root       155 ki31     0K   192K CPU1    1 607:12  24.17% idle{idle: cpu1}
   11 root       155 ki31     0K   192K RUN     4 608:57  24.07% idle{idle: cpu4}
   11 root       155 ki31     0K   192K RUN     5 609:14  23.68% idle{idle: cpu5}
   11 root       155 ki31     0K   192K RUN     0 598:29  23.19% idle{idle: cpu0}
   11 root       155 ki31     0K   192K RUN     2 606:10  22.07% idle{idle: cpu2}
  701 root        43    0  1007M   269M select  4 225:22  20.26% mpd5{mpd5}
   12 root       -92    -     0K  1072K WAIT   10  92:41  16.36% intr{irq293: ix1:que }
=== Cut ===

Как мы видим - "sched_idletd" исчез совсем. Больше никто никого не ждет, похоже...

VY>     CPU загружен 40% system, 40% interrupt и pmcstat показывает такую
VY> вот фигню:

PMC>: [INSTR_RETIRED_ANY] Samples: 123604 (100.0%) , 1069 unresolved

VY> %SAMP IMAGE      FUNCTION             CALLERS
VY>  11.9 kernel     sched_idletd         fork_exit
VY>   5.1 kernel     _rw_rlock            rtalloc1_fib:1.8
VY> ng_address_hook:1.7 5.1 kernel     _mtx_lock_sleep
VY> _mtx_lock_flags 4.3 kernel     _mtx_lock_spin       wakeup_one:1.9
VY> turnstile_trywait:0.9 pmclog_reserve:0.8 _sleep:0.6 4.1 kernel
VY> select_check_badfd   kern_select 2.4 kernel     _rw_runlock
VY> ng_address_hook:0.9 arpresolve:0.5 2.3 kernel     rn_match
VY> rtalloc1_fib 2.3 kernel     cpu_search_lowest    cpu_search_lowest:1.4
VY> sched_pickcpu:0.9 2.1 pmcstat    _init 2.0 kernel
VY> in_pcblookup_hash_lo in_pcblookup_hash

Один вопрос пока остается.
Как я понимаю дополнительной фрагментации быть не должно. Все виртуальные интерфейсы настроены с MTU 1492, а на другой стороне MTU 1500, без VLAN или какого-либо тунелирования.

VY> трафика примерно одинаково, а PPS в три раза отличается

И кстати прерываний тоже втрое больше.

VY> Я уже подумываю, а не выдернуть ли один CPU и посмотреть что будет?

Выдернул. Получил то, что и ожидал...

Vladimir


--- GoldED+/W32-MSVC 1.1.5-b20130111
* Origin: Living in interesting times (2:461/58.202)

К главной странице гейта
Powered by NoSFeRaTU`s FGHIGate
Открытие страницы: 0.103064 секунды