服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Mysql - MySQL数据库服务器逐渐变慢分析与解决方法分享

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

2019-11-28 16:58MYSQL教程网 Mysql

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

一、检查系统的状态 

  通过操作系统的一些工具检查系统的状态,比如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的选项,如果开启请关闭。

延伸 · 阅读

精彩推荐
  • MysqlERROR: Error in Log_event::read_log_event()

    ERROR: Error in Log_event::read_log_event()

    ERROR: Error in Log_event::read_log_event(): read error, data_len: 438, event_type: 2 ...

    MYSQL教程网6412020-03-13
  • Mysql浅谈mysql 树形结构表设计与优化

    浅谈mysql 树形结构表设计与优化

    在诸多的管理类,办公类等系统中,树形结构展示随处可见,本文主要介绍了mysql 树形结构表设计与优化,具有一定的参考价值,感兴趣的小伙伴们可以参...

    小码农叔叔5242021-11-16
  • Mysql详解MySQL中的分组查询与连接查询语句

    详解MySQL中的分组查询与连接查询语句

    这篇文章主要介绍了MySQL中的分组查询与连接查询语句,同时还介绍了一些统计函数的用法,需要的朋友可以参考下 ...

    GALAXY_ZMY5442020-06-03
  • MysqlMySQL数据库varchar的限制规则说明

    MySQL数据库varchar的限制规则说明

    本文我们主要介绍了MySQL数据库中varchar的限制规则,并以一个实际的例子对限制规则进行了说明,希望能够对您有所帮助。 ...

    mysql技术网4192019-11-23
  • Mysql解决MySQl查询不区分大小写的方法讲解

    解决MySQl查询不区分大小写的方法讲解

    今天小编就为大家分享一篇关于解决MySQl查询不区分大小写的方法讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起...

    Veir_dev5592019-06-25
  • Mysqlmysql 不能插入中文问题

    mysql 不能插入中文问题

    当向mysql5.5插入中文时,会出现类似错误 ERROR 1366 (HY000): Incorrect string value: '\xD6\xD0\xCE\xC4' for column ...

    MYSQL教程网5722019-11-25
  • MysqlMySQL锁的知识点总结

    MySQL锁的知识点总结

    在本篇文章里小编给大家整理了关于MySQL锁的知识点总结以及实例内容,需要的朋友们学习下。...

    别人放弃我坚持吖4362020-12-14
  • MysqlMySQL 数据备份与还原的示例代码

    MySQL 数据备份与还原的示例代码

    这篇文章主要介绍了MySQL 数据备份与还原的相关知识,本文通过示例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...

    逆心2972019-06-23