本文主要是介绍Linux系统网络的实时性评估,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
- 1.使用 cyclictest 测试系统实时性
- 2.测试系统通信实时性
- 2.1 PingPlotter
- 2.2 使用 ping 测试通讯实时性
- 3. 使用 iperf 测试带宽
- 4.网络性能测试
1.使用 cyclictest 测试系统实时性
安装cyclictest
sudo apt-get update
sudo apt-get install rt-tests
cyclictest -p 99 -i 1000 -l 10000
- -p 99:设置测试线程的实时优先级为99,这是最高的实时优先级。
- -i 1000:设置测试线程的迭代次数为1000,即测试线程将在每次迭代中执行一次。
- -l 10000:设置测试线程的运行时长为10000微秒(10毫秒)。
这个指令的作用是创建一个实时测试线程,该线程以最高的实时优先级运行,并在每次迭代中执行一次,每次执行的时间为10毫秒。通过测量每次执行的时间间隔,可以评估系统的实时性能和响应时间。
主要用于单核系统,测试线程以最高优先级在固定的时间间隔内运行。
由上图可知,最小延时14us,平均延时20us,最大延时2335us
cyclictest --mlockall --smp --priority=80 --interval=5000 --distance=0
- –mlockall:将测试线程锁定在内存中,以避免因为页面置换(page swapping)而引入的不确定性。
- –smp:在多核系统中运行测试线程,以测试多核环境下的实时性能。
- –priority=80:设置测试线程的实时优先级为80。
- –interval=5000:设置测试线程的运行间隔为5000微秒(5毫秒)。
- –distance=0:设置测试线程的调度器亲和性(scheduler affinity)为0,即允许测试线程在任何CPU核心上运行。
这个指令的作用是创建一个实时测试线程,该线程在内存中被锁定,运行在多核系统中,以较高的实时优先级运行。测试线程在每个5毫秒的间隔内执行一次,并允许在任何CPU核心上运行。这个指令可以用于测试多核系统的实时性能以及调度器的行为。
适用于多核系统,测试线程在较高优先级下以一定的时间间隔运行,并允许在多个CPU核心上执行。
由上图可知,CPU0、CPU1、CPU2、CPU3的最小延时、平均延时20us和最大延时。
2.测试系统通信实时性
2.1 PingPlotter
https://blog.csdn.net/qq_45445740/article/details/134066114?spm=1001.2014.3001.5501
2.3 网络延时测试工具推荐——PingPlotter
2.2 使用 ping 测试通讯实时性
3. 使用 iperf 测试带宽
- 安装iperf
sudo apt-get update
sudo apt-get install iperf3
- 在待测试设备上启动iperf服务器
iperf3 -s
确认iperf服务器已成功启动,在服务器上运行iperf服务器后,应该看到类似以下内容的输出:
- 在客户端上连接到目标服务器并进行网络性能测试
iperf -c 192.168.255.164 -p 5201
14754 Pbits/sec等于14.754 Mbits/sec。
4.网络性能测试
网络性能测试最佳实践
-
测试网络PPS
测试结果中查看rxpck/s列的数据值,rxpck/s表示该测试机每秒钟接收的数据包总数。如下图所示,测试机每秒钟接收到的数据包平均数约为8万。
-
测试网络带宽
在测试结果中查看rxkB/s列的数据值,rxkB/s表示该测试机每秒钟接收的数据包的大小,单位为千字节(KB)。与带宽(kbps)转换关系为:带宽(kbps)= 千字节数(rxkB/s)* 8。
这篇关于Linux系统网络的实时性评估的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!