我编写了一个可以在两台服务器之间转发ip数据包的程序,那么如何测试程序的速度呢?谢谢!
答案 0 :(得分:7)
您的潜在用户可能会对许多通信指标感兴趣。
延迟是发送消息的时间量,对于共置设备通常以微秒为单位,对于所有其他方案通常以毫秒为单位。它通常被称为“零字节延迟”,意味着传输消息的元数据所需的时间。越低越好。
带宽以每秒位数衡量。它通常被称为“峰值带宽”,可以通过在线路上发送大量数据来获得。越高越好。
CPU利用率是传输邮件所需的CPU时间百分比。可以卸载消息传输的网络协议具有低利用率,这意味着通信可以“重叠”用户应用程序中的一些其他计算,这具有隐藏延迟的效果。越低越好。
所有这些都只是通过 ping 测试的变体测量,通常称为“乒乓”:
Node 1:
for n = 1 to MAXSIZE, step via n*=2
send message of size n bytes
receive a response of size n bytes
Node 2:
for n = 1 to MAXSIZE, step via n*=2
receive a message of size n bytes
send response of size n bytes
还有一个“ping-ping”测试,其中两个节点同时相互写入。这需要非阻塞通信来进行设置。
输出n
和每次迭代所需的时间。第一次是零字节延迟。最大的可持续 n/time
是带宽(转换为每秒位数为行业标准)。您还可以测量运行较大迭代所需的CPU利用率,但对于完全不同的问题,这是一个棘手的主题。
答案 1 :(得分:4)
看看iperf。你可以在http://sourceforge.net/projects/iperf/找到它。如果你在谷歌周围,你会找到它的教程。您可以查看源代码,并可能会了解他是如何做到这一点的。我用它进行常规测试,非常强大