议程
什么是性能
MySQL性能如何测量
性能问题一般处理流程
常见MySQL性能问题原因
什么是性能
响应时间 完成单个事务数需要的时间,包括真正的CPU运行时间和等待时间
吞吐量 服务器在单位时间内所能处理的事务或查询数
什么是性能
性能问题常见发现方式:
用户反应
完成业务时间变长,导至用户无法忍受
主动监控 cpu,内存,磁盘出现性能瓶劲
MySQL性能如何测量
MySQL的状态变量
事务数
QPS
常用的监控方式
innodtop,zabbix,mysqladmin
MySQL性能如何测量
MySQL的状态变量
事务数
QPS
常用的监控方式
innotop,zabbix,mysqladmin
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