不少人,在编程的时间迷信于多线程能够提高效率,但很少有人去摸清楚背后的量化模型?
让快有快的理由,慢有慢的道理,在逻辑上有比较严密的证明过程!
我们知道,iperf工具可以测定主机间的网络带宽。
但,如果将iperf用于同一台主机内的网络带宽测试,是否可以从一个视角观察到主机内CPU与内存间带宽极限呢?
我相信,以iperf的成熟和历经风霜,它确实可以做到这点,也是我们普通程序员照猫画虎后,所能达到的高度!
这是本文立论的锚点!
对于环回测试,即可认为达到CPU与内存带宽极限
对于远端测试,即可认为达到CPU与外部网卡带宽极限
iperf测定的内存带宽,远高于网络带宽,存在不同的倍数关系。
简单来看,即使我们程序内部再折腾几次同样级别的的内存拷贝,应该还是可以满足网络带宽处理要求的,单CPU富有余力!
进一步发展来看,iperf测试网络带宽工具,甚至可以作为硬件平台选型的参考工具。
iperf3 -s
- # 单发
- iperf3 -c localhost
-
- # 双发、多发并行
- iperf3 -c localhost -P [2..10]
- # 单发
- iperf3 -c remotehost
-
- # 双发、多发并行
- iperf3 -c remotehost -P [2..10]
无独有偶,多方验证