mysql性能調優學習

一、設置開啓慢查詢mysql

Mysql5.0以上的版本能夠支持將執行比較慢的SQL語句記錄下來。 
mysql> show variables like 'long%'; 注:這個long_query_time是用來定義慢於多少秒的纔算「慢查詢」 
+-----------------+-----------+ 
| Variable_name | Value | 
+-----------------+-----------+ 
| long_query_time | 10.000000 | 
+-----------------+-----------+ 
1 row in set (0.00 sec) 
mysql> set long_query_time=1; 注: 我設置了1, 也就是執行時間超過1秒的都算慢查詢。 
Query OK, 0 rows affected (0.00 sec) 
mysql> show variables like 'slow%'; 
+---------------------+---------------+ 
| Variable_name | Value | 
+---------------------+---------------+ 
| slow_launch_time | 2 | 
| slow_query_log | ON | 注:是否打開日誌記錄 
| slow_query_log_file | /tmp/slow.log | 注: 設置到什麼位置 
+---------------------+---------------+ 
3 rows in set (0.00 sec) 
mysql> set global slow_query_log='ON' 注:打開日誌記錄 
一旦slow_query_log變量被設置爲ON,mysql會當即開始記錄。 
/etc/my.cnf 裏面能夠設置上面MYSQL全局變量的初始值。 
long_query_time=1 
slow_query_log_file=/tmp/slow.log

三、查看機器性能瓶頸;有多是 mysql 所在機器 磁盤 IO繁忙,致使 mysql很慢linux

 最近一臺linux服務器出現異常,系統反映很慢,相應的應用程序也沒法反映,並且還出現死機的狀況,通過幾天的觀察瞭解,發現服務器壓力很大,主要的壓力來自硬盤的IO訪問已經達到100%ios

  爲了方便各位和本身從此遇到此類問題能儘快解決,我這裏將查看linux服務器硬盤IO訪問負荷的方法同你們一塊兒分享:sql

  首先 、用top命令查看服務器

  top - 16:15:05 up 6 days,  6:25,  2 users,  load average: 1.45, 1.77, 2.14性能

  Tasks: 147 total,   1 running, 146 sleeping,   0 stopped,   0 zombie測試

  Cpu(s):  0.2% us,  0.2% sy,  0.0% ni, 86.9% id, 12.6% wa,  0.0% hi,  0.0% si日誌

  Mem:   4037872k total,  4003648k used,    34224k free,     5512k bufferscode

  Swap:  7164948k total,   629192k used,  6535756k free,  3511184k cachedserver

  查看12.6% wa

  IO等待所佔用的CPU時間的百分比,高過30%時IO壓力高

  其次、 用iostat -x 1 10

  若是 iostat 沒有,要  yum install sysstat

  avg-cpu:  %user   %nice    %sys %iowait   %idle

  0.00       0.00     0.25    33.46    66.29

  Device:    rrqm/s  wrqm/s   r/s    w/s     rsec/s   wsec/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util

  sda          0.00    0.00      0.00   0.00    0.00    0.00         0.00     0.00     0.00           0.00    0.00    0.00   0.00

  sdb          0.00   1122  17.00  9.00  192.00 9216.00    96.00  4608.00   123.79   137.23 1033.43  13.17 100.10

  sdc          0.00    0.00     0.00   0.00     0.00     0.00      0.00     0.00     0.00             0.00    0.00      0.00   0.00

  查看%util 100.10 %idle 66.29

  若是 %util 接近 100%,說明產生的I/O請求太多,I/O系統已經滿負荷,該磁盤可能存在瓶頸。

  idle小於70% IO壓力就較大了,通常讀取速度有較多的wait.

  同時能夠結合vmstat 查看查看b參數(等待資源的進程數)

  vmstat -1

  若是你想對硬盤作一個IO負荷的壓力測試能夠用以下命令

  time dd if=/dev/zero bs=1M count=2048 of=direct_2G

  此命令爲在當前目錄下新建一個2G的文件

相關文章
相關標籤/搜索