zl程序教程

您现在的位置是:首页 >  其他

当前栏目

【网络编程实践】2.3.6 测试 netcat 性能

测试网络性能编程 实践 2.3 netcat
2023-09-27 14:28:32 时间

这里提供三种netcat的实现:


以下将以截图形式,展示测试结果。其中左上为 top 命令显示的各程序的资源占用情况,左下为执行的 netcat 程序,右为执行的 chargen 测试程序。

  1. 测试系统自带的 netcat 性能,约为 11360MiB/s
    在这里插入图片描述

  2. 测试自实现的 netcat 性能。约为 3200MiB/s
    在这里插入图片描述

通过对比,我们可以发现自实现的 netcat 比系统实现的要快一些。

  1. 分析cpu资源分配对整个测试结果的影响

分析 cpu 的使用率我们可以发现,在测试系统自带的 netcat 时,nc cpu 100%, 而chargen cpu 35%, 说明在测试结果11360 MiB/s 中, nc 程序是性能的瓶颈,拖慢了整个数据的传输速率。

而在测试自带的 nc 性能时,chargen cpu 100%,nc 接近 100%,测得性能为 3200 MiB/s

此时,如果我们再加上一个 pv 命令用于显示实时带宽,就会发现整体的测试结果会下降到 1130 MiB/s 左右。此时如果我们关注cpu的占用率,就会发现 pv 占用了一部分 cpu,导致 chargen 程序的cpu占用下降,从而拖慢了整个测试结果。
在这里插入图片描述

  1. 测试基于 python 实现的 netcat 性能,约为 940 MiB/s
    在这里插入图片描述
  2. 测试基于 python 实现的非阻塞IO的 netcat 性能,约为 958 MiB/s
    在这里插入图片描述