利用iperf网络带宽测试工具看多线程及多核编程

本文探讨了如何使用iperf工具测试同一主机内CPU与内存带宽,并揭示了单核多线程对性能的影响。作者指出,尽管多线程可能提高效率,但在资源限制下,单线程性能已接近硬件极限。此外,文章还提供了环回测试和远程测试的带宽上限,并结合实例指导了内存密集型任务的多线程设计策略。

导言


不少人,在编程的时间迷信于多线程能够提高效率,但很少有人去摸清楚背后的量化模型?

让快有快的理由,慢有慢的道理,在逻辑上有比较严密的证明过程!

我们知道,iperf工具可以测定主机间的网络带宽。

但,如果将iperf用于同一台主机内的网络带宽测试,是否可以从一个视角观察到主机内CPU与内存间带宽极限呢?

我相信,以iperf的成熟和历经风霜,它确实可以做到这点,也是我们普通程序员照猫画虎后,所能达到的高度!

这是本文立论的锚点

结论先行


  1. 单核单发处理,已经能够接近或达到硬件平台极限
  2. 增加并发,会降低每个核的处理带宽,且整体提升也相当有限

对于环回测试,即可认为达到CPU与内存带宽极限 

对于远端测试,即可认为达到CPU与外部网卡带宽极限

多线程编程经验


  1. 从CPU和内存的带宽极限,可以推算内存访问密集型任务的多线程数量上限
  2. 如果单线程可以满足处理性能,建议单线程处理。可类比Redis的单线程处理的强大能力
  3. 某些硬件平台CPU和内存的带宽比较低,但cpu核数比较多,多线程编程时,值得警惕消耗内存带宽型线程的数量和分布

iperf测定的内存带宽,远高于网络带宽,存在不同的倍数关系。

简单来看,即使我们程序内部再折腾

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值