Transcript

MySQL性能常见原因分析

东东堂

议程

什么是性能

MySQL性能如何测量

性能问题一般处理流程

常见MySQL性能问题原因

什么是性能

响应时间 完成单个事务数需要的时间,包括真正的CPU运行时间和等待时间

吞吐量 服务器在单位时间内所能处理的事务或查询数

什么是性能

性能问题常见发现方式:

用户反应

完成业务时间变长,导至用户无法忍受

主动监控 cpu,内存,磁盘出现性能瓶劲

MySQL性能如何测量

MySQL的状态变量

事务数

QPS

常用的监控方式

innodtop,zabbix,mysqladmin

MySQL性能如何测量

MySQL的状态变量

事务数

QPS

常用的监控方式

innotop,zabbix,mysqladmin

MySQL性能如何测量

MySQL性能如何测量

主机资源利用情况

1. CPU利用率

2. 内存或是换页

3. 存储响应时间

4. 网络响应时间和吞吐量

MySQL性能如何测量

CPU:

vmstat, sar –u,top

内存:

free,top

存储:

iostat, sar –d

网络:

sar –n DEV,第三方网络工具

性能问题一般处理流程

接到反映或是主动发现

收集当前资源的使用情况

识别和分析

性能问题一般处理流程

针对可能的原因提出解决方案

测试方案

验证解决方案

性能问题一般处理流程

生产环境变更

监控变更效果

反复迭代,直至问题解决

常见MySQL性能问题原因

主机资源瓶劲

1. cpu核数,cpu利用率,负载,WIO的百分比;

2. 是否与服务器上其他进程产生争用;

3. 内存不足,产生换页;

4. 存储支持多少IOPS和MBPS;

5. 操作系统配置参数;

6. 网络是否有丢包;

常见MySQL性能问题原因

服务器和操作系统配置:

1. 存储的CACHE配置;

2. 调度器配置;

3. 内存参数;

4. 文件句柄数;

5. 文件系统的类型和挂载参数.

常见MySQL性能问题原因

MySQL配置: 1. mysql的版本选择;

2. 事务刷新事务日志配置;

3. 事务日志的配置;

4. 连接数配置;

5. 各种BUFFER的配置;

6. 各种日志的配置;

7. INNODB的线程并发和缓存设置 ;

8. 数据存放布局.

常见MySQL性能问题原因

应用程序设计因素(1):

1. 使用连接池技术;

2. 索引设计;

3. SQL语句的复杂性;

4. 排序和分组;

5. 分页带来的开锁;

常见MySQL性能问题原因

应用程序设计因素(2):

8.锁问题;

9.连接的顺序;

10.表,列类型的选择.

Q&A QQ:327356330 MySQL DBA群:148695939


Top Related