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项目组欢迎开源爱好者加入和参与。关于项目的最新演讲与文章:

本案例演示LEP观察到负载不均衡情况下,PCDUINO电路板iperf测试网络带宽发挥不出来,并实施负载均衡后,看到PCDUINO网络带宽重大提高。

怎么烧录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 (ID:linuxdev)

原创声明,本文系作者授权云+社区-专栏发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏PHP技术

Apache与Nginx的优缺点比较

Apache与Nginx的优缺点比较 1、nginx相对于apache的优点: 轻量级,同样起web 服务,比apache 占用更少的内存及资源 抗并发,...

3006
来自专栏Windows Community

Windows Phone 8.1新特性 - 应用商店启动协议

Windows Phone 8.1 Preview SDK 发布也有几个月了,之前断断续续也写过几篇 Windows Phone 8.1 新特性的文章,今天给大...

33515
来自专栏屈定‘s Blog

工作--JWT实战总结

公司的登录模块也从Session切换到JWT挺长一段时间了,抽时间来总结一下遇到的问题以及解决方案.

1094
来自专栏杨建荣的学习笔记

半自动化运维之服务器信息维护(r6笔记第17天)

在很多的时候,随着工作的持续开展,可能会接手更多的服务器资源,这个时候我们手里就不但是一两台服务器那么简单,可能几十个,上百个,甚至上千个,这个时候服务器信息的...

2986
来自专栏程序猿DD

Spring Cloud实战小贴士:版本依赖关系

去年在博客上连载了《Spring Cloud构建微服务架构》的系列博文,虽然这部分内容得到了不少关注者们的支持,但是不得不说这些内容只是适用于Spring Cl...

2246
来自专栏大魏分享(微信公众号:david-share)

PowerVM 环境下实施 PowerHA7.1 要点

前言 随着 PowerVM 使用的越来越多,在虚拟化环境下实施 PowerHA 的案例会越来越多。传统 PowerHA6.1 在物理分区下实施是比较经典的配置,...

3114
来自专栏杨建荣的学习笔记

最近的几个技术问题总结和答疑(七) (r9笔记第38天)

今天抽空整理,发现近期问我数据恢复,灾备的问题还比较多,我简单整理了一下。 问题1: 能请教一个问题么?我们用was链接的oracle数据库,是不是不建议在wa...

3183
来自专栏草根专栏

学习Identity Server 4的预备知识

我要使用asp.net core 2.0 web api 搭建一个基础框架并立即应用于一个实际的项目中去. 这里需要使用identity server 4 做单...

3725
来自专栏杨建荣的学习笔记

今天琢磨的几件事情(r7笔记第74天)

今天在琢磨几件事情,也是和工作相关。 数据灾难切换的几点认识: 在unix中可能会碰到在处理网络问题时,超时时间会远远高于linux的情况,这个时候如果尝试做f...

2834
来自专栏散尽浮华

GlusterFS分布式存储学习总结

分布式文件系统 分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源并不直接与本地节点相连,而是分布于计算网络中的一个...

3537

扫码关注云+社区