1. 程式人生 > >linux下軟中斷[si]負載均衡

linux下軟中斷[si]負載均衡

最近在生產環境的伺服器上發現如下問題:

多程序服務的使用者負載[us]可以均勻分配在各個CPU上執行,但軟中斷負載[si]只集中在CPU0上,導致CPU0的[si]段的負載達到70%,而其他幾個核的si段負載為0%,為何會出現此現象呢?

首先,我們檢視一下,是哪一個軟中斷佔用的比較高(watch -d -n 1 'cat /proc/softirqs'):


從圖中可以看出:NET_RX佔用的中斷比較高。

經查詢:NET_RX是網絡卡操作相關的中斷;

疑問:網絡卡讀寫為什麼會集中繫結在一個CPU上呢?

解釋:在沒有irqbalance服務的情況下,網絡卡操作預設繫結在了CPU0上,導致所有的軟中斷都在CPU0上執行。

解決辦法:安裝irqbalance服務並啟用,問題解決