程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 總結MySQL數據庫服務器逐漸變慢的原因和解決辦法

總結MySQL數據庫服務器逐漸變慢的原因和解決辦法

編輯:MySQL綜合教程

在開發的朋友特別是和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的選項,如果開啟請關閉。

您可能感興趣的文章

  • 總結mysql服務器查詢慢原因與解決方法
  • Mysql 數據庫緩存cache功能分析,調試以及性能總結
  • 關於mysql數據庫大小寫敏感的問題
  • MySQL 大數據量快速插入方法和語句性能優化
  • MySQL數據庫引擎MyISAM和InnoDB的區別介紹
  • Navicat for mysql 遠程連接 mySql數據庫提示10061,1045錯誤的解決辦法
  • 學會設置MySQL數據庫的五個常用參數
  • 合理使用MySQL數據庫索引以使數據庫高效運行

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved