国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

MYSQL壓力測試工具sysbench安裝測試詳解

2024-07-24 12:39:31
字體:
供稿:網(wǎng)友

sysbench是一款開源的多線程性能測試工具,可以執(zhí)行CPU/內(nèi)存/線程/IO/數(shù)據(jù)庫等方面的性能測試,數(shù)據(jù)庫目前支持MySQL/Oracle/PostgreSQL,下面我們來看看它的安裝與測試.

如果評測一臺mysql數(shù)據(jù)庫的壓力,可以使用sysbench來測試,具體的操作出下,先安裝sysbench工具,安裝操作如下.

安裝環(huán)境

CentOS release 5.4 (Final),MySQL 5.1.40 MySQL_HOME=/usr/local/mysql/,Sysbench 0.4.12

安裝步驟

1.去http://sourceforge.net/projects/sysbench/下載最新版本的sysbench 0.4.12

2.解壓縮sysbench-0.4.12.tar.gz

tar --zxvf sysbench-0.4.12.tar.gz

3.進入解壓縮包 sysbench-0.4.12,并執(zhí)行腳本autogen.sh

cd sysbench-0.4.12

./autogen.sh

4.關(guān)鍵的三部曲:configure&make&make install

首先是./configure命令,sysbench默認(rèn)是支持MySQL的benchmarking的,如果不加任何選項則要求保證MySQL的安裝路徑都是默認(rèn)的標(biāo)準(zhǔn)路徑,headfile位于/usr/include目錄下,libraries位于/usr/lib/目錄下,因為我的MySQL是源碼編譯安裝的,安裝路徑是放在/usr/local/mysql下,所以這里要添加相應(yīng)的選項命令:

  1. ./configure --prefix=/usr/local/mysql --with-mysql=/usr/local/mysql --with-mysql-includes=/usr/local/mysql/include/mysql/ --with-mysql-libs=/usr/local/mysql/lib/mysql/ 

注意:經(jīng)反復(fù)測試這里在編譯時要將路徑寫到最后的include/mysql,lib/mysql

--with-mysql-includes=/usr/local/mysql/include/mysql/

--with-mysql-libs=/usr/local/mysql/lib/mysql/

因為網(wǎng)上好多資料都沒有提到這一層,在編譯時總是編譯不過去,這里浪費了好多精力.

make

make install

安裝就可以了,下面再來看測試.

sysbench數(shù)據(jù)庫的測試案例:

第一步:準(zhǔn)備數(shù)據(jù)庫,準(zhǔn)備在mysql數(shù)據(jù)庫創(chuàng)建1000000數(shù)據(jù)量,存儲引擎是innodb.

  1. bin/sysbench --test=oltp /           --測試類型數(shù)據(jù)庫oltp 
  2. --mysql-host=127.0.0.1 /             --mysql主機 
  3. --mysql-port=3421 /                  --mysql端口 
  4. --mysql-user=root /                  --mysql登陸用戶 
  5. --mysql-password=$password /         --mysql密碼 
  6. --mysql-db=test /                    --mysql測試數(shù)據(jù)庫名 
  7. --mysql-socket=/var/mysql.sock /     --socket位置 
  8. --oltp-table-name=test /             --mysql測試表名 
  9. --mysql-table-engine=innodb /        --mysql表使用存儲引擎 
  10. --oltp-table-size=1000000 prepare    --表數(shù)據(jù)量 

