¿¹Àü¿¡ Å×½ºÆ® Çß´ø ³»¿ëÀ» Á¤¸®Çؼ Àû¾îº»´Ù.
ÀϹÝÀûÀÎ ½Ã½ºÅÛ¿¡¼´Â 1°³ÀÇ ÀåÄ¡¿¡¼ 1°³ÀÇ queue ¸¦ °¡Áö°í 󸮸¦ ÇÑ´Ù.
CPU ¿¡ °¹¼ö°¡ ¹°¸®ÀûÀ¸·Î 2°³ÀÌ»óÀ̰ųª ¿©·¯°³ÀÇ Äھ °¡Áö°í ÀÖ´Ù¸é ±× °¹¼ö¸¸Å CPU¿¡ ÀÛ¾÷À» ÇÒ´çÇÏ¿© 󸮸¦ ÇÏ¸é º¸´Ù È¿À²ÀûÀÎ ÁøÇàÀÌ °¡´ÉÇϳª ¸®´ª½º¿¡¼´Â ÇϳªÀÇ queue ¸¦ °¡Áö°í ÀÖÀ¸¹Ç·Î 1°³ÀÇ cpu ÄھÀ» »ç¿ëÇÑ´Ù.
ÀϹÝÀûÀÎ intel ·£Ä«µå Ĩ¼Â(e1000)
[root@elcap-G1-A ~]# cat /proc/interrupts
CPU0 CPU1 CPU2 CPU3
225: 4186925883 0 0 0 PCI-MSI eth1
233: 1048493217 0 0 0 PCI-MSI eth2
CPU Äھ 4°³°¡ Á¸ÀçÇÏÁö¸¸ ³×Æ®¿öÅ© ÀÛ¾÷À» Çϴ°ÍÀº CPU0 ¸¸À» ÀÌ¿ëÇÏ°í ÀÖ´Ù.
ÀÌ¿¡ CPU Äھ¼ö¸¸Å QUEUE °¹¼ö¸¦ ´Ã·Á¼ º´·Ä·Î ÀÛ¾÷À» ó¸®ÇÒ¼ö ÀÖ°ÔÇÏ´Â°Ô Multiqueue ÀÌ´Ù.
multiqueue
----------
In this mode, a separate MSI-X vector is allocated for each queue and one
for "other" interrupts such as link status change and errors. All
interrupts are throttled via interrupt moderation. Interrupt moderation
must be used to avoid interrupt storms while the driver is processing one
interrupt. The moderation value should be at least as large as the expected
time for the driver to process an interrupt. multiqueue is off by default.
MSI-X support is required for multiqueue. If MSI-X is not found, the system
will fallback to MSI or to Legacy interrupts.
REQUIREMENTS: MSI-X support is required for multiqueue. If MSI-X is not
found, the system will fallback to MSI or to Legacy interrupts.
This driver supports multiqueue in kernel versions 2.6.24 and
greater.
This driver supports receive multiqueue on all kernels that support MSI-X,
with the driver in non-NAPI mode.
NOTE: Do not use MSI-X with the 2.6.19 or 2.6.20 kernels.
To enable a separate vector for TX, use:
# make CFLAGS_EXTRA=-DCONFIG_IGB_SEPARATE_TX_HANDLER
This will allocate a separate handler for tx cleanups. This might be useful
if you have a lot of CPU cores under heavy load and want to spread the
processing load around.
With this option, you would get three MSI-X vectors: one for TX, one for RX,
and one for link.
CONFIG_INET_LRO=y
igb: eth0: igb_probe: Using MSI-X interrupts. 4 rx queue(s), 4 tx queue(s)
Multiqueue (82575 ±â¹Ý ³×Æ®¿öÅ© ¿¬°á Àü¿ë)
ÀÌ ¸ðµå¿¡¼´Â °¢ ´ë±â¿ ¹× ¸µÅ© »óÅ º¯°æ ¹× ¿À·ù¿Í °°Àº "´Ù¸¥" ÀÎÅÍ·´Æ®¿¡ ´ëÇØ º°µµÀÇ MSI-X º¤ÅÍ°¡ ÇÑ °³¾¿ ÇÒ´çµË´Ï´Ù.
¸ðµç ÀÎÅÍ·´Æ®´Â ÀÎÅÍ·´Æ® Á¶ÀýÀ» ÅëÇØ ÃßÁøµË´Ï´Ù.
ÀÎÅÍ·´Æ® Á¶ÀýÀº µå¶óÀ̹ö°¡ ÇϳªÀÇ ÀÎÅÍ·´Æ®¸¦ ó¸®ÇÏ´Â µ¿¾È ÀÎÅÍ·´Æ® ½ºÅèÀ» ¹æÁöÇϴµ¥ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.
Á¶Àý °ªÀº Àû¾îµµ ÀÎÅÍ·´Æ®¸¦ ó¸®ÇÏ´Â µå¶óÀ̹ö¿¡ ´ëÇØ ¿¹»óÇÑ ½Ã°£¸¸Å Ä¿¾ß ÇÕ´Ï´Ù.
MultiqueueÀÇ ±âº»°ªÀº OffÀÔ´Ï´Ù.
Multiqueue¿¡´Â MSI-X Áö¿øÀÌ ÇÊ¿äÇÕ´Ï´Ù.
MSI-X°¡ ¾ø´Â °æ¿ì ½Ã½ºÅÛÀº MSI ¶Ç´Â ·¹°Å½Ã ÀÎÅÍ·´Æ®·Î Æú¹éÇÕ´Ï´Ù. Âü°í: 2.6.19 ¶Ç´Â 2.6.20 Ä¿³ÎÀ» »ç¿ëÇÏ´Â MSI-X¸¦ »ç¿ëÇÏÁö ¸¶½Ê½Ã¿À.
Multiqueue´Â ´ÙÀ½°ú °°Àº ÄÄÆÄÀÏ Ç÷¡±×¸¦ »ç¿ëÇÏ¿© È°¼ºÈÇÒ ¼ö ÀÖ½À´Ï´Ù.
# make CFLAGS_EXTRA=-DCONFIG_IGB_MQ_RX
µ¿Àû ÀÎÅÍ·´Æ® Á¶Àý¿¡ ´Ü¼ø ÀûÀÀ¼º ¾Ë°í¸®ÁòÀ» »ç¿ëÇÏ¿© AIM ¾øÀÌ ÃÖ´ë ³× °³ÀÇ ¼ö½Å ´ë±â¿À» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
¼ö¿ë °¡´ÉÇÑ Ã³¸®·®À» Á¦°øÇÏÁö¸¸ Ãß°¡ ÀÎÅÍ·´Æ®·Î ÀÎÇØ ´ÜÀÏ ´ë±â¿ ¸ðµå º¸´Ù CPU »ç¿ë·üÀÌ ³ô½À´Ï´Ù.
¿©·¯ ¼ÒÇü ÆÐŶÀ» »ç¿ëÇÏ¿© ´ÙÁß ¿¬°áÀ» ó¸®ÇÏ´Â °æ¿ì ¹× CPU »ç¿ë·ü°ú ¹«°üÇÑ °æ¿ì ÀÌ ¸ðµå°¡ À¯¿ëÇÕ´Ï´Ù. Âü°í: Àü¼Û Ŭ¸°¾÷Àº ¼ö½Å °úÁ¤ Áß¿¡ 󸮵˴ϴÙ.
ÀÌ ¿É¼ÇÀ» »ç¿ëÇϸé ÃÖ´ë ´Ù¼¸ °³ÀÇ MSI-X º¤Å͸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.
³× °³ÀÇ ¼ö½Å ´ë±â¿ ´ç Çϳª ¸µÅ© ´ç Çϳª
º¸À¯ÇÒ ¼ö ÀÖ´Â ¼ö½Å ´ë±â¿ÀÇ ¼ö´Â ½Ã½ºÅÛÀÇ CPU ¼ö¿Í Á÷Á¢ °ü·ÃÀÌ ÀÖ½À´Ï´Ù.
¿¹¸¦ µé¾î µà¾ó ÇÁ·Î¼¼¼ ½Ã½ºÅÛÀÇ °æ¿ì µÎ °³ÀÇ ¼ö½Å ´ë±â¿À» ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.
TX¿¡ º°µµÀÇ º¤Å͸¦ È°¼ºÈÇÏ·Á¸é ´ÙÀ½À» »ç¿ëÇÕ´Ï´Ù.
# make CFLAGS_EXTRA=-DCONFIG_IGB_SEPARATE_TX_HANDLER
Àü¼Û Ŭ¸°¾÷ ½Ã º°µµÀÇ Çڵ鷯¸¦ ÇÒ´çÇÕ´Ï´Ù.
·Îµå ¹× CPU Äھ ¸¹Àº »óȲ¿¡¼ CPU ÄÚ¾î °£¿¡ ·Îµå 󸮸¦ ¹èÆ÷ÇÏ·Á´Â °æ¿ì À¯¿ëÇÕ´Ï´Ù.
ÀÌ ¿É¼ÇÀ» »ç¿ëÇϸé 3°³ÀÇ MSI-X º¤Å͸¦ ¾ò°Ô µË´Ï´Ù.
TX ´ç Çϳª RX ´ç Çϳª
¸µÅ© ´ç Çϳª ÀÌÀü µÎ °³ÀÇ ¿É¼ÇÀÌ °áÇÕµÉ ¼ö ÀÖ½À´Ï´Ù.
# make CFLAGS_EXTRA="-DCONFIG_IGB_RX_MQ -DCONFIG_IGB_SEPARATE_TX_HANDLER"
AIMÀ» ºñÈ°¼ºÈÇÏ°í ÃÖ´ë 6°³ÀÇ MSI-X º¤Å͸¦ Á¦°øÇÕ´Ï´Ù.
°¢ ¼ö½Å ´ë±â¿(ÃÖ´ë 4°³) ´ç Çϳª
Àü¼Û Ŭ¸°¾÷ ½Ã Çϳª ¸µÅ© ´ç Çϳª
ÇöÀç ¿©·¯ Àü¼Û ´ë±â¿¿¡ Áö¿øµÇ´Â Ä¿³ÎÀÌ ¾ø½À´Ï´Ù.
µÎ¼¾øÀÌ Àû¾úÁö¸¸.... intel 82575, 82576 À̻󿡼´Â Áö¿øÀÌ µÇ´Â ºÎºÐÀ̸ç e1000 ·£Ä«µå¿¡¼´Â
IntterruptThrottleRate ¿É¼ÇÀ» ÅëÇؼ Áö¿øÀÌ °¡´ÉÇÕ´Ï´Ù.
/etc/modprobe.conf
alias eth1 igb
alias eth2 igb
options igb IntMode=3,3 InterruptThrottleRate=0,0
CPU0 CPU1 CPU2 CPU3
212: 0 0 1 0 PCI-MSI-edge eth1
213: 8817173 11665252 9292331 28324 PCI-MSI-edge eth1-TxRx-3
214: 8974070 11896347 9238982 38707 PCI-MSI-edge eth1-TxRx-2
215: 8848535 12015568 8922508 37493 PCI-MSI-edge eth1-TxRx-1
216: 9 409695 13 144210439 PCI-MSI-edge eth1-TxRx-0
217: 0 0 1 0 PCI-MSI-edge eth0
multiqueue Áö¿ø¿©ºÎ¿¡ µû¶ó¼ ³×Æ®¿öÅ©Ä«µå ÆÛÆ÷¸Õ½º Â÷ÀÌ°¡ È®½ÇÈ÷ ´À²¸Áø´Ù.
Çѹø Å×½ºÆ®Çؼ Àû¿ëÇغ¸½Ã±æ......