MySQL数据库服务器逐渐变慢分析与解决方法分享                
                
                    所属分类:
                        数据库 / Mysql                    
                    阅读数:
                        771
                    
                        收藏 0赞 0分享
                    
                 
                
                    一、检查系统的状态 
  通过操作系统的一些工具检查系统的状态,比如CPU、内存、交换、磁盘的利用率,根据经验或与系统正常时的状态相比对,有时系统表面上看起来看空闲,这也可能不是一个正常的状态,因为cpu可能正等待IO的完成。除此之外,还应观注那些占用系统资源(cpu、内存)的进程。 
  1.使用sar来检查操作系统是否存在IO问题 
  #sar-u210— 即每隔2秒检察一次,共执行20次。 
  结果示例: 
  注:在redhat下,%system就是所谓的%wio。 
  Linux2.4.21-20.ELsmp (YY075)05/19/2005 
  10:36:07AMCPU%user%nice%system%idle 
  10:36:09AMall0.000.000.1399.87 
  10:36:11AMall0.000.000.00100.00 
  10:36:13AMall0.250.000.2599.49 
  10:36:15AMall0.130.000.1399.75 
  10:36:17AMall0.000.000.00100.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 54712672264 0 0 14 43 53 59 1 198 0 0 
  vmstat 的输出那些信息值得关注? 
  io bo: 磁盘写的数据量稍大,如果是大文件的写,10M以内基本不用担心,如果是小文件写2M以内基本正常 
  ① CPU问题 
  下面几列需要被察看,以确定cpu是否有问题 
  Processesinthe run queue (procs r) 
  Usertime (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的选项,如果开启请关闭。                                    
             
            
                
                MySQL开启慢查询方法及实例
这篇文章主要介绍了MySQL开启慢查询方法及实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
                    
                    收藏 0赞 0分享
简单了解MYSQL数据库优化阶段
这篇文章主要介绍了简单了解MYSQL数据库优化阶段,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
                    
                    收藏 0赞 0分享
Windows下MySQL主从复制的配置方法
MySQL主从复制允许将来自一个数据库(主数据库)的数据复制到一个或多个数据库(从数据库),主数据库一般是实时的业务数据写入和更新操作,从数据库常用的读取为主
                    
                    收藏 0赞 0分享
Mysql数据库设计三范式实例解析
这篇文章主要介绍了Mysql数据库设计三范式实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
                    
                    收藏 0赞 0分享
mysql数据类型和字段属性原理与用法详解
这篇文章主要介绍了mysql数据类型和字段属性,结合实例形式分析了mysql数据类型和字段属性基本概念、原理、分类、用法及操作注意事项,需要的朋友可以参考下
                    
                    收藏 0赞 0分享
mysql连接查询、联合查询、子查询原理与用法实例详解
这篇文章主要介绍了mysql连接查询、联合查询、子查询原理与用法,结合实例形式详细分析了mysql连接查询、联合查询、子查询的基本概念、功能、原理、用法及操作注意事项,需要的朋友可以参考下
                    
                    收藏 0赞 0分享
                 查看更多