第二步:開始測試.

  1. bin/sysbench --test=oltp / 
  2. --mysql-host=127.0.0.1 /             --mysql主機 
  3. --mysql-port=3421 /                  --mysql端口 
  4. --mysql-user=root /                  --mysql登陸用戶 
  5. --mysql-password=$password /         --mysql密碼 
  6. --mysql-db=test /                    --mysql測試數(shù)據(jù)庫名 
  7. --mysql-socket=/var/mysql.sock /     --socket位置 
  8. --oltp-table-name=test /             --mysql測試表名 
  9. --mysql-table-engine=innodb /        --mysql表使用存儲引擎 
  10. --max-requests=100000            /   --測試請求次數(shù) 
  11. --max-time=600                 /     --測試最長時間 
  12. --num-threads=100 run                --并發(fā)線程數(shù) 
  13. //測試結(jié)果: 
  14. sysbench 0.4.12:  multi-threaded system evaluation benchmark 
  15. No DB drivers specified, using mysql 
  16. Running the test with following options: 
  17. Number of threads: 100 
  18. Doing OLTP test. 
  19. Running mixed OLTP test 
  20. Using Special distribution (12 iterations,  1 pct of values are returned in 75 pct cases) 
  21. Using "BEGIN" for starting transactions 
  22. Using auto_inc on the id column 
  23. Maximum number of requests for OLTP test is limited to 100000 
  24. Threads started! 
  25. Done. 
  26. OLTP test statistics: 
  27.     queries performed: 
  28.         read:                            1401582 
  29.         write:                           500563 
  30.         other:                           200225 
  31.         total:                           2102370 
  32.     transactions:                        100112 (3446.37 per sec.) 
  33.     deadlocks:                           1      (0.03 per sec.) 
  34.     read/write requests:                 1902145 (65481.66 per sec.) 
  35.     other operations:                    200225 (6892.78 per sec.) 
  36. Test execution summary: 
  37.     total time:                          29.0485s 
  38.     total number of events:              100112 
  39.     total time taken by event execution: 2898.7554 
  40.     per-request statistics: 
  41.          min:                                  3.52ms 
  42.          avg:                                 28.96ms 
  43.          max:                                187.11ms 
  44.          approx.  95 percentile:              46.05ms 
  45. Threads fairness: 
  46.     events (avg/stddev):           1001.1200/10.80 
  47.     execution time (avg/stddev):   28.9876/0.03 

第三步:清理測試數(shù)據(jù).

  1. bin/sysbench --test=oltp / 
  2. --mysql-host=127.0.0.1 /             --mysql主機 
  3. --mysql-port=3421 /                  --mysql端口 
  4. --mysql-user=root /                  --mysql登陸用戶 
  5. --mysql-password=$password /         --mysql密碼 
  6. --mysql-db=test /                    --mysql測試數(shù)據(jù)庫名 
  7. --mysql-socket=/var/mysql.sock /     --socket位置 
  8. --oltp-table-name=test /             --mysql測試表名 
  9. --mysql-table-engine=innodb /        --mysql表使用存儲引擎 
  10. cleanup 

在版本0.5中支持自定義語句,可以參考下面的鏈接.

http://dba.stackexchange.com/questions/39221/stress-test-mysql-with-queries-captured-with-general-log-in-mysql

3.測試案例,表屬性compress對insert速度的影響.

第一步準(zhǔn)備:創(chuàng)建表結(jié)構(gòu):

  1. bin/sysbench --test=oltp /           --測試類型數(shù)據(jù)庫oltp 
  2. --mysql-host=127.0.0.1 /             --mysql主機 
  3. --mysql-port=3421 /                  --mysql端口 
  4. --mysql-user=root /                  --mysql登陸用戶 
  5. --mysql-password=$password /         --mysql密碼 
  6. --mysql-db=test /                    --mysql測試數(shù)據(jù)庫名 
  7. --mysql-socket=/var/mysql.sock /     --socket位置 
  8. --oltp-table-name=sbtest /             --mysql測試表名 
  9. --mysql-table-engine=innodb /        --mysql表使用存儲引擎 
  10. --oltp-table-size=1 prepare    --表數(shù)據(jù)量 

將表名修改為uncompressed

rename table sbtest to uncompressed;

再次創(chuàng)建表sbtest,并將表名修改為compressed

rename table sbtest to compressed;

將表改為compressed

alter table compressed ROW_FORMAT=compressed;

