本案例演示LEP观察到负载不均衡情况下,PCDUINO电路板iperf测试网络带宽发挥不出来,并实施负载均衡后,看到PCDUINO网络带宽重大提高。
在 https://github.com/linuxep/images.git
项目下载pcduino-sd.img.gz
,用gunzip解压后得到pcduino-sd.img
,写入PCDUINO的SD卡(SD卡拔出后,以读卡器插入Linux电脑)。
sudo dd if=pcduino-sd.img of=/dev/sdx (x是你的SD卡在你电脑的路径)
开机后PCDUINO电路板的IP地址自动已经配置为192.168.100.100,将电脑与PCDUIBO电路板网线直连,保证本机可以访问PCDUINO的IP地址。登陆电路板可以用ssh命令:
ssh root@192.168.100.100
无密码。
电路板上也集成了ARM版本的LEPD,位于/usr/bin/lepd,运行方法:
lepd --debug
LEPV浏览器端设置方法:
PCDUINO运行iperf服务器:
iperf -s
电脑运行iperf客户端(每10秒报一次网络带宽):
iperf -c 192.168.100.100 -P 40 -t 2000 -i 10 -l 1K | grep SUM
此时top里面监控到严重的负载不均衡现象:
如果不做任何工作,均衡前电脑上iperf上的周期report:
LEPV浏览器的显示(其中CPU1在严重地看热闹):
均衡后
在电路板运行负载均衡脚本:
root@pcduino3:/# balance.sh
该负载均衡脚本内容如下,是关于IRQ和SoftIRQ的配置:
echo 2 > /proc/irq/40/smp_affinity
echo 3 > /sys/class/net/eth0/queues/rx-0/rps_cpus
echo 4096 >/proc/sys/net/core/rps_sock_flow_entries
echo 4096 > /sys/class/net/eth0/queues/rx-0/rps_flow_cnt
此时电脑上iperf带宽报告:
此时top命令状态:
此时LEPV端浏览器显示
我们看到CPU1的IDLE线迅速下跳(不再看热闹了):
CPU1开始处理包:
稳定观察一段时间后(两个CPU在均衡处理网络):
再次恢复恶劣状态
在电路板运行负载不均衡脚本(就是默认状态):
root@pcduino3:/# no-balance.sh
电脑上iperf上的带宽再次严重下降:
均衡前后对比
IDLE | IRQ+SoftIRQ | iperf带宽 | |||
---|---|---|---|---|---|
均衡前 | CPU0忙 CPU1闲 | CPU0 忙 CPU1闲 | 30M | ||
均衡后 | CPU0 忙 CPU1忙 | CPU0 忙 CPU1忙 | 90M |
文章来源于:Linuxer 微信公众号
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有