我正在尝试对我的Spring RESTful Web服务进行压力测试。
我在Intel Core 2 Duo笔记本电脑上运行Tomcat服务器,有4 GB RAM。我知道这不是一个真正的服务器机器,但是我只有这个,而且仅用于学习目的。
为了进行测试,我在远程机器上运行JMeter,并通过私人WLAN与中央无线路由器通信。我更喜欢从无线连接进行测试,因为它将从移动客户端访问。使用JMeter,我运行了一组50个线程,每秒启动一个线程,然后在50秒后所有线程都在运行。每个线程重复发送一个HTTP请求到服务器,包含要处理的小JSON对象,并在每次迭代时休眠一段时间,该时间等于100毫秒恒定延迟和带有标准偏差为100毫秒的高斯分布的随机值之和。我使用了一些JMeter插件来绘制图形。
以下是结果:
我搞不明白为什么我的每秒点击次数不能超过100阈值(在图表中,它们乘以10),因为使用此配置应该比此值更高(50个线程至少发送三次将生成150次点击/秒)。我没有从服务器收到任何错误消息,并且所有工作似乎都正常。我甚至尝试了更多的配置,但我无法获得100次点击/秒以上。为什么?
[编辑]许多时候我会注意到实际上存在性能下降,没有任何可见原因:客户端没有错误响应消息,只有OK http响应消息,并且在服务器上所有工作都正常,但是当查看报告时:
如您所见,在01:54和02:14之间发生了某些事情:每秒点击次数减少,响应时间增加,好吧,这可能是服务器过载,但是CPU的下降又怎么样呢?这与拥塞假设不兼容。