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浏覽器端設定方法:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLxMjM0ADMxUzN4ATNx81N3MzMflTN5QjN5ATN3gDM1EzLc12bj5CZ19GbjFXet5SZslmZuITO2kzMwATMtc2bsJ2Lc9CX6MHc0RHaiojIsJye.png)
PCDUINO運作iperf伺服器:
電腦運作iperf用戶端(每10秒報一次網絡帶寬):
此時top裡面監控到嚴重的負載不均衡現象:
如果不做任何工作,均衡前電腦上iperf上的周期report:
LEPV浏覽器的顯示(其中CPU1在嚴重地看熱鬧):
在電路闆運作負載均衡腳本:
該負載均衡腳本内容如下,是關于IRQ和SoftIRQ的配置:
此時電腦上iperf帶寬報告:
此時top指令狀态:
此時LEPV端浏覽器顯示
我們看到CPU1的IDLE線迅速下跳(不再看熱鬧了):
CPU1開始處理包:
穩定觀察一段時間後(兩個CPU在均衡處理網絡):
再次恢複惡劣狀态
在電路闆運作負載不均衡腳本(就是預設狀态):
電腦上iperf上的帶寬再次嚴重下降:
均衡前後對比
IDLE
IRQ+SoftIRQ
iperf帶寬
均衡前
CPU0 忙 CPU1閑
30M
均衡後
CPU0 忙 CPU1忙
90M
文章來源于微信公衆号 Linuxer (ID:linuxdev)