天天看點

LEP 與負載均衡 : 以 PCDUINO 實際案例來使用LEP提高網絡帶寬

LEP(LINUX EASY PROFILING) 是Barry Song,Mac Xu,陳松等以及陳莉君老師團隊正在緻力于打造的一個開源項目,其宗旨在于便利Linux的程式員,以最快最直接的方式,定位到系統裡面一些bug的源頭,以及一些性能瓶頸的原因。

這篇文章的内容涉及用LEP(LINUX EASY PROFILING)監控PCDUINO 3nano電路闆網絡流量,觀察負載均衡IDLE、IRQ和SoftIRQ,以及用RPS/RFS提高高網絡負載情況的網絡帶寬。

LEP項目組歡迎開源愛好者加入和參與。關于項目的最新演講與文章:

【終南山.核心問道】Linux性能剖析的可視化

宋寶華:LEP(Linux易用剖析器) 是什麼,為什麼以及怎麼辦(1)

本案例示範LEP觀察到負載不均衡情況下,PCDUINO電路闆iperf測試網絡帶寬發揮不出來,并實施負載均衡後,看到PCDUINO網絡帶寬重大提高。

在 https://github.com/linuxep/images.git 項目下載下傳pcduino-sd.img.gz,用gunzip解壓後得到pcduino-sd.img,寫入PCDUINO的SD卡(SD卡拔出後,以讀卡器插入Linux電腦)。

開機後PCDUINO電路闆的IP位址自動已經配置為192.168.100.100,将電腦與PCDUIBO電路闆網線直連,保證本機可以通路PCDUINO的IP位址。登陸電路闆可以用ssh指令:

無密碼。

電路闆上也內建了ARM版本的LEPD,位于/usr/bin/lepd,運作方法:

LEPV浏覽器端設定方法:

LEP 與負載均衡 : 以 PCDUINO 實際案例來使用LEP提高網絡帶寬

PCDUINO運作iperf伺服器:

電腦運作iperf用戶端(每10秒報一次網絡帶寬):

此時top裡面監控到嚴重的負載不均衡現象:

LEP 與負載均衡 : 以 PCDUINO 實際案例來使用LEP提高網絡帶寬

如果不做任何工作,均衡前電腦上iperf上的周期report:

LEP 與負載均衡 : 以 PCDUINO 實際案例來使用LEP提高網絡帶寬

LEPV浏覽器的顯示(其中CPU1在嚴重地看熱鬧):

LEP 與負載均衡 : 以 PCDUINO 實際案例來使用LEP提高網絡帶寬
LEP 與負載均衡 : 以 PCDUINO 實際案例來使用LEP提高網絡帶寬

在電路闆運作負載均衡腳本:

該負載均衡腳本内容如下,是關于IRQ和SoftIRQ的配置:

此時電腦上iperf帶寬報告:

LEP 與負載均衡 : 以 PCDUINO 實際案例來使用LEP提高網絡帶寬

此時top指令狀态:

LEP 與負載均衡 : 以 PCDUINO 實際案例來使用LEP提高網絡帶寬

此時LEPV端浏覽器顯示

我們看到CPU1的IDLE線迅速下跳(不再看熱鬧了):

LEP 與負載均衡 : 以 PCDUINO 實際案例來使用LEP提高網絡帶寬

CPU1開始處理包:

LEP 與負載均衡 : 以 PCDUINO 實際案例來使用LEP提高網絡帶寬

穩定觀察一段時間後(兩個CPU在均衡處理網絡):

LEP 與負載均衡 : 以 PCDUINO 實際案例來使用LEP提高網絡帶寬

再次恢複惡劣狀态

在電路闆運作負載不均衡腳本(就是預設狀态):

電腦上iperf上的帶寬再次嚴重下降:

LEP 與負載均衡 : 以 PCDUINO 實際案例來使用LEP提高網絡帶寬

均衡前後對比

IDLE

IRQ+SoftIRQ

iperf帶寬

均衡前

CPU0 忙 CPU1閑

30M

均衡後

CPU0 忙 CPU1忙

90M

文章來源于微信公衆号 Linuxer (ID:linuxdev)