LINUX.ORG.RU
ФорумAdmin

сетевые адаптеры - vmware - linux eth интерфейс - аппаратная очередь RX TX

 


0

1

В Linux SUSE через ethtool вижу 4 аппаратные очереди отправки,получения у сетевого интерфейса. ОС - это виртуалка в VMware. На другой виртуалке в другом кластере VMware 2 очереди, а не 4. Я не могу понять откуда ноги растут у этих очередей. Как найти или куда смотреть в вмваре, чттобы увидеть откуда у сетевого интерфейса несколько аппаратных очередей? я в вмваре новичек.


/usr/sbin/ethtool -S eth0
NIC statistics:
     Tx Queue#: 0
       TSO pkts tx: 7214486
       TSO bytes tx: 50550218430
       ucast pkts tx: 583443569
       ucast bytes tx: 222914172507
       mcast pkts tx: 0
       mcast bytes tx: 0
       bcast pkts tx: 84
       bcast bytes tx: 3528
       pkts tx err: 0
       pkts tx discard: 0
       drv dropped tx total: 0
          too many frags: 0
          giant hdr: 0
          hdr err: 0
          tso: 0
       ring full: 0
       pkts linearized: 0
       hdr cloned: 0
       giant hdr: 0
     Tx Queue#: 1
       TSO pkts tx: 7216123
       TSO bytes tx: 38831016246
       ucast pkts tx: 604816019
       ucast bytes tx: 219323791932
       mcast pkts tx: 0
       mcast bytes tx: 0
       bcast pkts tx: 0
       bcast bytes tx: 0
       pkts tx err: 0
       pkts tx discard: 0
       drv dropped tx total: 0
          too many frags: 0
          giant hdr: 0
          hdr err: 0
          tso: 0
       ring full: 0
       pkts linearized: 0
       hdr cloned: 0
       giant hdr: 0
     Tx Queue#: 2
       TSO pkts tx: 8394151
       TSO bytes tx: 37183473140
       ucast pkts tx: 678502215
       ucast bytes tx: 237489185714
       mcast pkts tx: 0
       mcast bytes tx: 0
       bcast pkts tx: 0
       bcast bytes tx: 0
       pkts tx err: 0
       pkts tx discard: 0
       drv dropped tx total: 0
          too many frags: 0
          giant hdr: 0
          hdr err: 0
          tso: 0
       ring full: 0
       pkts linearized: 0
       hdr cloned: 0
       giant hdr: 0
     Tx Queue#: 3
       TSO pkts tx: 7188275
       TSO bytes tx: 34760819224
       ucast pkts tx: 760889801
       ucast bytes tx: 247582904693
       mcast pkts tx: 0
       mcast bytes tx: 0
       bcast pkts tx: 0
       bcast bytes tx: 0
       pkts tx err: 0
       pkts tx discard: 0
       drv dropped tx total: 0
          too many frags: 0
          giant hdr: 0
          hdr err: 0
          tso: 0
       ring full: 3
       pkts linearized: 0
       hdr cloned: 0
       giant hdr: 0
     Rx Queue#: 0
       LRO pkts rx: 112669805
       LRO byte rx: 621229025054
       ucast pkts rx: 670692089
       ucast bytes rx: 937379449784
       mcast pkts rx: 0
       mcast bytes rx: 0
       bcast pkts rx: 56965
       bcast bytes rx: 3427140
       pkts rx OOB: 0
       pkts rx err: 0
       drv dropped rx total: 0
          err: 0
          fcs: 0
       rx buf alloc fail: 0
     Rx Queue#: 1
       LRO pkts rx: 120269388
       LRO byte rx: 678500866929
       ucast pkts rx: 706652396
       ucast bytes rx: 1017216474826
       mcast pkts rx: 0
       mcast bytes rx: 0
       bcast pkts rx: 146
       bcast bytes rx: 34120
       pkts rx OOB: 0
       pkts rx err: 0
       drv dropped rx total: 0
          err: 0
          fcs: 0
       rx buf alloc fail: 0
     Rx Queue#: 2
       LRO pkts rx: 117541666
       LRO byte rx: 637783456937
       ucast pkts rx: 814410347
       ucast bytes rx: 995778025970
       mcast pkts rx: 0
       mcast bytes rx: 0
       bcast pkts rx: 0
       bcast bytes rx: 0
       pkts rx OOB: 109
       pkts rx err: 0
       drv dropped rx total: 0
          err: 0
          fcs: 0
       rx buf alloc fail: 0
     Rx Queue#: 3
       LRO pkts rx: 147713022
       LRO byte rx: 984700200609
       ucast pkts rx: 714191391
       ucast bytes rx: 1339429264464
       mcast pkts rx: 0
       mcast bytes rx: 0
       bcast pkts rx: 2
       bcast bytes rx: 408
       pkts rx OOB: 129
       pkts rx err: 0
       drv dropped rx total: 0
          err: 0
          fcs: 0
       rx buf alloc fail: 0
     tx timeout count: 0