第二步:向表uncompressed表中添加記錄

  1. bin/sysbench --test=oltp           / 
  2. --mysql-host=127.0.0.1 /             --mysql主機 
  3. --mysql-port=3421 /                  --mysql端口 
  4. --mysql-user=root /                  --mysql登陸用戶 
  5. --mysql-password=$password /         --mysql密碼 
  6. --mysql-db=test /                    --mysql測試數(shù)據(jù)庫名 
  7. --mysql-socket=/var/mysql.sock /     --socket位置 
  8. --oltp-table-name=uncompressed /             --mysql測試表名 
  9. --mysql-table-engine=innodb /        --mysql表使用存儲引擎 
  10. --oltp-nontrx-mode=insert      / 
  11. --oltp-test-mode=nontrx        / 
  12. --max-requests=1000000            / 
  13. --max-time=600                 / 
  14. --num-threads=100 run 
  15. --測試結(jié)果: 
  16. OLTP test statistics
  17.     queries performed: 
  18.         read:                            0 
  19.         write:                           1001110 
  20.         other:                           0 
  21.         total:                           1001110 
  22.     transactions:                        1001110 (13617.75 per sec.) 
  23.     deadlocks:                           0      (0.00 per sec.) 
  24.     read/write requests:                 1001110 (13617.75 per sec.) 
  25.     other operations:                    0      (0.00 per sec.) 
  26. Test execution summary: 
  27.     total time:                          73.5151s 
  28.     total number of events:              1001110 
  29.     total time taken by event execution: 7346.0036 
  30.     per-request statistics
  31.          min:                                  0.10ms 
  32.          avg:                                  7.34ms 
  33.          max:                                239.05ms 
  34.          approx.  95 percentile:              22.00ms 
  35. Threads fairness: 
  36.     events (avg/stddev):           10011.1000/86.80 
  37.     execution time (avg/stddev):   73.4600/0.00 

說明:總共消耗了73s,每秒達到13617個事務(wù).

第三步:向表compressed表中添加記錄:

  1. bin/sysbench --test=oltp           / 
  2. --mysql-host=127.0.0.1 /             --mysql主機 
  3. --mysql-port=3421 /                  --mysql端口 
  4. --mysql-user=root /                  --mysql登陸用戶 
  5. --mysql-password=$password /         --mysql密碼 
  6. --mysql-db=test /                    --mysql測試數(shù)據(jù)庫名 
  7. --mysql-socket=/var/mysql.sock /     --socket位置 
  8. --oltp-table-name=compressed /             --mysql測試表名 
  9. --mysql-table-engine=innodb /        --mysql表使用存儲引擎 
  10. --oltp-nontrx-mode=insert      / 
  11. --oltp-test-mode=nontrx        / 
  12. --max-requests=1000000            / 
  13. --max-time=600                 / 
  14. --num-threads=100 run 
  15. --測試結(jié)果: 
  16. OLTP test statistics
  17.     queries performed: 
  18.         read:                            0 
  19.         write:                           1000515 
  20.         other:                           0 
  21.         total:                           1000515 
  22.     transactions:                        1000515 (2313.85 per sec.) 
  23.     deadlocks:                           0      (0.00 per sec.) 
  24.     read/write requests:                 1000515 (2313.85 per sec.) 
  25.     other operations:                    0      (0.00 per sec.) 
  26. Test execution summary: 
  27.     total time:                          432.4036s 
  28.     total number of events:              1000515 
  29.     total time taken by event execution: 43229.6698 
  30.     per-request statistics
  31.          min:                                  0.10ms 
  32.          avg:                                 43.21ms 
  33.          max:                                730.32ms 
  34.          approx.  95 percentile:             133.46ms 
  35. Threads fairness: 
  36.     events (avg/stddev):           10005.1500/109.30 
  37.     execution time (avg/stddev):   432.2967/0.01 

說明:總共消耗了432s,每秒處理2313事務(wù)數(shù),和uncompressed的速度相差6倍.

4.測試案例,表屬性compress對復(fù)合操作速度的影響.

第一步:準(zhǔn)備數(shù)據(jù),和第3項一樣準(zhǔn)備.

