本文针对MySQL数据库服务器逐渐变慢的问题, 进行分析,并提出相应的解决办法。 一、
检查系统的状态 通过操作系统的一些工具检查系统的状态,比如CPU、内存、交换、磁盘的利用率,根据经验或与系统正常时的状态相比对,有时系统表面上看起来看空闲,这也可能不是一个正常的状态,因为cpu可能正等待IO的完成。除此之外,还应观注那些占用系统资源(cpu、内存)的进程。
1.使用sar来检查操作系统是否存在IO问题<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->#sar -u 2 10 — 即每隔2秒检察一次,共执行20次。 结果示例: 注:在RedHat下,%system就是所谓的%wio。<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->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资源<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->[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是否有问题<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->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的选项,如果开启请关闭。
| 【内容导航】 |
| 第1页:检查系统的状态 | 第2页:检查MySQL参数 |
| 第3页:检查mysql 相关状态值 | 第4页:安装sysstat 系统状态包 |
| 第5页:SAR命令的五个例子 | 第6页:vmstat命令输出的六个部分 |
| 第7页:根据mysql状态调整系统参数 | 第8页:根据mysql状态调整系统参数 |
使用嵌入式关系型SQLite数据库存储数据Navicat异地自动备份MySQL方法详解相关资讯 MySQL数据库
- MySQL数据库重命名的方法 (06/16/2015 20:17:43)
- 10款最好用的MySQL数据库客户端图 (01/07/2015 15:05:35)
- Linux系统入门学习:命令行创建一 (10/11/2014 07:29:28)
| - MySQL之终端(Terminal)管理数据 (03/02/2015 17:03:41)
- C语言访问MySQL数据库的方法 (11/17/2014 23:10:15)
- 给Linux用户的11个高级MySQL数据库 (08/15/2014 16:41:16)
|
本文评论 查看全部评论 (0)