/usr/sbin/ethtool -S eth0
NIC statistics:
     Tx Queue#: 0
       TSO pkts tx: 7214486
       TSO bytes tx: 50550218430
       ucast pkts tx: 583443569
       ucast bytes tx: 222914172507
       mcast pkts tx: 0
       mcast bytes tx: 0
       bcast pkts tx: 84
       bcast bytes tx: 3528
       pkts tx err: 0
       pkts tx discard: 0
       drv dropped tx total: 0
          too many frags: 0
          giant hdr: 0
          hdr err: 0
          tso: 0
       ring full: 0
       pkts linearized: 0
       hdr cloned: 0
       giant hdr: 0
     Tx Queue#: 1
       TSO pkts tx: 7216123
       TSO bytes tx: 38831016246
       ucast pkts tx: 604816019
       ucast bytes tx: 219323791932
       mcast pkts tx: 0
       mcast bytes tx: 0
       bcast pkts tx: 0
       bcast bytes tx: 0
       pkts tx err: 0
       pkts tx discard: 0
       drv dropped tx total: 0
          too many frags: 0
          giant hdr: 0
          hdr err: 0
          tso: 0
       ring full: 0
       pkts linearized: 0
       hdr cloned: 0
       giant hdr: 0
     Tx Queue#: 2
       TSO pkts tx: 8394151
       TSO bytes tx: 37183473140
       ucast pkts tx: 678502215
       ucast bytes tx: 237489185714
       mcast pkts tx: 0
       mcast bytes tx: 0
       bcast pkts tx: 0
       bcast bytes tx: 0
       pkts tx err: 0
       pkts tx discard: 0
       drv dropped tx total: 0
          too many frags: 0
          giant hdr: 0
          hdr err: 0
          tso: 0
       ring full: 0
       pkts linearized: 0
       hdr cloned: 0
       giant hdr: 0
     Tx Queue#: 3
       TSO pkts tx: 7188275
       TSO bytes tx: 34760819224
       ucast pkts tx: 760889801
       ucast bytes tx: 247582904693
       mcast pkts tx: 0
       mcast bytes tx: 0
       bcast pkts tx: 0
       bcast bytes tx: 0
       pkts tx err: 0
       pkts tx discard: 0
       drv dropped tx total: 0
          too many frags: 0
          giant hdr: 0
          hdr err: 0
          tso: 0
       ring full: 3
       pkts linearized: 0
       hdr cloned: 0
       giant hdr: 0
     Rx Queue#: 0
       LRO pkts rx: 112669805
       LRO byte rx: 621229025054
       ucast pkts rx: 670692089
       ucast bytes rx: 937379449784
       mcast pkts rx: 0
       mcast bytes rx: 0
       bcast pkts rx: 56965
       bcast bytes rx: 3427140
       pkts rx OOB: 0
       pkts rx err: 0
       drv dropped rx total: 0
          err: 0
          fcs: 0
       rx buf alloc fail: 0
     Rx Queue#: 1
       LRO pkts rx: 120269388
       LRO byte rx: 678500866929
       ucast pkts rx: 706652396
       ucast bytes rx: 1017216474826
       mcast pkts rx: 0
       mcast bytes rx: 0
       bcast pkts rx: 146
       bcast bytes rx: 34120
       pkts rx OOB: 0
       pkts rx err: 0
       drv dropped rx total: 0
          err: 0
          fcs: 0
       rx buf alloc fail: 0
     Rx Queue#: 2
       LRO pkts rx: 117541666
       LRO byte rx: 637783456937
       ucast pkts rx: 814410347
       ucast bytes rx: 995778025970
       mcast pkts rx: 0
       mcast bytes rx: 0
       bcast pkts rx: 0
       bcast bytes rx: 0
       pkts rx OOB: 109
       pkts rx err: 0
       drv dropped rx total: 0
          err: 0
          fcs: 0
       rx buf alloc fail: 0
     Rx Queue#: 3
       LRO pkts rx: 147713022
       LRO byte rx: 984700200609
       ucast pkts rx: 714191391
       ucast bytes rx: 1339429264464
       mcast pkts rx: 0
       mcast bytes rx: 0
       bcast pkts rx: 2
       bcast bytes rx: 408
       pkts rx OOB: 129
       pkts rx err: 0
       drv dropped rx total: 0
          err: 0
          fcs: 0
       rx buf alloc fail: 0
     tx timeout count: 0