第二步:針對compressed表進行復(fù)合操作測試.

  1. bin/sysbench --test=oltp           / 
  2. --mysql-host=127.0.0.1 /             --mysql主機 
  3. --mysql-port=3421 /                  --mysql端口 
  4. --mysql-user=root /                  --mysql登陸用戶 
  5. --mysql-password=$password /         --mysql密碼 
  6. --mysql-db=test /                    --mysql測試數(shù)據(jù)庫名 
  7. --mysql-socket=/var/mysql.sock /     --socket位置 
  8. --oltp-table-name=compressed /             --mysql測試表名 
  9. --mysql-table-engine=innodb /        --mysql表使用存儲引擎 
  10. --max-requests=1000000            / 
  11. --max-time=600                 / 
  12. --num-threads=100 run 
  13. OLTP test statistics
  14.     queries performed: 
  15.         read:                            14012236 
  16.         write:                           5004356 
  17.         other:                           2001743 
  18.         total:                           21018335 
  19.     transactions:                        1000869 (3145.37 per sec.) 
  20.     deadlocks:                           5      (0.02 per sec.) 
  21.     read/write requests:                 19016592 (59762.20 per sec.) 
  22.     other operations:                    2001743 (6290.75 per sec.) 
  23. Test execution summary: 
  24.     total time:                          318.2043s 
  25.     total number of events:              1000869 
  26.     total time taken by event execution: 31800.5571 
  27.     per-request statistics
  28.          min:                                  3.19ms 
  29.          avg:                                 31.77ms 
  30.          max:                                344.54ms 
  31.          approx.  95 percentile:              53.37ms 
  32. Threads fairness: 
  33.     events (avg/stddev):           10008.6900/32.50 
  34.     execution time (avg/stddev):   318.0056/0.01 

說明:共消耗時間318s,每秒3145個事務(wù).

第三步:針對uncompressed表進行復(fù)合操作測試.

  1. bin/sysbench --test=oltp           / 
  2. --mysql-host=127.0.0.1 /             --mysql主機 
  3. --mysql-port=3421 /                  --mysql端口 
  4. --mysql-user=root /                  --mysql登陸用戶 
  5. --mysql-password=$password /         --mysql密碼 
  6. --mysql-db=test /                    --mysql測試數(shù)據(jù)庫名 
  7. --mysql-socket=/var/mysql.sock /     --socket位置 
  8. --oltp-table-name=uncompressed /             --mysql測試表名 
  9. --mysql-table-engine=innodb /        --mysql表使用存儲引擎 
  10. --oltp-nontrx-mode=insert      / 
  11. --oltp-test-mode=nontrx        / 
  12. --max-requests=1000000            / 
  13. --max-time=600                 / 
  14. --num-threads=100 run 
  15. OLTP test statistics
  16.     queries performed: 
  17.         read:                            14013370 
  18.         write:                           5004769 
  19.         other:                           2001908 
  20.         total:                           21020047 
  21.     transactions:                        1000953 (3389.22 per sec.) 
  22.     deadlocks:                           2      (0.01 per sec.) 
  23.     read/write requests:                 19018139 (64395.20 per sec.) 
  24.     other operations:                    2001908 (6778.44 per sec.) 
  25. Test execution summary: 
  26.     total time:                          295.3347s 
  27.     total number of events:              1000953 
  28.     total time taken by event execution: 29512.3204 
  29.     per-request statistics
  30.          min:                                  3.37ms 
  31.          avg:                                 29.48ms 
  32.          max:                                157.93ms 
  33.          approx.  95 percentile:              48.19ms 
  34. Threads fairness: 
  35.     events (avg/stddev):           10009.5300/30.59 
  36.     execution time (avg/stddev):   295.1232/0.02 

說明:共消耗時間295s,每秒3389個事務(wù),在復(fù)合操作中,compressed的表會快一些.

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 柏乡县| 南郑县| 黑水县| 邮箱| 新龙县| 南安市| 婺源县| 松江区| 溆浦县| 阳山县| 萨嘎县| 陇西县| 红河县| 教育| 衡水市| 宜兰县| 资溪县| 天长市| 邮箱| 嵩明县| 铜山县| 永和县| 灵台县| 道孚县| 孝感市| 克拉玛依市| 信宜市| 北票市| 马鞍山市| 池州市| 临猗县| 汉川市| 怀仁县| 马山县| 贵州省| 金坛市| 同心县| 邓州市| 苏尼特左旗| 钦州市| 永善县|