熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> MySQL >> 正文

高性能MySQL:獲取系統性能和狀態

2022-06-13   來源: MySQL 

   獲取系統性能和狀態

  在執行基准測試時需要盡可能多地收集被測試系統的信息最好為基准測試建立一個目錄並且每執行一輪測試都創建單獨的子目錄將測試結果配置文件測試指標腳本和其他相關說明都保存在其中即使有些結果不是目前需要的也應該先保存下來多余一些數據總比缺乏重要的數據要好而且多余的數據以後也許會用得著需要記錄的數據包括系統狀態和性能指標諸如CPU 使用率磁盤I/O網絡流量統計SHOWGLOBAL STATUS 計數器等

  下面是一個收集MySQL 測試數據的shell 腳本

  #!/bin/sh

  INTERVAL=

  PREFIX=$INTERVALsecstatus

  RUNFILE=/home/benchmarks/running

  mysql e SHOW GLOBAL VARIABLES 》 mysqlvariables

  while test e $RUNFILE; do

  file=$(date +%F_%I)

  sleep=$(date +%s%N | awk {print $INTERVAL (\$ % $INTERVAL)}

  sleep $sleep

  ts=$(date +TS %s%N %F %T

  loadavg=$(uptime)

  echo $ts $loadavg 》 $PREFIX${file}status

  mysql e SHOW GLOBAL STATUS 》 $PREFIX${file}status &

  echo $ts $loadavg 》 $PREFIX${file}innodbstatus

  mysql e SHOW ENGINE INNODB STATUS\G 》 $PREFIX${file}innodbstatus &

  echo $ts $loadavg 》 $PREFIX${file}processlist

  mysql e SHOW FULL PROCESSLIST\G 》 $PREFIX${file}processlist &

  echo $ts

  done

  echo Exiting because $RUNFILE does not exist

  這個shell 腳本很簡單但提供了一個有效的收集狀態和性能數據的框架看起來好像作用不大但當需要在多個服務器上執行比較復雜的測試的時候要回答以下關於系統行為的問題沒有這種腳本的話就會很困難了下面是這個腳本的一些要點

  迭代是基於固定時間間隔的每隔 秒運行y 一次收集的動作注意這裡sleep 的時間有一個特殊的技巧如果只是簡單地在每次循環時插入一條sleep 的指令循環的執行間隔時間一般都會稍大於那麼這個腳本就沒有辦法通過其他腳本和圖形簡單地捕獲時間相關的准確數據即使有時候循環能夠恰好在 秒內完成但如果某些系統的時間戳是::另外一個則是::這時候就比較討厭了當然這裡的 秒也可以改成其他的時間間隔比如 或者不過還是推薦使用 秒或者 秒的間隔來收集數據

  每個文件名都包含了該輪測試開始的y 日期和小時如果測試要持續好幾天那麼這個文件可能會非常大有必要的話需要手工將文件移到其他地方但要分析全部結果的時候要注意從最早的文件開始如果只需要分析某個時間點的數據則可以根據文件名中的日期和小時迅速定位這比在一個GB 以上的大文件中去搜索要快捷得多

  每次抓取數據都會先記錄當前的時間戳所以可以在文件中搜索某個時間點的數據也可以寫一些awk 或者sed 腳本來簡化操作

  這個腳本不會處理或者過濾收集到的數據先收集所有的原始數據然後再基於此做分析和過濾是一個好習慣如果在收集的時候對數據做了預處理而後續分析發現一些異常的地方需要用到更多的原始數據這時候就要抓瞎

  如果需要在測試完成後腳本自動退出只需要刪除/home/benchmarks/running 文件即可

  這只是一段簡單的代碼或許不能滿足全部的需求但卻很好地演示了該如何捕獲測試的性能和狀態數據從代碼可以看出只捕獲了MySQL 的部分數據如果需要則很容易通過修改腳本添加新的數據捕獲例如可以通過ptdiskstats 工具注 捕獲/proc/diskstats 的數據為後續分析磁盤I/O 使用

       返回目錄高性能MySQL

       編輯推薦

       ASP NET開發培訓視頻教程

  數據倉庫與數據挖掘培訓視頻教程

       Oracle索引技術


From:http://tw.wingwit.com/Article/program/MySQL/201311/29737.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.