MySQL數(shù)據(jù)庫服務(wù)器逐漸變慢分析與解決方法分享
更新時間:2012年01月30日 17:46:46 作者:
本文針對MySQL數(shù)據(jù)庫服務(wù)器逐漸變慢的問題, 進行分析,并提出相應(yīng)的解決辦法
一、檢查系統(tǒng)的狀態(tài)
通過操作系統(tǒng)的一些工具檢查系統(tǒng)的狀態(tài),比如CPU、內(nèi)存、交換、磁盤的利用率,根據(jù)經(jīng)驗或與系統(tǒng)正常時的狀態(tài)相比對,有時系統(tǒng)表面上看起來看空閑,這也可能不是一個正常的狀態(tài),因為cpu可能正等待IO的完成。除此之外,還應(yīng)觀注那些占用系統(tǒng)資源(cpu、內(nèi)存)的進程。
1.使用sar來檢查操作系統(tǒng)是否存在IO問題
#sar-u210— 即每隔2秒檢察一次,共執(zhí)行20次。
結(jié)果示例:
注:在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指的是系統(tǒng)資源使用cpu資源的百分比;
%wio指的是等待io完成的百分比,這是值得觀注的一項;
%idle即空閑的百分比。
如果wio列的值很大,如在35%以上,說明系統(tǒng)的IO存在瓶頸,CPU花費了很大的時間去等待I/O的完成。Idle很小說明系統(tǒng)CPU很忙。像以上的示例,可以看到wio平均值為11,說明I/O沒什么特別的問題,而idle值為零,說明cpu已經(jīng)滿負荷運行了。
2.使用vmstat監(jiān)控內(nèi)存 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 的輸出那些信息值得關(guān)注?
io bo: 磁盤寫的數(shù)據(jù)量稍大,如果是大文件的寫,10M以內(nèi)基本不用擔心,如果是小文件寫2M以內(nèi)基本正常
?、?CPU問題
下面幾列需要被察看,以確定cpu是否有問題
Processesinthe run queue (procs r)
Usertime (cpu us)
System time (cpu sy)
Idle time (cpu id)
問題情況:
如果processes in run queue (procs r)的數(shù)量遠大于系統(tǒng)中cpu的數(shù)量,將會使系統(tǒng)便慢。
如果這個數(shù)量是cpu的4倍的話,說明系統(tǒng)正面臨cpu能力短缺,這將使系統(tǒng)運行速度大幅度降低
如果cpu的idle時間經(jīng)常為0的話,或者系統(tǒng)占用時間(cpu sy)是用戶占用時間(cpu us)兩輩的話,系統(tǒng)面臨缺少cpu資源
解決方案 :
解決這些情況,涉及到調(diào)整應(yīng)用程序,使其能更有效的使用cpu,同時增加cpu的能力或數(shù)量
?、趦?nèi)存問題
主要查看頁導(dǎo)入的數(shù)值(swap中的si),如果該值比較大就要考慮內(nèi)存,大概方法如下:
最簡單的,加大RAM
減少RAM的需求
3.磁盤IO問題
處理方式:做raid10提高性能
4.網(wǎng)絡(luò)問題
telnet一下MySQL對外開放的端口,如果不通的話,看看防火墻是否正確設(shè)置了。另外,看看MySQL是不是開啟了skip-networking的選項,如果開啟請關(guān)閉。
通過操作系統(tǒng)的一些工具檢查系統(tǒng)的狀態(tài),比如CPU、內(nèi)存、交換、磁盤的利用率,根據(jù)經(jīng)驗或與系統(tǒng)正常時的狀態(tài)相比對,有時系統(tǒng)表面上看起來看空閑,這也可能不是一個正常的狀態(tài),因為cpu可能正等待IO的完成。除此之外,還應(yīng)觀注那些占用系統(tǒng)資源(cpu、內(nèi)存)的進程。
1.使用sar來檢查操作系統(tǒng)是否存在IO問題
#sar-u210— 即每隔2秒檢察一次,共執(zhí)行20次。
結(jié)果示例:
注:在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指的是系統(tǒng)資源使用cpu資源的百分比;
%wio指的是等待io完成的百分比,這是值得觀注的一項;
%idle即空閑的百分比。
如果wio列的值很大,如在35%以上,說明系統(tǒng)的IO存在瓶頸,CPU花費了很大的時間去等待I/O的完成。Idle很小說明系統(tǒng)CPU很忙。像以上的示例,可以看到wio平均值為11,說明I/O沒什么特別的問題,而idle值為零,說明cpu已經(jīng)滿負荷運行了。
2.使用vmstat監(jiān)控內(nèi)存 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 的輸出那些信息值得關(guān)注?
io bo: 磁盤寫的數(shù)據(jù)量稍大,如果是大文件的寫,10M以內(nèi)基本不用擔心,如果是小文件寫2M以內(nèi)基本正常
?、?CPU問題
下面幾列需要被察看,以確定cpu是否有問題
Processesinthe run queue (procs r)
Usertime (cpu us)
System time (cpu sy)
Idle time (cpu id)
問題情況:
如果processes in run queue (procs r)的數(shù)量遠大于系統(tǒng)中cpu的數(shù)量,將會使系統(tǒng)便慢。
如果這個數(shù)量是cpu的4倍的話,說明系統(tǒng)正面臨cpu能力短缺,這將使系統(tǒng)運行速度大幅度降低
如果cpu的idle時間經(jīng)常為0的話,或者系統(tǒng)占用時間(cpu sy)是用戶占用時間(cpu us)兩輩的話,系統(tǒng)面臨缺少cpu資源
解決方案 :
解決這些情況,涉及到調(diào)整應(yīng)用程序,使其能更有效的使用cpu,同時增加cpu的能力或數(shù)量
?、趦?nèi)存問題
主要查看頁導(dǎo)入的數(shù)值(swap中的si),如果該值比較大就要考慮內(nèi)存,大概方法如下:
最簡單的,加大RAM
減少RAM的需求
3.磁盤IO問題
處理方式:做raid10提高性能
4.網(wǎng)絡(luò)問題
telnet一下MySQL對外開放的端口,如果不通的話,看看防火墻是否正確設(shè)置了。另外,看看MySQL是不是開啟了skip-networking的選項,如果開啟請關(guān)閉。
您可能感興趣的文章:
- PHP開發(fā)環(huán)境配置(MySQL數(shù)據(jù)庫安裝圖文教程)
- 在CentOS上MySQL數(shù)據(jù)庫服務(wù)器配置方法
- mysql數(shù)據(jù)庫從服務(wù)器移植到個人PC的方法
- MySQL數(shù)據(jù)庫服務(wù)器端核心參數(shù)詳解和推薦配置
- linux下perl操作mysql數(shù)據(jù)庫(需要安裝DBI)
- Windows服務(wù)器下MySql數(shù)據(jù)庫單向主從備份詳細實現(xiàn)步驟分享
- linux下指定mysql數(shù)據(jù)庫服務(wù)器主從同步的配置實例
- windows下在一臺機器上安裝兩個MYSQL數(shù)據(jù)庫的方法
- linux安裝mysql和使用c語言操作數(shù)據(jù)庫的方法 c語言連接mysql
- RHEL 6平臺MySQL數(shù)據(jù)庫服務(wù)器的安裝方法
相關(guān)文章
MySql優(yōu)化之InnoDB,4GB內(nèi)存,多查詢的my.ini中文配置方案詳解
本文是一個針對 4G 內(nèi)存系統(tǒng)(主要運行只有 InnoDB 表的 MySQL 并使用幾個連接數(shù)執(zhí)行復(fù)雜的查詢)的MySQL配置文件方案2018-03-03
MySQL?優(yōu)化利器?SHOW?PROFILE?的實現(xiàn)原理及細節(jié)展示
這篇文章主要介紹了MySQL優(yōu)化利器SHOW?PROFILE的實現(xiàn)原理,通過實例代碼展示SHOW PROFILE的用法,需要的朋友可以參考下2024-12-12
mysql外鍵(Foreign Key)介紹和創(chuàng)建外鍵的方法
這篇文章主要介紹了mysql外鍵(Foreign Key)命令和添加外鍵方法,需要的朋友可以參考下2014-02-02
MySQL的雙寫緩沖區(qū)Doublewrite Buffer詳解
這篇文章主要介紹了MySQL的雙寫緩沖區(qū)Doublewrite Buffer詳解,InnoDB是MySQL中一種常用的事務(wù)性存儲引擎,它具有很多優(yōu)秀的特性,其中,Doublewrite Buffer是InnoDB的一個重要特性之一,本文將介紹Doublewrite Buffer的原理和應(yīng)用,需要的朋友可以參考下2023-07-07
mysql內(nèi)連接,連續(xù)兩次使用同一張表,自連接方式
這篇文章主要介紹了mysql內(nèi)連接,連續(xù)兩次使用同一張表,自連接方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12
mysql觸發(fā)器實時檢測一條語句進行備份刪除思路詳解
遇到過這樣一個需求,在一張表里會不時出現(xiàn) “違規(guī)” 字樣的字段,需要在出現(xiàn)這個字段的時候,把整行的數(shù)據(jù)刪掉,針對這個需求我們該如何操作呢,下面跟隨小編看下mysql觸發(fā)器實時檢測一條語句進行備份刪除的解決思路,一起看看吧2021-09-09