[\code]


Последнее исправление: Shinma (всего исправлений: 2)

Ноги растут из процессора сетевой карты и драйвера, который умеет очереди, если они есть вообще. cat /proc/interrupts что показывает по поводу интерфесов ?

AS ★★★★★
()
Ответ на: комментарий от AS

/usr/sbin/ethtool -S eth0
NIC statistics:
     Tx Queue#: 0
       TSO pkts tx: 158
       TSO bytes tx: 919772
       ucast pkts tx: 10875
       ucast bytes tx: 4003808
       mcast pkts tx: 0
       mcast bytes tx: 0
       bcast pkts tx: 18
       bcast bytes tx: 756
       pkts tx err: 0
       pkts tx discard: 0
       drv dropped tx total: 0
          too many frags: 0
          giant hdr: 0
          hdr err: 0
          tso: 0
       ring full: 0
       pkts linearized: 0
       hdr cloned: 0
       giant hdr: 0
     Tx Queue#: 1
       TSO pkts tx: 220
       TSO bytes tx: 1090004
       ucast pkts tx: 10167
       ucast bytes tx: 3967088
       mcast pkts tx: 0
       mcast bytes tx: 0
       bcast pkts tx: 0
       bcast bytes tx: 0
       pkts tx err: 0
       pkts tx discard: 0
       drv dropped tx total: 0
          too many frags: 0
          giant hdr: 0
          hdr err: 0
          tso: 0
       ring full: 0
       pkts linearized: 0
       hdr cloned: 0
       giant hdr: 0
     Rx Queue#: 0
       LRO pkts rx: 123
       LRO byte rx: 42005
       ucast pkts rx: 9788
       ucast bytes rx: 1586880
       mcast pkts rx: 2
       mcast bytes rx: 172
       bcast pkts rx: 4076
       bcast bytes rx: 259184
       pkts rx OOB: 0
       pkts rx err: 0
       drv dropped rx total: 0
          err: 0
          fcs: 0
       rx buf alloc fail: 0
     Rx Queue#: 1
       LRO pkts rx: 127
       LRO byte rx: 55983
       ucast pkts rx: 9679
       ucast bytes rx: 1546834
       mcast pkts rx: 0
       mcast bytes rx: 0
       bcast pkts rx: 151
       bcast bytes rx: 16568
       pkts rx OOB: 0
       pkts rx err: 0
       drv dropped rx total: 0
          err: 0
          fcs: 0
       rx buf alloc fail: 0
     tx timeout count: 0



