AWS RDS 排查性能问题
AWS RDS 排查数据库问题
1.查看当前横在执行的SQL
select id,user,time,left(info,100) from information_schema.processlist where time>0 and info is not null order by time desc ;
2.AWS RDS 查看性能详情
查看 Top SQL,AAS最高的几个sql,然后看这个颜色的柱子,综合正在执行的SQL 最后初步得出具体什么原因导致的。
3.kill 会话
查看正在执行会话的用户
SELECT id, USER, HOST, COMMAND, TIME, STATE,info, QUERY_ID FROM INFORMATION_SCHEMA.PROCESSLISTWHERE USER = '...' and id='...' and COMMAND <>'Sleep' \G;
kill 掉具体的用户会话:
CALL mysql.rds_kill( id );
4. 终极手法
在复杂情况中,MySQL 并没有非常实时的将耗时SQL凸显出来,我们可以找一台VPC内服务器,通过一个简单的脚本将数据库当前性能详情写入到一个文件里面,用来分析,查看数据库正在干什么。
[root@ip-10-1-61-250 ~] # cat ./mysqltest.sh
#!/bin/bash
while :;
do
mysql -hjiangmysql.cpa1onesgnhw.rds.cn-north-1.amazonaws.com.cn -uroot -pXXXXX -e"select now();show full processlist;show status like 'Open_tables';show open tables;" >> /root/mysqldata.log;
sleep 5;
done