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的选项,如果开启请关闭。


如何安装mysql服务
我在准备从windows的服务里面启动mysql服务的时候,发现没有mysql的服务了,那我的解决办法就是: 1.如果你没有安装mysql数据库的话,就先安装mysql服务 2.在就在mysql的安装目录下面的bin目录下面,找的mysqld.exe3.安装mysql服务有两种方法 3.1:直接运行mysqld.exe就可以安装服务了 3.2:如果上面...

数据库基础知识——Mysql
MySQL数据库由后台线程以及一个共享内存区组成。共享内存可以被运行的后台线程所共享。需要牢记的是,数据库实例才是真正用于操作数据库文件的。在MySQL中,实例与数据库的关系通常是一一对应的。即一个实例对应一个数据库,一个数据库对应一个实例。但是,在集群情况下可能存在一个数据库被多个数据实例使用...

mysql数据库默认服务端口是
MySQL数据库默认服务端口是3306。在默认情况下,MySQL使用TCP\/IP协议在3306端口上监听客户端的连接请求。这个端口号是MySQL官方推荐的端口号,也是最常用的端口号之一。在使用MySQL时,我们通常需要指定一个TCP\/IP端口号来连接到MySQL服务器,这个端口号可以是3306,也可以是其他端口号。默认情况下,如果未指...

mysql怎么连接数据库
1.通过计算机管理方式或通过命令行方式执行“netstartmysql”命令来启动MySQL服务;在cmd命令行提示符界面,使用cd命令进入mysql安装目录的bin目录下;执行“mysql-h127.0.0.1-uroot-p”或“mysql-hlocalhost-uroot-p”命令并输入密码来登录数据库即可。mysql连接数据库方法:1、第一步点击桌面左下角菜单...

MySQL数据库如何实现双机热备的配置
实现mysql数据库的热备份。2、要想实现双机的热备首先要了解主从数据库服务器的版本的需求。要实现热备mysql的版本都要高于3.2,还有一个基本的原则就是作为从数据库的数据库版本可以高于主服务器数据库的版本,但是不可以低于主服务器的数据库版本。3、设置主数据库服务器a.首先查看主服务器的版本是否...

如何解决mysql数据库连接失败
1、登录账号、密码、服务器名称、数据库名称登录错误导致不能连接。仔细检查好所填信息是否正确,填写正确一般就可以解决。解决方法:当正在使用的软件出现数据库不能连接时,一般就是服务器名出现问题,更改服务器名称一般可以解决问题。数据库如果是安装在本机,服务器名可以用“.”或“local”来代替 ;...

开源世界中的那几个免费数据库_MySQL
首先是MariaDB,它是一个采用Maria存储引擎的MySQL分支版本,是由原来MySQL的作者 Michael Widenius创办的公司所开发的免费开源的数据库服务器。与MySQL相比较,MariaDB更强的地方在于它拥有更多的引擎,包括Maria存储引擎、PBXT存储引擎、XtraDB存储引擎、FederatedX存储引擎,它能够更快的复制查询处理、运行的速度更快、更好...

tableau连接mysql时,出现无法连接服务器,检查服务器是否正在运行以及您...
1.MySQL服务器没有运行:请确认MySQL数据库服务器是否已经启动。可以检查MySQL的状态或者重启MySQL服务,看是否能够正常连接。2.MySQL数据库没有正确配置端口:请确保已经正确设置MySQL数据库的端口号,并在Tableau中正确输入该端口号。默认情况下,MySQL使用3306端口。3.防火墙阻止了连接:如果您的计算机中安装...

什么是MySql数据库
1:使用SHOW语句找出在服务器上当前存在什么数据库: mysql> SHOW DATABASES; 2:2、创建一个数据库MYSQLDATA mysql> CREATE DATABASE MYSQLDATA; 3:选择你所创建的数据库 mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!) 4:查看现在的数据库中存在什么表 mysql> SHOW TABLES; 5:创建一...

