网站性能着急,怎么定位性能瓶颈进行优化

2018-10-10 15:18:15 +08:00
 seraphv3

公司的网站大约有 180 用户使用,从监控工具听云来看,目前性能吃紧,需要优化。但是没有找到是什么导致了现在的性能吃紧,性能瓶颈在什么地方,向各位大神求助。

目前在 3 台阿里云机器上部署了 3 个 tomcat 实例,用的 nginx 做负载均衡。机器都是 8G 内存,分配了 4G 给 tomcat 的 JVM。网站用到了 mongodb,mysql,redis,3 个 tomcat 用的是同一个数据库。以前出现过 mongodb 性能瓶颈,加了索引之后解决了;还出现过 redis 性能瓶颈导致网站崩溃,切换了阿里云的专用 redis 服务器也解决了;还出现过代码问题导致的 OutOfMemoryError,也优化了。但是现在听云显示的是主要响应时间是在应用层时间上,应用层时间我理解是 CPU 占用的时间,但 CPU 占用率不到 50%,不应该花这么长时间。而且 3 台实例的响应时间统计基本是同步地时间变长变短。看慢请求列表,也是一些普通的不占什么资源的请求。

问下各位大神有什么优化思路。

下图是听云截图

6041 次点击
所在节点    Java
37 条回复
misaka19000
2018-10-10 15:23:13 +08:00
看起来像是数据库的原因,数据库高峰的时候响应时间都 200ms 了,有点慢
hihipp
2018-10-10 15:26:05 +08:00
看慢事务追踪列表,详情。一般都可以定位到哪个方法慢。
hiro0729
2018-10-10 15:26:55 +08:00
不是说阿里云的 io 很捉急么,mysql 直接装在实例上性能不怎么好,也是逼你用云数据库
seraphv3
2018-10-10 15:28:15 +08:00
@misaka19000 左上方的统计图是全部的响应时间,主要的时间是应用层时间

![截图]( http://www.classic-text.com/tingyun/tingyun2.png)
misaka19000
2018-10-10 15:30:02 +08:00
> 目前性能吃紧,需要优化

你是怎么判断出来这个现象的?
seraphv3
2018-10-10 15:32:43 +08:00
@misaka19000 主要是看听云的 Apdex 指标,以前平均能达到 0.99 以上,基本是一条直线,现在只有 0.975 ,差的时候 0.95
liuxu
2018-10-10 15:33:23 +08:00
mongodb 和 redis 尖峰延迟?用的是内网 IP 么,400ms,独出的数据量大了带宽不够?
gaius
2018-10-10 15:38:16 +08:00
180 用户,平均 60 人占一台?
artist
2018-10-10 15:39:29 +08:00
什么业务?多大数据量?遇到 redis 性能瓶颈这个判断可能存在误解,初步猜测问题在代码这块。
seraphv3
2018-10-10 15:41:57 +08:00
@liuxu mongodb、redis 都是内网 IP,我还没想到带宽可能有问题,让我检查下
qcloud
2018-10-10 15:48:11 +08:00
这...........180 用户都这么复杂了咩
seraphv3
2018-10-10 15:48:44 +08:00
@artist 是一个集成了呼叫中心的 CRM 系统,主要是处理名单列表查询、活动统计(活动就是一组名单)、名单呼叫历史查询、工单列表查询等操作,做成多租户的,多的企业有 50000+名单。代码的话我再检查下
CoderGeek
2018-10-10 15:50:32 +08:00
看 slow sql 啥的 是否有不合适的 SQL
captainjack
2018-10-10 16:39:07 +08:00
用 jstack 看看栈情况,估计很多线程都在 blocking 的状态
tao1991123
2018-10-10 16:48:51 +08:00
既然是公司用 就别省钱 把 mongodb,mysql,redis 全部迁出去 用云服务
artist
2018-10-10 17:11:28 +08:00
@seraphv3 这个数据量不大,可能 redis 使用方式有问题,或者单 key 数据太大,带宽小。现在还会出现 OOM 么?代码可以看看是否存在大的事务,事务中数据库查询是否存在没索引全表扫描或者一次查询查出了所有数据。
egfegdfr
2018-10-10 17:16:58 +08:00
听你这么说,感觉 sql 这块的问题更大,关注下慢 sql
seraphv3
2018-10-10 17:17:25 +08:00
@captainjack 感谢,学到一个新工具
seraphv3
2018-10-10 17:24:25 +08:00
@artist 现在没有 OOM 了,只是性能不佳,之前 OOM 就是因为统计的时候一次查出了所有数据在内存中统计导致的。感谢
qq46733
2018-10-10 17:25:22 +08:00
阿里云数据库有个慢日志查看的,看看数据库慢 sql,这个量十有八九是 sql 出了问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/496341

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX