Jump to content
Калькуляторы

Распределение нагрузки по ядрам в Debian Jessie Лезем вглубь! Интересный и развернутый спич

да вручную скриптом прибиты четыре очереди на четыре ядра. Но не в них ведь дело,.если трафик неравномерно распределяется по очередям.

Но если это принципиально, то сейчас напишу полную конфигурацию сети.

 

 

[root@gate2 ~]# cat /etc/modprobe.d/igb.conf
options igb InterruptThrottleRate=3,3,3,3 IntMode=2,2,2,2 RSS=4,4,4,4 QueuePairs=1,1,1,1


[root@gate2 ~]# cat /etc/modprobe.d/bonding.conf
options bonding max_bonds=1 mode=4 miimon=100 lacp_rate=1 xmit_hash_policy=2 use_carrier=1


[root@gate2 ~]# uname -r
2.6.32-504.8.1.v6.x86_64


[root@gate2 ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)

Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2+3 (2)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

802.3ad info
LACP rate: fast
Aggregator selection policy (ad_select): stable
Active Aggregator Info:
       Aggregator ID: 2
       Number of ports: 2
       Actor Key: 17
       Partner Key: 1000
       Partner Mac Address: ec:cd:6d:0b:83:6a

Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 3
Permanent HW addr: 00:25:90:08:e3:0c
Aggregator ID: 2
Slave queue ID: 0

Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 4
Permanent HW addr: 00:25:90:08:e3:0d
Aggregator ID: 2
Slave queue ID: 0


[root@gate2 ~]# ip -s -d link list dev eth0
2: eth0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc prio master bond0 state UP qlen 1000
   link/ether 00:25:90:08:e3:0c brd ff:ff:ff:ff:ff:ff
   RX: bytes  packets  errors  dropped overrun mcast
   668023781  96091075 0       0       0       198759
   TX: bytes  packets  errors  dropped carrier collsns
   2115726984 39642840 0       0       0       0


[root@gate2 ~]# ip -s -d link list dev eth1
3: eth1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP qlen 1000
   link/ether 00:25:90:08:e3:0c brd ff:ff:ff:ff:ff:ff
   RX: bytes  packets  errors  dropped overrun mcast
   2112498228 12323818 0       0       0       239453
   TX: bytes  packets  errors  dropped carrier collsns
   203858937  63834965 0       0       0       0


[root@gate2 ~]# cat /proc/interrupts
          CPU0       CPU1       CPU2       CPU3
 0:        123          0          0        278   IO-APIC-edge      timer
 1:          0          0          0         16   IO-APIC-edge      i8042
 3:          0          0          0          3   IO-APIC-edge
 4:          0          0          0          2   IO-APIC-edge
 5:          0          0          0          2   IO-APIC-edge
 8:          0          0          0         75   IO-APIC-edge      rtc0
 9:          0          0          0          0   IO-APIC-fasteoi   acpi
21:        192          0          0          0   IO-APIC-fasteoi   ehci_hcd:usb1
23:          0      92701          0          0   IO-APIC-fasteoi   ehci_hcd:usb2
24:   30917076          0          0          0  HPET_MSI-edge      hpet2
25:          0   31528445          0          0  HPET_MSI-edge      hpet3
26:          0          0   16805494          0  HPET_MSI-edge      hpet4
27:          0          0          0   16670413  HPET_MSI-edge      hpet5
29:          0          0          0          0   PCI-MSI-edge      aerdrv
30:          0          0          0          0   PCI-MSI-edge      aerdrv
37:          1          0     594820          0   PCI-MSI-edge      ahci
38:          0          0          6          0   PCI-MSI-edge      eth0
39:   17966099          0          0          0   PCI-MSI-edge      eth0-TxRx-0
40:       5464   39373269          0          0   PCI-MSI-edge      eth0-TxRx-1
41:          0       1724   17238450          0   PCI-MSI-edge      eth0-TxRx-2
42:          0       1519          0   29979417   PCI-MSI-edge      eth0-TxRx-3
43:          0          0          8          0   PCI-MSI-edge      eth1
44:   10356093          0       1787          0   PCI-MSI-edge      eth1-TxRx-0
45:          0   34333060          0       5370   PCI-MSI-edge      eth1-TxRx-1
46:          0          0    8127491       2030   PCI-MSI-edge      eth1-TxRx-2
47:       1992          0          0   21362871   PCI-MSI-edge      eth1-TxRx-3
NMI:       2329       3403       1866       2505   Non-maskable interrupts
LOC:         76        130         99         69   Local timer interrupts
SPU:          0          0          0          0   Spurious interrupts
PMI:       2329       3403       1866       2505   Performance monitoring interrupts
IWI:          0          0          0          0   IRQ work interrupts
RES:      55626      49578     105979      79806   Rescheduling interrupts
CAL:        185        318        245        275   Function call interrupts
TLB:      31292     139498     215936     137215   TLB shootdowns
TRM:          0          0          0          0   Thermal event interrupts
THR:          0          0          0          0   Threshold APIC interrupts
MCE:          0          0          0          0   Machine check exceptions
MCP:        279        279        279        279   Machine check polls
ERR:          0
MIS:          0