MySQL server是什么?
SQL服务器的狭隘的,保守的存储引擎与MySQL服务器的可扩展,开放的存储引擎绝然不同。虽然你可以使用SQL服务器的Sybase引擎,但MySQL能够提供更多种的选择,如MyISAM, Heap, InnoDB, and Berkeley DB。MySQL不完全支持陌生的关键词,所以它比SQL服务器要少一些相关的数据库。同时,MySQL也缺乏一些存储程序...

金川区18765661902: MySQL数据库服务器逐渐变慢 该怎么分析与解决 -
藤迫冰珍: 先确定你系统在架构时是否得当,其次开启慢查询日志.找到造成慢的sql做优化.

金川区18765661902: mysql数据库突然变慢 数据库变慢是什么原因 -
藤迫冰珍: 可能是某个程序有问题,比如连接数据库之后不释放,造成无数的数据库进程,那样数据库就会越来越慢,甚至无法连接. 出现故障的时候,你NETSTAT -N查看一下网络连接,看看是不是许多3306的TCP连接.同时也可以在mysql里面使用show processlist查看有多少数据库进程,以及这些进程正在进行什么操作.

金川区18765661902: mysql服务启动很慢,什么原因 -
藤迫冰珍: 先了解主机和数据库的环境 #主机 内存多大,为了看有多少剩余能为mysql留出多少来:free资源使用情况,看负载情况,重点看空闲 CPU百分比(带 xx% id):top #mysql 看mysql数据文件多大:du -c -s /var/lib/mysql1 初步调整(最主要的) ...

金川区18765661902: mysql数据库查询好慢怎么解决 -
藤迫冰珍: 28万条数据量不是很大,字段稍微有点多,如果不加WHERE 条件的话,数据库判定是查询所有数据库,而加了WHERE 条件时,数据库判定要去详细的查找某个数据,所以速度自然会慢,建立索引可以解决您的问题; CREATE INDEX 索引名 ON 表名 (WHERE 条件用到的列名,如有多个就以逗号分隔); 这次在去WHERE 的时候就会快很多

金川区18765661902: mysql客户端连接数据库很慢,是什么原因? -
藤迫冰珍: 两种可能第一是 机器本身有太多的进程或者服务导致cpu占有两次太高 或者硬盘老化 冗余数据较多 查询结果缓慢第二还有可能是 mysql的设置或者sql语句本身的问题了 看是哪方面的.

金川区18765661902: 假设现在mysql服务器查询较慢,如何查找引起缓慢原因的具体查询语句?如何终止该语句的执行?
藤迫冰珍: 我的思路,先用microtime查每句sql语句的执行时间吧. 查出来耗费时间比较长的那一句自己看一下. 查询语句指的是select吧,如果比较复杂的话,可以用EXPLAIN 语句 来分析一下select 语句的运行效果,例如explain可以获得select语句 使用的索引情况、排序的情况等等.除此以外,explain 的extended 扩展能够在原本explain的基础 上额外的提供一些查询优化的信息,这些信息可以通过mysql的show warnings命令得到. 终止语句执行可以查出正在运行的进程,然后kill掉就可以了. SHOW PROCESSLIST; KILL 查出来的Id;

金川区18765661902: MySql数据库响应速度慢的问题. -
藤迫冰珍: 1、看下开了打开数据库连接之后是否有及时关闭;2、sql语句是否需要优化;3、查询语句添加索引

金川区18765661902: 阿里云服务器链接mysql数据库慢,是什么原因 -
藤迫冰珍: 看下延时.如果延时正常的话,然后查询下连接数,检查是不是创建了大量连接.再没有问题就尝试sqlplus直连.正常情况数据库主机通信不是很大,一般是程序中有大量创建连接引起的.

金川区18765661902: mysql 连接速度超慢,求原因. 不要说改my.ini改了,没用 -
藤迫冰珍: 查一下错误日志吧,看看CPU使用率有没有过高,I/O情况怎么样 还有直接使用mysql -u root -p 登陆进入后台 执行 show processlist; 看看后台有什么进程在执行

金川区18765661902: 数据库变慢是什么原因 -
藤迫冰珍: 访问的用户增加了吧 数据库自执行相关像脚本之类的,都点cpu和内存....

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网