4
回答
性能测试为啥,单机和两台机器响应时间并没有明显提升呢?
华为云实践训练营,热门技术免费实践!>>>   

测试一:使用jmeter对接口(无状态的接口)做压力测试,并发1000。

测试二:两台服务器,nginx做负载均衡,再次并发1000测试,

两个测试(数据库仍然是单机的mysql)的数据基本一样,没有明显提升。

1 .求解,为啥呢?

2. 求解如何找到性能瓶颈呢?

举报
OLESHI
发帖于3个月前 4回/188阅

以下是问题补充:

  • @OLESHI :这里性能瓶颈是接口响应时间,在修改了代码,所有查询都不走mysql, 二是查询redis或者ES,并发1000,响应时间仍然高达20000毫秒,OMG!!!!! (3个月前)

通常分析代码、sql和数据库结构就能找到性能瓶颈。

已知信息比较少。从已知信息中猜测,一种可能是性能已经比较高,单机变多机无明显提升,另一种可能是性能瓶颈在sql和数据库。

你说的性能是指哪方面?通常小并发量的情况下多机部署反而会带来性能上的消耗,你的性能测试应该是测单机并发和多机并发的瓶颈,而对于应用性能(包括代码及sql等)在单机的情况下就可以测出来,使用多机去测意义不大。

--- 共有 6 条评论 ---
RickyLi 回复 @OLESHI : 单机情况下,请求直接访问到服务,而集群多机的情况下,具体访问哪个服务这中间有一个处理过程,你说是直接访问快还是经过计算处理过再决定访问哪个服务快?集群的目的是为了解决高并发高可用,所以在没有达到并发瓶颈的环境下不推荐使用集群。 2个月前 回复
OLESHI 回复 @RickyLi : 【集群的机器越多性能越是不好】,这如何理解? 2个月前 回复
RickyLi 回复 @OLESHI : 集群部署的目的是为了减轻单机的压力,但是在没有达到并发瓶颈的情况下,你集群的机器越多性能越是不好。所以是否集群要看应用场景! 2个月前 回复
OLESHI单机变成了两台机器,理论上,响应时间不应该减半吗?响应时间没有改变,那岂不是集群没有意义啦。。。 2个月前 回复
RickyLi 回复 @OLESHI : 如果你以上的数据是单机应用反馈的,建议你从前端静态资源响应、后端业务代码逻辑、sql、在使用到缓存的情况下还要看缓存命中率,这几个方向去排查 3个月前 回复

接口相应时间? 你的响应时间具体是指业务代码运行完的时间(代码)

还是从发出请求到接口收到请求之间的时间(网络问题?)?

按照你的描述,数据库查询没有影响性能,

是业务代码需要跑这么久?

还是其他?

--- 共有 2 条评论 ---
赵_腾飞 回复 @OLESHI : 你为什么会觉得减半呢? 2个月前 回复
OLESHI单机变成了两台机器,理论上,响应时间不应该减半吗? 2个月前 回复

在测试性能前,使用JProfiler监控你的程序,例如Tomcat,测试完毕后,通过JProfiler可以看到哪些方法的执行比较耗时。。。。。自己百度搜一下JProfiler的教程。。。。

顶部