[root@gate2 ~]# ethtool -S eth0 | grep .x_queue_._packets
    tx_queue_0_packets: 5136034
    tx_queue_1_packets: 21772618
    tx_queue_2_packets: 7350485
    tx_queue_3_packets: 5736838
    rx_queue_0_packets: 18744431
    rx_queue_1_packets: 25797069
    rx_queue_2_packets: 17208277
    rx_queue_3_packets: 35082830


[root@gate2 ~]# ethtool -S eth1 | grep .x_queue_._packets
    tx_queue_0_packets: 6001064
    tx_queue_1_packets: 30914772
    tx_queue_2_packets: 4359811
    tx_queue_3_packets: 23048741
    rx_queue_0_packets: 4235643
    rx_queue_1_packets: 2416771
    rx_queue_2_packets: 3487657
    rx_queue_3_packets: 2354086

 

Неравномерность входящего трафика между eth0 и eth1 объясняется неумением коммутатора менять алгоритм хэширования, но не в этом вопрос, вопрос - почему входящие очереди(да и исходящие тоже) нагружены неравномерно?

Edited by SABRE

Share this post


Link to post
Share on other sites

А что не ядро 2.2.17? Зачем такое новое?

 

Неравномерность входящего трафика между eth0 и eth1 объясняется неумением коммутатора менять алгоритм хэширования, но не в этом вопрос, вопрос - почему входящие очереди(да и исходящие тоже) нагружены неравномерно?

 

Потому что хэширует карта так как умеет, это встроенный в нее алгоритм. Замена ему - RPS, который в большинстве случаев (много сессий) делает только хуже.

Share this post


Link to post
Share on other sites

А что не ядро 2.2.17? Зачем такое новое?

 

Эмм, это Centos, оно там все странное. Вы на -504 Обратили внимание?

Share this post


Link to post
Share on other sites

Эмм, это Centos, оно там все странное. Вы на -504 Обратили внимание?

 

Я вижу что CentOS, не понимаю с чего вы решили что CentOS == очешуенный роутер?

Не уверен, что в 2.6.32 попадают фичи из мэйнлайна, а года-то идут...

Share this post


Link to post
Share on other sites

чего вы решили что CentOS == очешуенный роутер

А где я сказал такое? Что мне дали - с тем и работаю, мы вообще очень отклонились от темы - вопрос касался конкретно сетевой и разделения входящего трафика по очередям - драйвер последний, ОС в этом процессе не учавствует.

Edited by SABRE

Share this post


Link to post
Share on other sites

чего вы решили что CentOS == очешуенный роутер

А где я сказал такое? Что мне дали - с тем и работаю, мы вообще очень отклонились от темы - вопрос касался конкретно сетевой и разделения входящего трафика по очередям - драйвер последний, ОС в этом процессе не учавствует.

Да ну??? )))))))))))

Share this post


Link to post
Share on other sites

А где я сказал такое? Что мне дали - с тем и работаю

 

Тогда надо смириться еще с тем как оно работает.

 

вопрос касался конкретно сетевой и разделения трафика по очередям - драйвер последний, ОС в этом процессе не учавствует.

 

Ответ же дан: или пытайтесь RPS или терпите.

Share this post


Link to post
Share on other sites

Кмк, rps сделает только хуже, но попробовать стоит.

 

Transmit Hash Policy: layer2+3 (2)

А если попробовать чисто L3? ip-src-dst?

Share this post


Link to post
Share on other sites

Да ну??? )))))))))))

Разве нет? Распределение по входящим очередям сетевой делается аппаратно, изменить можно с помощью ntuple, которые в этой карте судя по всему не конфигурируются.

 

А если попробовать чисто L3?

Linux bonding умеет только L2,L2+3,L3+4. ночью поставлю 3+4.

Share this post


Link to post
Share on other sites

Я вижу что CentOS, не понимаю с чего вы решили что CentOS == очешуенный роутер?

Не вводите людей в заблуждение, нормально у всех центос работает.

Эмм, это Centos, оно там все странное. Вы на -504 Обратили внимание?

Попробуйте всё-таки ядро обновить.

# uname -r
4.0.4-1.el6.elrepo.x86_64

Ещё можно попробовать дрова на сетевуху оттуда тоже взять.

Share this post


Link to post
Share on other sites

Не вводите людей в заблуждение, нормально у всех центос работает.

Древнее говно мамонта? Ой вэй, ну работает да, нормально. Не отлично, не хорошо, но нормально :)

Share this post


Link to post
Share on other sites

Что конкретно там "древнее говно мамонта"? Или фря рулит?

Edited by BETEPAH

Share this post


Link to post
Share on other sites

Что конкретно там "древнее говно мамонта"? Или фря рулит?

я думаю, скорее всего, имелось в виду debian (ubuntu?), ну а так да, фря рулит без вопросов ;-)

Share this post


Link to post
Share on other sites

Что конкретно там "древнее говно мамонта"? Или фря рулит?

 

