Ubuntu
如何在 Xen XCP 內的 Ubuntu PV domU 上更改 IRQ 的 SMP 親和性?
我想更改 IRQ SMP 親和力,原因如下:CPU0 is swamped with eth1 interrupts
但我不能——
Input/output error
當我嘗試寫信時,我明白了/proc/irq/*/smp_affinity
。請指點我關於此事的HOWTO。(正式的參考
/proc/irq/*/
也會很酷。)血腥細節:
請注意,這是基於 Ubuntu 的 Xen XCP 主機內的 VM (PV domU)。
$ unname -a Linux MYHOST 2.6.38-15-virtual #59-Ubuntu SMP Fri Apr 27 16:40:18 UTC 2012 i686 i686 i386 GNU/Linux $ lsb_release -a 沒有可用的 LSB 模組。 經銷商編號:Ubuntu 說明:Ubuntu 11.04 發佈時間:11.04 代號:納蒂 $ sudo cat /proc/irq/*/smp_affinity 01 01 01 01 01 80 80 80 80 80 80 40 40 40 40 40 40 20 20 20 20 20 20 10 10 10 10 10 10 08 08 08 08 08 08 04 04 04 04 04 04 02 02 02 02 02 02 01 01 01 01 01 01
**更新。**錯誤詳情:
$ N=$(grep -c 處理器 /proc/cpuinfo) $迴聲$N 8 $ printf %x $((2**N-1)) ff $ printf %x $((2**N-1)) | sudo tee /proc/irq/*/smp_affinity fftee:/proc/irq/288/smp_affinity:輸入/輸出錯誤 三通:/proc/irq/289/smp_affinity:輸入/輸出錯誤 三通:/proc/irq/290/smp_affinity:輸入/輸出錯誤 tee:/proc/irq/291/smp_affinity:輸入/輸出錯誤 三通:/proc/irq/292/smp_affinity:輸入/輸出錯誤 tee:/proc/irq/293/smp_affinity:輸入/輸出錯誤 tee:/proc/irq/294/smp_affinity:輸入/輸出錯誤 tee:/proc/irq/295/smp_affinity:輸入/輸出錯誤 三通:/proc/irq/296/smp_affinity:輸入/輸出錯誤 三通:/proc/irq/297/smp_affinity:輸入/輸出錯誤 tee:/proc/irq/298/smp_affinity:輸入/輸出錯誤 三通:/proc/irq/299/smp_affinity:輸入/輸出錯誤 tee:/proc/irq/300/smp_affinity:輸入/輸出錯誤 三通:/proc/irq/301/smp_affinity:輸入/輸出錯誤 tee:/proc/irq/302/smp_affinity:輸入/輸出錯誤 tee:/proc/irq/303/smp_affinity:輸入/輸出錯誤 tee:/proc/irq/304/smp_affinity:輸入/輸出錯誤 三通:/proc/irq/305/smp_affinity:輸入/輸出錯誤 tee:/proc/irq/306/smp_affinity:輸入/輸出錯誤 三通:/proc/irq/307/smp_affinity:輸入/輸出錯誤 tee:/proc/irq/308/smp_affinity:輸入/輸出錯誤 三通:/proc/irq/309/smp_affinity:輸入/輸出錯誤 三通:/proc/irq/310/smp_affinity:輸入/輸出錯誤 tee:/proc/irq/311/smp_affinity:輸入/輸出錯誤 tee:/proc/irq/312/smp_affinity:輸入/輸出錯誤 tee:/proc/irq/313/smp_affinity:輸入/輸出錯誤 tee:/proc/irq/314/smp_affinity:輸入/輸出錯誤 三通:/proc/irq/315/smp_affinity:輸入/輸出錯誤 三通:/proc/irq/316/smp_affinity:輸入/輸出錯誤 三通:/proc/irq/317/smp_affinity:輸入/輸出錯誤 tee:/proc/irq/318/smp_affinity:輸入/輸出錯誤 tee:/proc/irq/319/smp_affinity:輸入/輸出錯誤 三通:/proc/irq/320/smp_affinity:輸入/輸出錯誤 tee:/proc/irq/321/smp_affinity:輸入/輸出錯誤 tee:/proc/irq/322/smp_affinity:輸入/輸出錯誤 tee:/proc/irq/323/smp_affinity:輸入/輸出錯誤 tee:/proc/irq/324/smp_affinity:輸入/輸出錯誤 tee:/proc/irq/325/smp_affinity:輸入/輸出錯誤 tee:/proc/irq/326/smp_affinity:輸入/輸出錯誤 tee:/proc/irq/327/smp_affinity:輸入/輸出錯誤 tee:/proc/irq/328/smp_affinity:輸入/輸出錯誤 tee:/proc/irq/329/smp_affinity:輸入/輸出錯誤 三通:/proc/irq/330/smp_affinity:輸入/輸出錯誤 tee:/proc/irq/331/smp_affinity:輸入/輸出錯誤 tee:/proc/irq/332/smp_affinity:輸入/輸出錯誤 tee:/proc/irq/333/smp_affinity:輸入/輸出錯誤 tee:/proc/irq/334/smp_affinity:輸入/輸出錯誤 tee:/proc/irq/335/smp_affinity:輸入/輸出錯誤
更新。
irqbalance
在跑:$ sudo 服務 irqbalance 狀態 irqbalance 開始/執行,程序 560
我不認為將中斷移動到不同的 CPU——尤其是處理網路事件——會提高性能。
相反會發生,因為網路程式碼不能再保存在特定的 CPU 中。
因此,只要您在網路介面上沒有遇到丟包的情況,我會說 - 這對於服務於許多數據包的網路來說是很正常的行為。
您需要減少中斷的數量 - 移動它們無濟於事(相反,正如我試圖概述的那樣)。
我看到兩種可能的解決方案:
- 提高 MTU 大小以減少中斷數
- 將 DomU 的 vCPU 0 固定到 Dom0 上的專用 CPU(不被任何其他 VM 或 Dom0 使用)。
2012 年 12 月 17 日更新:既然您要求提供權威連結 - 我試圖問一個一般性問題何時不使用虛擬化- 我認為這是您達到一般 VM 限制的情況之一。該問題的一個答案包含一種不同的方法:使用容器,而不是虛擬化。
我希望這有幫助…