mysqlreport顯示Com_中change_db占用比例高的問題的解決方法

最近公司的mysql服務器經常出現阻塞狀態。動不動就重啟,給用戶訪問帶來了相當的不便。

首先說明一點,每天的訪問量并不大每天才2W的訪問量,按道理說,訪問量再增加一倍這樣的服務器也應該足以承受。可是我們的服務器為什么總是這樣頻頻重啟呢?經過mysqlreport顯示mysql運行的狀態如下:

<PRE><PRE><PRE><PRE><PRE><PRE><PRE><PRE><PRE><PRE><PRE><PRE><PRE><FONT color=#006bad>MySQL 5.1.28-rc-log   uptime 0 0:4:48    Thu Apr 30 14:04:58 2009<br><br>__ Key _________________________________________________________________<BR>Buffer used   7.74M of 384.00M %Used:  2.02<BR> Current   52.89M      %Usage: 13.77<BR>Write hit    0.00%<BR>Read hit    91.97%<br><br>__ Questions ___________________________________________________________<BR>Total     14.46k  50.2/s<BR> DMS      9.24k  32.1/s %Total: 63.90<BR> QC Hits    3.66k  12.7/s      25.33<BR> Com_     1.04k   3.6/s      7.19<BR> COM_QUIT    517   1.8/s      3.58<BR> -Unknown     1   0.0/s      0.01<BR>Slow 1 s      4   0.0/s      0.03 %DMS:  0.04 Log: OFF<BR>DMS       9.24k  32.1/s      63.90<BR> SELECT    9.21k  32.0/s      63.75     99.75<BR> UPDATE      23   0.1/s      0.16     0.25<BR> REPLACE      0    0/s      0.00     0.00<BR> DELETE      0    0/s      0.00     0.00<BR> INSERT      0    0/s      0.00     0.00<BR>Com_      1.04k   50/s      44.4<BR> set_option   523   1.8/s      3.62<BR> change_db    510   50/s      44.4<BR> show_proces    5   0.0/s      0.03<br><br>__ SELECT and Sort _____________________________________________________<BR>Scan        49   0.2/s %SELECT:  0.53<BR>Range       16   0.1/s      0.17<BR>Full join      2   0.0/s      0.02<BR>Range check     0    0/s      0.00<BR>Full rng join    0    0/s      0.00<BR>Sort scan     55   0.2/s<BR>Sort range    475   1.6/s<BR>Sort mrg pass    0    0/s<br><br>__ Query Cache _________________________________________________________<BR>Memory usage  12.02M of 150.00M %Used:  8.01<BR>Block Fragmnt  0.01%<BR>Hits      3.66k  12.7/s<BR>Inserts     9.14k  31.8/s<BR>Insrt:Prune  9.14k:1  31.8/s<BR>Hit:Insert   0.40:1<br><br>__ Table Locks _________________________________________________________<BR>Waited       0    0/s %Total:  0.00<BR>Immediate   10.49k  36.4/s<br><br>__ Tables ______________________________________________________________<BR>Open        58 of 512  %Cache: 11.33<BR>Opened       64   0.2/s<br><br>__ Connections _________________________________________________________<BR>Max used      4 of 2000   %Max:  0.20<BR>Total       519   1.8/s<br><br>__ Created Temp ________________________________________________________<BR>Disk table     1   0.0/s<BR>Table       184   0.6/s  Size: 256.0M<BR>File        5   0.0/s<br><br>__ Threads _____________________________________________________________<BR>Running       2 of  2<BR>Cached       2 of 150   %Hit: 99.23<BR>Created       4   0.0/s<BR>Slow        0    0/s<br><br>__ Aborted _____________________________________________________________<BR>Clients       0    0/s<BR>Connects      0    0/s<br><br>__ Bytes _______________________________________________________________<BR>Sent      20.36M  70.7k/s<BR>Received    1.37M  4.7k/s<br><br>__ InnoDB Buffer Pool __________________________________________________<BR>Usage     304.00k of  8.00M %Used:  3.71<BR>Read hit    84.42%<BR>Pages<BR> Free      493      %Total: 96.29<BR> Data       19           3.71 %Drty:  0.00<BR> Misc       0           0.00<BR> Latched                 0.00<BR>Reads       77   0.3/s<BR> From file    12   0.0/s      15.58<BR> Ahead Rnd     1   0.0/s<BR> Ahead Sql     0    0/s<BR>Writes       0    0/s<BR>Flushes       0    0/s<BR>Wait Free      0    0/s<br><br>__ InnoDB Lock _________________________________________________________<BR>Waits        0    0/s<BR>Current       0<BR>Time acquiring<BR> Total       0 ms<BR> Average      0 ms<BR> Max        0 ms<br><br>__ InnoDB Data, Pages, Rows ____________________________________________<BR>Data<BR> Reads      25   0.1/s<BR> Writes      3   0.0/s<BR> fsync       3   0.0/s<BR> Pending<BR>  Reads      0<BR>  Writes     0<BR>  fsync      0<br><br>Pages<BR> Created      0    0/s<BR> Read       19   0.1/s<BR> Written      0    0/s<br><br>Rows<BR> Deleted      0    0/s<BR> Inserted     0    0/s<BR> Read       0    0/s<BR> Updated      0    0/s<BR>大家可以看到在Com_中占的比例是相當大的,而一般情況下,這個值應該是3.0%左右。如果這個值過高的話,就說明,你的mysql處理請求中<BR>做了一些無謂的工作,占用了大量的系統資源。其中我們看到尤為change_db的占用率比較高。這個值高了,說明我們執行的user database;命令相當多。<BR>檢查程序,原來我們在執行查詢語句的時候應用了mysql_query_db("database","sql");這個語句在每次執行的時候都會自動調用use database;<BR>所以我們應該將mysql_db_query 更改成mysql_query();再觀察mysql的運行狀態,ok。一切正常了。</FONT>
? 版權聲明
THE END
喜歡就支持一下吧
點贊13 分享