$ cat /proc/interrupts
           CPU0       CPU1
  0:         17          0   IO-APIC-edge      timer
  1:         10          0   IO-APIC-edge      i8042
  8:          1          0   IO-APIC-edge      rtc0
  9:          0          0   IO-APIC-fasteoi   acpi
 12:        152          0   IO-APIC-edge      i8042
 14:          0          0   IO-APIC-edge      ata_piix
 15:      79904          0   IO-APIC-edge      ata_piix
 16:       4482       6663   IO-APIC-fasteoi   vmwgfx, ioc2
 17:       6308     275984   IO-APIC-fasteoi   ioc0
 18:       2304       3509   IO-APIC-fasteoi   ioc1
 40:          0          0   PCI-MSI-edge      PCIe PME, pciehp
 41:          0          0   PCI-MSI-edge      PCIe PME, pciehp
 42:          0          0   PCI-MSI-edge      PCIe PME, pciehp
 43:          0          0   PCI-MSI-edge      PCIe PME, pciehp
 44:          0          0   PCI-MSI-edge      PCIe PME, pciehp
 45:          0          0   PCI-MSI-edge      PCIe PME, pciehp
 46:          0          0   PCI-MSI-edge      PCIe PME, pciehp
 47:          0          0   PCI-MSI-edge      PCIe PME, pciehp
 48:          0          0   PCI-MSI-edge      PCIe PME, pciehp
 49:          0          0   PCI-MSI-edge      PCIe PME, pciehp
 50:          0          0   PCI-MSI-edge      PCIe PME, pciehp
 51:          0          0   PCI-MSI-edge      PCIe PME, pciehp
 52:          0          0   PCI-MSI-edge      PCIe PME, pciehp
 53:          0          0   PCI-MSI-edge      PCIe PME, pciehp
 54:          0          0   PCI-MSI-edge      PCIe PME, pciehp
 55:          0          0   PCI-MSI-edge      PCIe PME, pciehp
 56:          0          0   PCI-MSI-edge      PCIe PME, pciehp
 57:          0          0   PCI-MSI-edge      PCIe PME, pciehp
 58:          0          0   PCI-MSI-edge      PCIe PME, pciehp
 59:          0          0   PCI-MSI-edge      PCIe PME, pciehp
 60:          0          0   PCI-MSI-edge      PCIe PME, pciehp
 61:          0          0   PCI-MSI-edge      PCIe PME, pciehp
 62:          0          0   PCI-MSI-edge      PCIe PME, pciehp
 63:          0          0   PCI-MSI-edge      PCIe PME, pciehp
 64:          0          0   PCI-MSI-edge      PCIe PME, pciehp
 65:          0          0   PCI-MSI-edge      PCIe PME, pciehp
 66:          0          0   PCI-MSI-edge      PCIe PME, pciehp
 67:          0          0   PCI-MSI-edge      PCIe PME, pciehp
 68:          0          0   PCI-MSI-edge      PCIe PME, pciehp
 69:          0          0   PCI-MSI-edge      PCIe PME, pciehp
 70:          0          0   PCI-MSI-edge      PCIe PME, pciehp
 71:          0          0   PCI-MSI-edge      PCIe PME, pciehp
 72:       1989      20671   PCI-MSI-edge      eth0-rxtx-0
 73:       6129      12377   PCI-MSI-edge      eth0-rxtx-1
 74:          0          0   PCI-MSI-edge      eth0-event-2
 75:          6          0   PCI-MSI-edge      eth1-rxtx-0
 76:          0          0   PCI-MSI-edge      eth1-rxtx-1
 77:          0          0   PCI-MSI-edge      eth1-event-2
 78:          7        129   PCI-MSI-edge      eth2-rxtx-0
 79:        134          0   PCI-MSI-edge      eth2-rxtx-1
 80:          0          0   PCI-MSI-edge      eth2-event-2
 81:     140144          0   PCI-MSI-edge      vmw_vmci
 82:          0          0   PCI-MSI-edge      vmw_vmci
NMI:          0          0   Non-maskable interrupts
LOC:    5869874    6202003   Local timer interrupts
SPU:          0          0   Spurious interrupts
PMI:          0          0   Performance monitoring interrupts
IWI:     514322     365134   IRQ work interrupts
RTR:          0          0   APIC ICR read retries
RES:    2272975    2271602   Rescheduling interrupts
CAL:       1464        770   Function call interrupts
TLB:     181595     224766   TLB shootdowns
TRM:          0          0   Thermal event interrupts
THR:          0          0   Threshold APIC interrupts
MCE:          0          0   Machine check exceptions
MCP:        273        273   Machine check polls
THR:          0          0   Hypervisor callback interrupts
ERR:          0
MIS:          0
[\code]
Shinma
() автор топика
Ответ на: комментарий от AS

