<em id="hanht"></em>

    <dd id="hanht"></dd>

    <em id="hanht"><acronym id="hanht"></acronym></em>
    
    <button id="hanht"></button>
    <rp id="hanht"><object id="hanht"><blockquote id="hanht"></blockquote></object></rp><em id="hanht"></em>

    首頁 > 學院 > 綜合知識 > 正文

    sysbench安裝、使用、結果解讀

    2022-08-03 16:44:45
    字體:
    來源:轉載
    供稿:網友
           sysbench是一個模塊化的、跨平臺、多線程基準測試工具,主要用于評估測試各種不同系統參數下的數據庫負載情況。
           目前sysbench代碼托管在launchpad上,項目地址:https://launchpad.net/sysbench(原來的官網 http://sysbench.sourceforge.net 已經不可用),源碼采用bazaar管理。
     
    一、 下載源碼包
          安裝epel包后以便安裝bzr客戶端:
     
           rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
           然后就可以開始安裝bzr客戶端了:
     
    yum install bzr
    之后,就可以開始用bzr客戶端下載tpcc-mysql源碼了。
     
    cd /tmp
    bzr branch lp:sysbench
    MySQL中文網便捷下載地址:
     
    http://imysql.com/wp-content/uploads/2014/09/sysbench-0.4.12-1.1.tgz
    sysbench支持以下幾種測試模式:
     
    1、CPU運算性能
    2、磁盤IO性能
    3、調度程序性能
    4、內存分配及傳輸速度
    5、POSIX線程性能
    6、數據庫性能(OLTP基準測試)
    目前sysbench主要支持 mysql,drizzle,pgsql,oracle 等幾種數據庫。
    二、編譯安裝
    編譯非常簡單,可參考 README 文檔,簡單步驟如下:
     
    cd /tmp/sysbench-0.4.12-1.1
    ./autogen.sh
    ./configure --with-mysql-includes=/usr/local/mysql/include --with-mysql-libs=/usr/local/mysql/lib && make
     
    # 如果 make 沒有報錯,就會在 sysbench 目錄下生成二進制命令行工具 sysbench
    ls -l sysbench
    -rwxr-xr-x 1 root root 3293186 Sep 21 16:24 sysbench
    三、OLTP測試前準備
    初始化測試庫環境(總共10個測試表,每個表 100000 條記錄,填充隨機生成的數據):
     
    cd /tmp/sysbench-0.4.12-1.1/sysbench
    mysqladmin create sbtest
     
    ./sysbench --mysql-host=1.2.3.4 --mysql-port=3317 --mysql-user=tpcc --mysql-password=tpcc /
     --test=tests/db/oltp.lua --oltp_tables_count=10 --oltp-table-size=100000 --rand-init=on prepare
    關于這幾個參數的解釋:
     
    --test=tests/db/oltp.lua 表示調用 tests/db/oltp.lua 腳本進行 oltp 模式測試
    --oltp_tables_count=10 表示會生成 10 個測試表
    --oltp-table-size=100000 表示每個測試表填充數據量為 100000
    --rand-init=on 表示每個測試表都是用隨機數據來填充的
    如果在本機,也可以使用 –mysql-socket 指定 socket 文件來連接。加載測試數據時長視數據量而定,若過程比較久需要稍加耐心等待。
     
    真實測試場景中,數據表建議不低于10個,單表數據量不低于500萬行,當然了,要視服務器硬件配置而定。如果是配備了SSD或者PCIE SSD這種高IOPS設備的話,則建議單表數據量最少不低于1億行。
     
    四、進行OLTP測試
     
    在上面初始化數據參數的基礎上,再增加一些參數,即可開始進行測試了:
     
    ./sysbench --mysql-host=1.2.3.4. --mysql-port=3306 --mysql-user=tpcc /
    --mysql-password=tpcc --test=tests/db/oltp.lua --oltp_tables_count=10 /
    --oltp-table-size=10000000 --num-threads=8 --oltp-read-only=off /
    --report-interval=10 --rand-type=uniform --max-time=3600 /
     --max-requests=0 --percentile=99 run >> ./log/sysbench_oltpX_8_20140921.log
    幾個選項稍微解釋下
     
    --num-threads=8 表示發起 8個并發連接
    --oltp-read-only=off 表示不要進行只讀測試,也就是會采用讀寫混合模式測試
    --report-interval=10 表示每10秒輸出一次測試進度報告
    --rand-type=uniform 表示隨機類型為固定模式,其他幾個可選隨機模式:uniform(固定),gaussian(高斯),special(特定的),pareto(帕累托)
    --max-time=120 表示最大執行時長為 120秒
    --max-requests=0 表示總請求數為 0,因為上面已經定義了總執行時長,所以總請求數可以設定為 0;也可以只設定總請求數,不設定最大執行時長
    --percentile=99 表示設定采樣比例,默認是 95%,即丟棄1%的長請求,在剩余的99%里取最大值
    即:模擬 對10個表并發OLTP測試,每個表1000萬行記錄,持續壓測時間為 1小時。
     
    真實測試場景中,建議持續壓測時長不小于30分鐘,否則測試數據可能不具參考意義。
     
    五、測試結果解讀:
     
    測試結果解讀如下:
     
    sysbench 0.5:  multi-threaded system evaluation benchmark
     
    Running the test with following options:
    Number of threads: 8
    Report intermediate results every 10 second(s)
    Random number generator seed is 0 and will be ignored
     
     
    Threads started!
    -- 每10秒鐘報告一次測試結果,tps、每秒讀、每秒寫、99%以上的響應時長統計
    [  10s] threads: 8, tps: 1111.51, reads/s: 15568.42, writes/s: 4446.13, response time: 9.95ms (99%)
    [  20s] threads: 8, tps: 1121.90, reads/s: 15709.62, writes/s: 4487.80, response time: 9.78ms (99%)
    [  30s] threads: 8, tps: 1120.00, reads/s: 15679.10, writes/s: 4480.20, response time: 9.84ms (99%)
    [  40s] threads: 8, tps: 1114.20, reads/s: 15599.39, writes/s: 4456.30, response time: 9.90ms (99%)
    [  50s] threads: 8, tps: 1114.00, reads/s: 15593.60, writes/s: 4456.70, response time: 9.84ms (99%)
    [  60s] threads: 8, tps: 1119.30, reads/s: 15671.60, writes/s: 4476.50, response time: 9.99ms (99%)
    OLTP test statistics:
        queries performed:
            read:                            938224    -- 讀總數
            write:                           268064    -- 寫總數
            other:                           134032    -- 其他操作總數(SELECT、INSERT、UPDATE、DELETE之外的操作,例如COMMIT等)
            total:                           1340320    -- 全部總數
        transactions:                        67016  (1116.83 per sec.)    -- 總事務數(每秒事務數)
        deadlocks:                           0      (0.00 per sec.)    -- 發生死鎖總數
        read/write requests:                 1206288 (20103.01 per sec.)    -- 讀寫總數(每秒讀寫次數)
        other operations:                    134032 (2233.67 per sec.)    -- 其他操作總數(每秒其他操作次數)
     
    General statistics:    -- 一些統計結果
        total time:                          60.0053s    -- 總耗時
        total number of events:              67016    -- 共發生多少事務數
        total time taken by event execution: 479.8171s    -- 所有事務耗時相加(不考慮并行因素)
        response time:    -- 響應時長統計
             min:                                  4.27ms    -- 最小耗時
             avg:                                  7.16ms    -- 平均耗時
             max:                                 13.80ms    -- 最長耗時
             approx.  99 percentile:               9.88ms    -- 超過99%平均耗時
     
    Threads fairness:
        events (avg/stddev):           8377.0000/44.33
        execution time (avg/stddev):   59.9771/0.00

    (編輯:錯新網)

    發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    一级特黄大片欧美久久久久_一本一道久久综合狠狠老_JLZZ日本人年轻护士_欧美男男作爱VIDEOS可播放
      <em id="hanht"></em>

      <dd id="hanht"></dd>

      <em id="hanht"><acronym id="hanht"></acronym></em>
      
      <button id="hanht"></button>
      <rp id="hanht"><object id="hanht"><blockquote id="hanht"></blockquote></object></rp><em id="hanht"></em>