• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 性能測試工具-MysqlBench

    發表于:2012-10-31來源:百度質量部作者:不詳點擊數: 標簽:性能測試工具
    在mysql性能調研和分布式數據庫測試過程中,需要評估mysql某些方面的性能情況,如果單純使用mysql自帶的性能查看工具和命令,如 mysqladmin、show innoDB status等,

      在mysql性能調研和分布式數據庫測試過程中,需要評估mysql某些方面的性能情況,如果單純使用mysql自帶的性能查看工具和命令,如 mysqladmin、show innoDB status等,顯然不能滿足需求,無法得到所有的數據,如QPS、latency雖然可以通過參數值來計算得到,但不夠自動化,并且如果需要得到大量實驗數據時,手工計算是一種笨拙的方式。

      使用方式

      基本配置

      MysqlBench.php需要配置基本信息:

      $ip、$username、$password、$port、$database、$table分別對應數據庫的ip、用戶名、密碼、端口、執行操作的database、執行性能測試的表名(可替換為自定義的表名,注意如果column與MysqlBench的不一致,需要自行修改)。

      $logfile指定記錄操作原始信息的文件,在分析結果時會使用到該文件

      $resultfile分析結果保存到的文件

      $fd數據庫句柄,不用理會

      $startID對應query操作時的起始ID

      執行測試

      可以直接運行php MysqlBench.php –h,查看下幫助信息,如下:

      –h

      php MysqlBench.php –h:輸出幫助信息

      –p

      php MysqlBench.php –p type value num [allNum=?] [log=?] [item=?] [table=?] [startID=?] [logfile=?]:啟動壓力

      1. type 【必選】:目前支持5種方式:insert、update、select、delete、prepareInsert,其中prepareInsert用于快速插入而不關注insert性能狀況的情況,一般來說type為prepareInsert時,log參數應該賦值為false,避免日志記錄操作。

      2. value【必選】:目前可支持1K、10K、100K、1M、10M,MysqlBench會隨機生成對應大小的string并保存在大數據字段中,如默認的content字段,或其他column,這個可自定義。

      3. num 【必選】:支持所有正整數,即query的數量。當如果指定了allNum,則num需要不大于allNum。對于insert和 prepareInsert操作,采用的是順序插入的方式,id從$startID到num+$startID;而對于update和select操作,采用隨機的方式,隨機id范圍為$startID到num+$startID,遇到重復的id不跳過;對于delete操作,也是采用隨機的方式,但剔除重復的id,隨機id范圍為$startID到num+$startID,故執行delete請求時,強烈建議指定allNum,且最好 allNum>=10*num,已包裝重復的id不會太多,影響測試準確些。

      4. allNum【可選】:指定table中一共有多少數據,強烈建議allNum的數量>=10*num,即query的數量至多為總數據量的1/10。默認值allNum=num

      5. log【可選】:是否記錄每條query的耗時時間,例如你僅僅想了解select的耗時,那在灌數據的時候,就可以指定log=false。默認值為log=true。耗時信息保存在$logfile中。

      6. item【可選】:指定select大數據字段(1K、1M這些)或小數據字段(幾十個字節),僅對select操作有效。默認值為item=large,還可取值small。

      7. table【可選】:指定操作的table名,默認值為基本配置中的$table變量值。

      8. startID【可選】:指定Query的起始id,默認值為基本配置中的$startID的值,多組實驗時為了避免干擾,采用不同的id范圍時這個參數就能起到隔離的作用。

      9. logfile【可選】:指定log文件名,記錄耗時信息。批量執行不同case時,需要指定不同的log文件,否則MysqlBench都會將耗時信息輸出到基本配置中的$logfile指定的文件中。

      –t/–d

      php MysqlBench.php –t [table=?] [analyse=?] [ip=?] [port=?] [logfile=?]:清空表

      php MysqlBench.php –d [table=?] [analyse=?] [ip=?] [port=?] [logfile=?]:刪除表

      1. table【可選】:指定truncate或drop的table名,默認值為基本配置中的$table變量值。

      2. analyse【可選】:指定是否記錄耗時時間。默認值為false。

      3. ip、port【可選】:指定數據庫的ip和port,默認值為基本配置中的ip、port對應值,這個在ddbs時有應用,因為dbproxy不支持drop和truncate table操作,故需要穿透直連后端數據庫,故ip和port需要另外指定。

      4. logfile【可選】:指定log文件名,記錄耗時信息。默認值為基本配置中對應值。

      –a

      php MysqlBench.php [logfile=?] [resultfile=?]:分析logfile文件,產出QPS、latency等數據,輸出到resultfile。

      1. logfile【可選】:指定需要分析的log文件名。默認值為基本配置中對應值。

      2. resultfile【可選】:分析結果保存文件,默認值為基本配置中的$resultfile值。

      效果展示

      Logfile文件為原始數據文件,每一行為每個query的耗時,如:

      resultfile為分析結果文件,根據原始信息計算了QPS,平均耗時,latency區間,并可以直接看出是否有長耗時,如:

      Result文件可直接ctrl+c & ctrl+v到excel中,如:

      通過excel自帶工具可生成圖表,可以更直觀的分析測試結果,如:

      功能測試工具-AutoSQL

      概述

      功能測試工具AutoSQL用于SQL命令分發以及結果校驗,不僅適用分布式數據庫,也適合單機mysql,可以認為它就是帶校驗功能的一個mysql應用。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>