开发者社区> 余二五> 正文

MySQL数据库服务器逐渐变慢分析与解决

简介:
+关注继续查看

本文针对MySQL数据库服务器逐渐变慢的问题, 进行分析,并提出相应的解决办法。

  一、检查系统的状态

  通过操作系统的一些工具检查系统的状态,比如CPU、内存、交换、磁盘的利用率,根据经验或与系统正常时的状态相比对,有时系统表面上看起来看空闲,这也可能不是一个正常的状态,因为cpu可能正等待IO的完成。除此之外,还应观注那些占用系统资源(cpu、内存)的进程。

  1.使用sar来检查操作系统是否存在IO问题

#sar -u 2 10 — 即每隔2秒检察一次,共执行20次。
结果示例:

  注:在redhat下,%system就是所谓的%wio。

Linux 2.4.21-20.ELsmp (YY075) 05/19/2005
10:36:07 AM CPU %user %nice %system %idle
10:36:09 AM all 0.00 0.00 0.13 99.87
10:36:11 AM all 0.00 0.00 0.00 100.00
10:36:13 AM all 0.25 0.00 0.25 99.49
10:36:15 AM all 0.13 0.00 0.13 99.75
10:36:17 AM all 0.00 0.00 0.00 100.00
   其中:

  %usr指的是用户进程使用的cpu资源的百分比;

     %sys指的是系统资源使用cpu资源的百分比;

  %wio指的是等待io完成的百分比,这是值得观注的一项;

  %idle即空闲的百分比。

  如果wio列的值很大,如在35%以上,说明系统的IO存在瓶颈,CPU花费了很大的时间去等待I/O的完成。Idle很小说明系统CPU很忙。像以上的示例,可以看到wio平均值为11,说明I/O没什么特别的问题,而idle值为零,说明cpu已经满负荷运行了。

  2.使用vmstat监控内存 cpu资源

[root@mysql1 ~]# vmstat
procs ———–memory———- —swap– —–io—- –system– —–cpu——
r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
0  0     72  25428  54712 672264    0    0    14    43   53   59  1  1 98  0  0
   vmstat 的输出那些信息值得关注?

  io bo: 磁盘写的数据量稍大,如果是大文件的写,10M以内基本不用担心,如果是小文件写2M以内基本正常

  ① CPU问题

  下面几列需要被察看,以确定cpu是否有问题

Processes in the run queue (procs r)
User time (cpu us)
System time (cpu sy)
Idle time (cpu id)
   问题情况:

   如果processes in run queue (procs r)的数量远大于系统中cpu的数量,将会使系统便慢。

   如果这个数量是cpu的4倍的话,说明系统正面临cpu能力短缺,这将使系统运行速度大幅度降低

  如果cpu的idle时间经常为0的话,或者系统占用时间(cpu sy)是用户占用时间(cpu us)两辈的话,系统面临缺少cpu资源

  解决方案 :

  解决这些情况,涉及到调整应用程序,使其能更有效的使用cpu,同时增加cpu的能力或数量

  ②内存问题

  主要查看页导入的数值(swap中的si),如果该值比较大就要考虑内存,大概方法如下:

  最简单的,加大RAM

  减少RAM的需求

  3.磁盘IO问题

  处理方式:做raid10提高性能

  4.网络问题

  telnet一下MySQL对外开放的端口,如果不通的话,看看防火墙是否正确设置了。另外,看看MySQL是不是开启了skip-networking的选项,如果开启请关闭。
 










本文转自 wws5201985 51CTO博客,原文链接:http://blog.51cto.com/wws5201985/737775,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
mysql 常见错误:Can't create table... errno150原因分析
mysql 常见错误:Can't create table... errno150原因分析
22 0
java Swing+mysql+JDBC实现教务系统(源码+数据库+UML图+数据库分析)
🍅程序员小王的博客:程序员小王的博客 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 如有编辑错误联系作者,如果有比较好的文章欢迎分享给我,我会取其精华去其糟粕 🍅java自学的学习路线:java自学的学习路线
37 0
mysql连接5个表加模糊查询的sql怎么优化分析
🍅程序员小王的博客:程序员小王的博客 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 如有编辑错误联系作者,如果有比较好的文章欢迎分享给我,我会取其精华去其糟粕 🍅java自学的学习路线:java自学的学习路线
50 0
《HTAP能力持续增强 HybridDB for MySQL分析性能提升》电子版地址
HTAP能力持续增强 HybridDB for MySQL分析性能提升
21 0
【MySQL技术专题】分析MySQL的高可用架构技术分析和指南
【MySQL技术专题】分析MySQL的高可用架构技术分析和指南
94 0
Mysql中 慢查询日志和show profile进行sql分析
MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。
93 0
MySQL分析
设计数据库的结构、表达式,条件语句与运算,根据=号来返回值true或false,允许创建⼀个虚拟列或对已有的列进⾏组合或修改后产⽣的派⽣列,别名,减号的作⽤,可以取负,也可以减去,空值与空⽩值区分,结果,不等于 等等。
27 0
FAQ系列 | 是什么导致MySQL数据库服务器磁盘I/O高?
FAQ系列 | 是什么导致MySQL数据库服务器磁盘I/O高?
40 0
FAQ系列 | 是什么导致MySQL数据库服务器磁盘I/O高?
FAQ系列 | 是什么导致MySQL数据库服务器磁盘I/O高?
125 0
+关注
余二五
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
让 MySQL 原生分布式触手可及
立即下载
好的 MySQL 兼容可以做到什么程度
立即下载
云数据库RDS MySQL从入门到高阶
立即下载