Начинаю понимать откуда растут ноги: 1 2 3 4 5

Но тогда выходит, что это сам драйвер в операционке определяет 4 очереди делать или 2. А как этим процессом управлять руками?

Shinma
() автор топика

А вот и ответ количество очередей будет равно числу vCPU ссылка

Дисциплина mq

В начале заметки был вывод tc qdisc show, в котором видно, что к устройству eth0 применена дисциплина mq. Это классовая дисциплина, в которой каждый класс привязан к аппаратной tx-очереди. Однако в выводе tc нет внутренней структуры, это связано с особенностью, поведение которой изменено в commit 95dc192. Ядро 3.13 не включает в себя этот коммит, поэтому заменим его на 3.14.1(можно скомпилировать или взять готовое здесь). Если у вас для экспериментов нет сетевой карты с поддержкой multiqueue, то можно воспользоваться vmware ESXi с сетевой картой vmxnet3(количество очередей будет равно числу vCPU) или другим продуктом с поддержкой vmxnet3.

Shinma
() автор топика
Ответ на: комментарий от Shinma

Но тогда выходит, что это сам драйвер в операционке определяет 4 очереди делать или 2.

Нет. Драйвер делает столько очередей, сколько есть у процессора сетевой карты, если у него поддержка очередей есть. Вот все rx/tx, либо часть rx, часть tx - это не знаю, от драйвера зависит, или, тоже, от сетевой карты.

  50:          1          0          0          0          0          0          0          0   PCI-MSI 4194304-edge      eth0
  51:       9301          0          0          0          0          0          0 3764596512   PCI-MSI 4194305-edge      eth0-TxRx-0
  52:       5702          0          0          0          0          0          0 2820394418   PCI-MSI 4194306-edge      eth0-TxRx-1
  53:       1058          0          0          0          0          0          7 2416800216   PCI-MSI 4194307-edge      eth0-TxRx-2
  54:        984          0          0          0          0          0         26 3178045941   PCI-MSI 4194308-edge      eth0-TxRx-3
  55:       1215          0          0          0          0         30 3383448566          0   PCI-MSI 4194309-edge      eth0-TxRx-4
  56:       1253          0          0          0          0         33 3990904518          0   PCI-MSI 4194310-edge      eth0-TxRx-5
  57:       4850          0          0          0         14          0 1007206742          0   PCI-MSI 4194311-edge      eth0-TxRx-6
  58:       1531          0          0          0         14          0 3323603979          0   PCI-MSI 4194312-edge      eth0-TxRx-7
  68:  416338725          0          0          0          0          0          0          0   PCI-MSI 524288-edge      eth10-rx-0
  69:         96  383479197  197625948   10962542          0    8038014          0    1576648   PCI-MSI 524289-edge      eth10-tx-0
  70:          3          0          0          0          0          0          0          0   PCI-MSI 524290-edge      eth10
eth0 - Intel 82576
eth10 - Intel 82574L

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

AS ★★★★★
()
Последнее исправление: AS (всего исправлений: 1)
Ответ на: комментарий от AS

Так это проявляется только на виртуальных сетевых картах - не физических. vmxnet3

ethtool -i eth0
driver: vmxnet3
version: 1.4.8.0-k-NAPI
firmware-version:
bus-info: 0000:03:00.0
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: yes
supports-priv-flags: no

Но сейчас увидел, что у меня не так. нет зависимости кол-ва очередей от vCpu есть системы где намного больше vCpu, а очереди всего две на 6 vCpu, или 7 на 24vCpu. Но

Shinma
() автор топика
Ответ на: комментарий от Shinma

Так это проявляется только на виртуальных сетевых картах - не физических. vmxnet3

Если это напрямую с поведением физического интерфейса не связано, то не знаю тогда. Вообще-то с vmware давно не сталкивался, а гипервизор их и вовсе не видел.

AS ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.