-
Notifications
You must be signed in to change notification settings - Fork 507
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
如何在不调高cc并发值的情况下测试吞吐率? #165
Comments
请问keepalive有办法继续调小吗? |
暂时只能调到1ms,你当前CC多少,你需要keepalive多小? |
我当前cc=80,keepalive=1ms,那台低性能的DUT的cpu已经接近满负荷了。(DUT的TCP隧道服务对established的连接非常敏感,连接一高就CPU满载) |
如果这个DUT性能不高,为什么不用iperf,ab,wrk等测试? |
主要需求是为了测试不同数据包大小的吞吐率(比如64 bytes,128 bytes,256 bytes..)。 |
你直接修改代码,测试一下吧 |
请问这种修改方式的含义,是不是keepalive依然配置成1ms,但dperf会按照1ms/100作为间隔执行? |
是,需要修改C代码,重新编译
是,配置文件还不支持这样设置,只能先硬编码,先测试一下 |
符合预期吗? |
我刚才直接改成/1000,然后编译,在较低CC的情况下,吞吐率确实有小幅度提升,但是还没达到预期(测试大包,和iperf对比的) |
/10试试, dperf的定时器精度只有0.1ms |
/10也试了一下,有提升,但是提升不大。 我期望用dperf能跑出750/750 Mbps的吞吐率(参考iperf结果) 服务端配置
客户端配置
|
会不会还需要修改别的地方的代码? |
1, tx_burst 注释掉 |
请用这个分支测试一下, 设置keepalive 1ms,硬编码为0.01ms了 tx_burst 注释掉 |
用tick分支编译了,但是跑出来的结果和昨天手动修改/10的结果差不多。tx_burst 注释掉了。 |
绑定2个CPU也试了,没有多余的网口,rss 选择 auto。似乎CC一直在增加(DUT查看established的连接一直在增加) |
并发连接数(cc)能调高吗 |
如果是物理机,不要设置rss,用fidr特性,需要server上配置的IP数等于启用的CPU数;否则不要用rss |
修复了一个Bug,现在可以了。 |
用最新的代码进行编译,吞吐率依然没什么提升。 |
是的,我用UDP测试,是可以的。 我的配置: tx_burst 4 #rss auto keepalive 1ms cpu 0 |
我没法用udp,因为dut隧道只支持传输tcp包。 |
请重新拉取分支 https://github.com/pengjianzhang/dperf/tree/tick, 谢谢 TCP 的PPS更加精确,这是我测试单TCP连接测试 10K PPS seconds 53 cpuUsage 1 |
麻烦反馈一下测试结果,谢谢~ |
稍等一下,我这两天在处理其他高优先级的任务。 |
1.对于性能测试结果,询问了研发人员,iperf的测试结果应该不准(偏高太多),不能作为参考,dperf的测试结果看起来可能是准确的。
配置:
|
谢谢 你们的测试和反馈 建议server 上keepalive设置为 1s,避免不必要的重传。 😄,问一下,研发给dperf加⭐️了吗~~~~~? |
不好意思问他加没加⭐,因为那位研发是我老板😅 |
难道不想和作者互动一下吗,这个特性可是花了很多精力的,开玩笑的,😊,非常感谢你们的合作,让dperf又进步了一点点 你们能写一篇文章,介绍一下这次测试,对比一下dperf与iperf吗,我想有很多人好奇,dperf与iperf测试带宽有什么不一样,这将是非常有意义的文章。请把文章提交到项目里,挂到项目主页上 |
改成1s,确实差不多100倍提升。不过我觉得keepalive改小点,性能更好,也就不需要那么大的并发数。
等“研发”心情好了,我问问他😄 |
我抽空会分享 为什么测试小包时,dperf对比iperf更精准。 |
该功能已经合入主干,可以配置"keepalive 10us",试一下吧~~ |
我正在测试一条TCP隧道的吞吐率性能。
看了相关的文章和配置模板,大致就是调高CC,调小keepalive(比如1ms)
目前遇到的情况是,CC并发值过高会增加DUT的CPU的负担,反而达不到预期的性能;CC如果调小,dperf无法将带宽压满。而keepalive似乎最小只能是1ms,不能更小了。
请问有什么方法,在不增加CC的情况下,测试吞吐率?
The text was updated successfully, but these errors were encountered: