最近的项目刚开始上线,以前没觉得什么,现在客户都反应系统反应太慢,需要解决,于是我在服务器查看了一下CPU占用情况,果然,mysql数据库就占了百分之九十六七,所以想到了必须要使CPU占用率降下来。
1.show
mysql> show processlist; +--------+-----------------+--------------------+------+---------+---------+-----------------------------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +--------+-----------------+--------------------+------+---------+---------+-----------------------------+------------------+ | 4522 | event_scheduler | localhost | NULL | Daemon | 2315739 | Waiting for next activation | NULL | | 258137 | CMAbutler | 10.14.85.121:55035 | CMA | Sleep | 5337 | | NULL | | 258138 | CMAbutler | 10.14.85.121:55036 | NULL | Sleep | 5360 | | NULL | | 260446 | root | localhost | NULL | Query | 0 | NULL | show processlist | | 264040 | root | localhost | CMA | Sleep | 0 | | NULL | +--------+-----------------+--------------------+------+---------+---------+-----------------------------+------------------+ 5 rows in set (0.00 sec)
先简单分析一下各列的含义和用途,第一列,id,一个标识,你要kill一个语句的时候很有用。user列,显示单前用户,如果不是root,这个命令就只显示你权限范围内的sql语句。host列,显示这个语句是从哪个ip的哪个端口上发出的。呵呵,可以用来追踪出问题语句的用户。db列,显示这个进程目前连接的是哪个数据库
常见问题
一般是睡眠连接过多,严重消耗mysql服务器资源(主要是cpu,
mysql> show global variables like 'wait_timeout'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | wait_timeout | 28800 | +---------------+-------+ 1 row in set (0.00 sec)
3.重设值
mysql> set global wait_timeout=200;
- 标签
- mysql
- cpu
- processlist
内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:https://sulao.cn/post/198
相关推荐
- ubuntu在线安装mysql8无法使用账户密码登陆的问题
- ubuntu22.04编译安装mysql8
- flask使用celery异步定时任务备份mysql数据库
- mysql8登录报错Host '127.0.0.1' is not allowed to connect...
- python使用peewee(ORM)操作mysql数据库
- MySQL CPU占用过高的排查方法
- docker和docker-compose限制容器CPU内存使用的方法
- docker-compose编排lnmp(nginx+php+mysql)环境
- docker和docker-compose分别部署mysql5.7
- centos7编译安装mysql8
评论列表