我们正在做一些java压力运行(涉及网络IO)。最初事情都很好,系统响应速度非常快(测试2ms的平均延迟)。但几个小时后,当我重做相同的测试时,我观察到性能下降(20 - 60ms)。它是相同的Jar文件,相同的JVM,以及运行压力的相同LAN。我不明白这种行为的原因。
局域网是1GBPS,对于压力要求,我确信我们没有全部使用它。
所以我的QN:
请帮忙吗?
- 拉维
答案 0 :(得分:0)
一些问题......
您控制了多少环境,是否采取了任何措施以确保每次运行的一致性?也就是说,您与其他系统共享网络,您使用的机器是否仅用于压力测试?
我对此的看法是开始收集有关您的机器和代码的详细信息。这意味着使用perfmon(windows)sar(unix)来找出操作系统和硬件正在做什么并获得一个分析器,以确保您的代码执行相同的操作并帮助确定从代码角度出现瓶颈的位置
没有什么非常详细,但我希望这有助于你开始。
答案 1 :(得分:0)
一般方法是“衡量一切”。这尤其可能意味着:
你可以从第5个元素开始,因为这是(你相信)你的关键链。但最好尽可能多地记录 - 根据你自己所说的,产生不同结果需要天。
如果您不想修改代码,请查找可以在不干预的情况下嗅探数据的情况(例如,在web.xml中定义servlet过滤器)。