03.12.2009 10:17 Релиз Linux ядра 2.6.32

 

6 лет скоро. Фичи в 2.6 ядра не попадают, только фиксы. Вы лишаете себя всех плюшек ядер 3+, особенно 3.18, в котором хорошо поработали над сетью.

Share this post


Link to post
Share on other sites

Можно я себя процитирую?

 

# uname -r4.0.4-1.el6.elrepo.x86_64

 

 

Или религия не позволяет обновлять ядро?

Share this post


Link to post
Share on other sites

BETEPAH

Трушные поклонники centos'а руками ядра не обновляют. Даже yum'ом из elrepo, ибо это не феншуйно.

Share this post


Link to post
Share on other sites

Можно я себя процитирую?

 

У вас после обновления федора, а не центос/рхел. Хоть зацитируйтесь.

Share this post


Link to post
Share on other sites

У вас после обновления федора

 

А мужики-то и не знали, что дистр - это лишь версия ядра :D

Share this post


Link to post
Share on other sites

А мужики-то и не знали, что дистр - это лишь версия ядра :D

 

 

Ну судя по комментариям мужиков, для них в мире еще много дива припасено :)

RHEL/CentOS это скорее ядро чем все остальное, их смысл в этом. Если вы не понимаете смысла данного решения - значит оно просто не для вас и можно спокойно ставить федору.

Share this post


Link to post
Share on other sites

RHEL/CentOS это скорее ядро чем все остальное, их смысл в этом.

Бред. Их смысл - в стабильном API/ABI и стабильном формате конфигов/дефолтах на протяжении всего жизненного цикла. Чтобы не было как в бзде/прочих rolling-release - обновилась самба на мажорную версию, и отсохла из-за других дефолтов конфига, а админ, тронувший тазик в рабочее время по глупости, в мыле спешно перечитывает кучи постов в духе "обновился и сломалось помогите", готовя попутно вазелин...

 

И ядро с постоянным ABI - всего маленькая часть этого.

Share this post


Link to post
Share on other sites

RHEL/CentOS это скорее ядро чем все остальное, их смысл в этом.

Чтобы не было как в бзде/прочих rolling-release - обновилась самба на мажорную версию, и отсохла из-за других дефолтов конфига,

 

Это вы сказки рассказываете.

Выбрали самый нестабильный софт (в том числе и на Линуксе) и рассказываете страшилки.

 

А вообще выкатывать новую версию софта, без тестирования, еще в дневное время и без возможности отката назад - админ ССЗБ.

Share this post


Link to post
Share on other sites

Бред. Их смысл - в стабильном API/ABI и стабильном формате конфигов/дефолтах на протяжении всего жизненного цикла.

И ядро с постоянным ABI - всего маленькая часть этого.

 

Вижу, что вы даже близко к энтерпрайзу не стояли и едва ли понимаете что есть RHEL.

Начните читать уже чего-нибудь, чтобы свои мечты за реальность не выдавать :)

Share this post


Link to post
Share on other sites

Это вы сказки рассказываете.

Выбрали самый нестабильный софт (в том числе и на Линуксе) и рассказываете страшилки.

В других пакетах конфиг/дефолты тоже имеют свойство меняться. И со старым конфигом новая версия вполне может не взлететь.

 

А вообще выкатывать новую версию софта, без тестирования, еще в дневное время и без возможности отката назад - админ ССЗБ.

Вот потому в энтерпрайз дистрах и нет новых мажорных версий...

 

Вижу, что вы даже близко к энтерпрайзу не стояли и едва ли понимаете что есть RHEL.

Во-первых речь не о RHEL а о CentOS. Которая тоже ни разу не энтерпрайз, хоть и скомпилирована с сырцов RHEL (и да, открою секрет - не на 100%, а с модификациями). Точно так же, как и купленные б/у циски с ибэя ни разу не энтерпрайз без сервисного контракта.

 

А вообще - забавно, как у вас в голове уживается 2 взаимоисключающих пункта - ядро в центос старое, и при этом же - ставить туда новое ядро ни в коем случае низзя, даже если оно уже протестировано сотнями тысяч пользователей репа elrepo.

Share this post


Link to post
Share on other sites

А вообще - забавно, как у вас в голове уживается 2 взаимоисключающих пункта - ядро в центос старое, и при этом же - ставить туда новое ядро ни в коем случае низзя, даже если оно уже протестировано сотнями тысяч пользователей репа elrepo.

+1

 

Работают годами аптайма ядра из elrepo, внимания вообще не просят, но тру админ разве допустит такого надругания над идеалами? :)

Share this post


Link to post
Share on other sites

Да причем тут тру не тру. То что вы не понимаете сути rhel/centos и как дети малые ставите его везде а потом накатываете ядро от федоры - это лишь показатель того, что оно вам даже близко не нужно. Вы одеваете очки, думая что это модно, а они лишь для того чтобы улучшить зрение, и если у вас зрение и без того нормальное - ваш поход за модой выглядит просто смешно и глупо. Аналогия хоть понятна? :)

 

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this