溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

sysbench0.5筆記

發布時間:2020-07-23 23:21:40 來源:網絡 閱讀:4500 作者:我的二狗呢 欄目:MySQL數據庫

安裝方法:

下載地址:https://github.com/akopytov/sysbench

 

yum install automake libtool -y

unzip sysbench-0.5.zip && cd sysbench-0.5 && sh autogen.sh && ./configure && make && make install

 

sysbench支持以下幾種測試模式:

1、CPU運算性能

2、磁盤IO性能

3、調度程序性能

4、內存分配及傳輸速度

5、POSIX線程性能

6、數據庫性能(OLTP基準測試)

目前sysbench主要支持 mysql,drizzle,pgsql,oracle 等幾種數據庫。

 




sysbenchCPU基準測試

原理:采用尋找最大素數的方式來測試CPU的性能。

 

cat /proc/cpuinfo 查看CPU的配置情況

 

sysbench --test=cpu --cpu-max-prime=20000 run  結果如下圖,執行耗時39.9044

sysbench0.5筆記


sysbench命令用法:

sysbench --test=<name> help     可以查看各種幫助信息

 

 

sysbench的文件IO基準測試

這里測試的是阿里云主機掛載的SSD磁盤,因此需要切換到SSD的掛載目錄。

    cd /bdata/ && makedir sysbench_test && cd sysbench_test/

 

step1、開16個線程生成2G測試數據文件  [注意文件大小要超過內存的大小,這樣才能測試出IO開銷]

sysbench --test=fileio --file-total-size=4G --num-threads=16 prepare

 

step2、執行讀寫測試   [下面的命令是執行混合隨機讀寫基準測試]

sysbench --test=fileio --file-total-size=4G --num-threads=16 --file-test-mode=rndrw --init-rng=on--max-time=300 --max-requests=0 run

sysbench0.5筆記

從上圖可以看出,讀18.122G,寫12.081G。請求數為6597.99/秒。吞吐量為103Mb/秒。

 

補充:幾種測試選項

seqwr  順序寫入

seqrewr    順序重寫

seqrd  順序讀取

rndrd  隨機讀取

rndwr  隨機寫入

rndrw  混合隨機讀/

 

 

step3、刪除測試文件

sysbench --test=fileio --file-total-size=2G cleanup


sysbenchOLTP基準測試

OLTP基準測試模擬了一個簡單的事務處理系統的工作負載。

幫助命令:sysbench --test=oltp help

 

OLTP測試環境:

    阿里云ECSMySQL5.6 48G 500GB SSD


step1、生成表文件

我試驗過程中發現sysbench0.5oltp測試有點不一樣。必須切換到sysbench的安裝包的路徑下,不然提示缺少lua文件。

cd /root/sysbench-0.5/sysbench/tests/db  

 

sysbench --test=oltp.lua --oltp-table-size=1000000 --oltp_tables_count=10 --mysql-db=test--mysql-user=root --mysql-password='123456' --mysql-socket='/tmp/mysql.sock' --db-driver=mysql --rand-init=on prepare

 

# 這個操作會生成test.sbtest1表。

--oltp-table-size=1000000   表示每個測試表填充數據量為 100萬行

--rand-init=on              表示每個測試表都是用隨機數據來填充的

--oltp_tables_count=10      表示會生成 10 個測試表

 

真實測試場景中,數據表建議不低于10個,單表數據量不低于500萬行,當然了,要視服務器硬件配置而定。如果是配備了SSD或者PCIE SSD這種高IOPS設備的話,則建議單表數據量最少不低于1億行。

 

step2、8線程測試

sysbench --test=oltp.lua --oltp-table-size=1000000 \

--mysql-db=test --mysql-user=root --mysql-password='123456' \

--mysql-socket='/tmp/mysql.sock' --db-driver=mysql --oltp-read-only=off \

--max-time=60 --num-threads=8 --report-interval=10 --rand-type=uniform \

--max-requests=0 --percentile=99 run >> /tmp/sysbench-oltp-2017-04-27.log

上面的參數說明:啟動8個并發線程,讀寫模式,測試時長60秒。

其它參數:

--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%里取最大值

 

結果如下:

OLTP test statistics:

   queries performed:

        read:                            502936       讀總數

        write:                           143696       寫總數

        other:                           71848     其他操作總數(SELECT、INSERT、UPDATE、DELETE之外的操作,例如COMMIT)

        total:                           718480       總數

    transactions:                        35924  (598.65 per sec.)      總事務數(每秒事務數)

    read/write requests:                 646632 (10775.68 per sec.)  讀寫總數(每秒讀寫次數)

    other operations:                    71848  (1197.30 per sec.)     其他操作總數(每秒其他操作次數)

   ignored errors:                     0      (0.00 per sec.)

   reconnects:                         0      (0.00 per sec.)

 

General statistics:

   total time:                          60.0084s         總耗時

   total number of events:             35924              共發生多少事務數

   total time taken by event execution: 479.9595s       所有事務耗時相加(不考慮并行因素)

   response time:

         min:                                  6.19ms         最小耗時

         avg:                                 13.36ms         平均耗時

         max:                                187.06ms         最長耗時

         approx.  99 percentile:              30.73ms       超過99%平均耗時

 

Threads fairness:

   events (avg/stddev):          4490.5000/8.03

   execution time (avg/stddev):  59.9949/0.00

 

step3、清理上面生成的10個測試表

sysbench --test=oltp.lua --oltp-table-size=1000000 --oltp-tables-count=10 \

--mysql-db=test --mysql-user=root --mysql-password='123456' \

--mysql-socket='/tmp/mysql.sock' --db-driver=mysql --num-threads=8   cleanup

 

 

可以對數據庫進行調優后,再使用sysbenchOLTP進行測試,看看TPS是不是會有所提高。

注意:sysbench的測試只是基準測試,并不能代表實際企業環境下的性能指標。

 



向AI問一下細節
推薦閱讀:
  1. Docker筆記
  2. memcached筆記

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女