mysql负载高怎么回事 mysql数据库负载均衡方案

mysql数据库服务器CPU负载超过200%,mysqld进程导致的,如何解决?可以先使用 uptime 命令查看 CPU 平均负载
那个 2 users 表示用户连接数mysql负载高怎么回事,指mysql负载高怎么回事的是总连接数 。
那个 load average 就是系统平均负载mysql负载高怎么回事,1 分钟、5 分钟、15 分钟系统负载的平均值 。
指的是一段时间内 CPU 正在处理以及等待 CPU 处理的进程数之和的统计信息 , 也就是 CPU 使用队列的长度的统计信息 。这个数字越小越好 。
然后再用 vmstat 命令看下 CPU 是否饱和
这里面的 r 就是等待 CPU 的进程数,可以用来判定 CPU 是否饱和,当 r 值高于 CPU 数时,就意味着饱和mysql负载高怎么回事了 。
最右边那个 us,sy,id,wa,st 表示所有 CPU 的使用百分比 。它们分别是 user time,system time , idle , wait I/O 和 steal time 的缩写 。将 us 和 sy 的百分比加和,可以确定 CPU 是否处于忙碌状态 。
如果是多核的机器还可以使用 mpstat 命令查看是否均衡
与 CPU 相关的命令还有 pidstat
这个命令展示了 CPU 消耗在了哪些进程上面 , 消耗过大的进程需要格外关注下 。
基本上你使用上述几个命令 就可以初步了解 CPU 出现了何种问题
有了猜测的方向之后 你就可以进一步深入去排查了
mysqlcpu跑不满开APP
Mysql数据库高CPU问题定位和优化 原创
2020-05-30 19:33:37
5点赞
yw804909465
码龄11年
关注
本课程mysql负载高怎么回事的主旨及目标
【mysql负载高怎么回事 mysql数据库负载均衡方案】?导致mysql数据库CPU高mysql负载高怎么回事的常见原因
?常见定位问题的方法
?一般定位步骤
?数据库注意事项
导致mysql数据库CPU高的常见原因
占用CPU过高mysql负载高怎么回事 , 可以做如下考虑:
1)一般来讲 , 排除高并发的因素,还是要找到导致你CPU过高的哪几条在执行的SQL,show processlist语句,查找负荷最重的SQL语句,优化该SQL , 比如适当建立某字段的索引;
2)打开慢查询日志,将那些执行时间过长且占用资源过多的SQL拿来进行explain分析 , 导致CPU过高 , 多数是GroupBy、OrderBy排序问题所导致 , 然后慢慢进行优化改进 。比如优化insert语句、优化group by语句、优化order by语句、优化join语句等等;
3)考虑定时优化文件及索引;
4)定期分析表,使用optimize table;
5)优化数据库对象;
6)考虑是否是锁问题;
7)调整一些MySQL Server参数,比如key_buffer_size、table_cache、innodb_buffer_pool_size、innodb_log_file_size等等;
8)如果数据量过大 , 可以考虑使用MySQL集群或者搭建高可用环境 。
9)可能由于内存(泄露)导致数据库CPU高
10)在多用户高并发的情况下,任何系统都会hold不住的,所以,使用缓存是必须的,使用memcached或者redis缓存都可以;
11)看看tmp_table_size大小是否偏小 , 如果允许,适当的增大一点;
12)如果max_heap_table_size配置的过小,增大一点;
13)mysql的sql语句睡眠连接超时时间设置问题(wait_timeout)
14)使用show processlist查看mysql连接数 , 看看是否超过mysql负载高怎么回事了mysql设置的连接数
一般定位步骤:
1】首先看看内存 free –m
目前看没有问题,1G的空闲
2】好了,用我们的必杀技,top看看资源消耗
可以看到服务器负载很高,mysql CPU使用已达到接近400%,基本可以看出mysql是可以进行优化的

推荐阅读