复制代码

为懒人提供无限可能,生命不息,code不止

人类感性的情绪,让我们知难行难
我思故我在
日拱一卒,功不唐捐
  • 首页
  • 前端
  • 后台
  • 数据库
  • 运维
  • 资源下载
  • 实用工具
  • 接口文档工具
  • 登录
  • 注册

性能优化

【原创】B2B系统性能分析,阿里云RDS实例诊断报告分析

作者: whooyun发表于: 2017-03-20 19:40

最近随着公司业务的发展,系统出现了性能瓶颈,急需进行优化。特此记录优化过程,并进行原因分析。

公司B2B系统性能分析方向:

1、系统架构

2、代码质量

3、数据库表设计

4、sql语句

5、RDS数据库性能报表

性能瓶颈产生的现象:

阿里云RDS数据库CPU时常暴涨至100%

下面贴出阿里云RDS实例诊断报告

看阿里云RDS实例诊断报告,阿里云RDS性能分析得出如下结论:
1、看第一张图的蓝圈圈就知道数据库连接数是够用的,而且只用了40%,也就8000个左右,MAX是7992;
2、第二张图展示的是这段时间内执行的sql语句,这个没体现什么东西出来,略过;
3、第三张图展示的是执行慢的sql语句;
4、第四张图展示的是QPS和TPS,CPU,高峰时QPS竟然能有1万/s,说明系统对业务数据缓存的不够,导致了大量的查询;TPS 1k/s以下,而且比较稳定,说明不了什么问题;CPU百分百说明系统一直在对sql语句进行解析,并进行合法性,语义检查,校验用户权限等;
5、看这个IOPS还是比较低的,应该没啥问题;
6、buf request看不出问题。
总结下看了系统架构,数据库表设计,sql语句,java代码后得出结论,并从以下几个方面进行了解决:
1、修改java 代码,减少业务对数据库的查询
2、增加redis缓存,减少对数据库的查询,从而直接从redis缓存获取数据
3、修改所有查询缓慢sql语句,多表关联,并存在多个字查询的语句,并将语句改成预编译;
4、对数据库表需要经常关联的表字段进行冗余(这个需要根据具体业务优化)