使用sysbench測試mysql及postgresql(完整版)
前言
使用sysbench測試資料庫十分的麻煩(主要是sysbench安裝麻煩),本人需要測試mysql及postgresql,mysql可以正常編譯通過,postgresql的怎麼都不行,後來群內有網友提供編譯版,
發現一切都好使了?,在此感謝某網友提供的編譯版sysbench
另外,如在使用過程中報各種莫名其妙的錯誤請使用yum或apt安裝下mysql或postgresql ,後續基本都順利~
sysbench主要引數
- --threads=10:表示發起10個併發連線
- --report-interval=20:表示每10秒輸出一次測試進度報告
- --oltp-tables-count=3:表示會生成3個測試表
- --oltp-table-size=50000000:表示每個測試表填充資料量為50000000
下載執行檔案
- 地址 https://github.com/funnyzpc/sysbench_bin
- 新增執行許可權
cd sysbench_bin & chmod a+x sysbench_*
使用方式
- mysql:
./sysbench_mysql [執行引數]
- postgresql:
./sysbench_pg [執行引數]
- oracle:
./sysbench_ora [執行引數]
mysql 測試
構建測試資料
./sysbench_mysql --test=./tests/include/oltp_legacy/oltp.lua \
--mysql-host=服務域名或地址 --mysql-port=服務埠 --mysql-user=資料庫使用者 --mysql-password=資料庫密碼 --mysql-db=測試DB \
--oltp-test-mode=complex --oltp-tables-count=3 --oltp-table-size=50000000 \
--threads=12 --time=120 --report-interval=20 prepare
執行測試
- 複雜模式執行復雜查詢
./sysbench_mysql --test=./tests/include/oltp_legacy/oltp.lua \
--mysql-host=服務域名或地址 --mysql-port=服務埠 --mysql-user=資料庫使用者 --mysql-password=資料庫密碼 --mysql-db=測試DB \
--oltp-test-mode=complex --oltp-read-only=on --oltp-tables-count=3 --oltp-table-size=50000000 \
--threads=12 --time=120 --report-interval=20 run >> /mnt/sysbench/mysql_bench_complex_20210400.log
- 簡單模式執行增刪改查
./sysbench_mysql --test=./tests/include/oltp_legacy/oltp.lua \
--mysql-host=服務域名或地址 --mysql-port=服務埠 --mysql-user=資料庫使用者 --mysql-password=資料庫密碼 --mysql-db=測試DB \
--oltp-test-mode=simple --oltp-tables-count=3 --oltp-table-size=50000000 \
--threads=12 --time=120 --report-interval=20 run >> /mnt/sysbench/mysql_bench_simple_20210400.log
清理測試資料
./sysbench_mysql --test=./tests/include/oltp_legacy/oltp.lua \
--mysql-host=服務域名或地址 --mysql-port=服務埠 --mysql-user=資料庫使用者 --mysql-password=資料庫密碼 --mysql-db=測試DB \
--oltp-tables-count=3 cleanup
postgresql測試
構建測試資料
./sysbench_pg --test=./tests/include/oltp_legacy/oltp.lua \
--pgsql-host=服務域名或地址 --pgsql-port=服務埠 --pgsql-user=資料庫使用者 --pgsql-password=資料庫密碼 \
--pgsql-db=測試DB --oltp-tables-count=3 --oltp-table-size=50000000 \
--report-interval=20 --threads=12 \
prepare
執行測試
- 複雜模式執行復雜查詢
./sysbench_pg --test=./tests/include/oltp_legacy/oltp.lua \
--pgsql-host=服務域名或地址 --pgsql-port=服務埠 --pgsql-user=資料庫使用者 --pgsql-password=資料庫密碼 \
--pgsql-db=測試DB --oltp-tables-count=3 --oltp-table-size=50000000 \
--oltp-test-mode=complex --oltp-read-only=on --report-interval=20 --threads=12 \
run >> /mnt/sysbench/pg_bench_complex_20210400.log
- 簡單模式執行增刪改查
./sysbench_pg --test=./tests/include/oltp_legacy/oltp.lua \
--pgsql-host=服務域名或地址 --pgsql-port=服務埠 --pgsql-user=資料庫使用者 --pgsql-password=資料庫密碼 \
--pgsql-db=測試DB --oltp-tables-count=3 --oltp-table-size=50000000 \
--oltp-test-mode=simple --report-interval=20 --threads=12 \
run >> /mnt/sysbench/pg_bench_simple_20210400.log
清理檔案
-- [錯誤]
./sysbench_pg --test=./tests/include/oltp_legacy/oltp.lua \
--pgsql-host=服務域名或地址 --pgsql-port=服務埠 --pgsql-user=資料庫使用者 --pgsql-password=資料庫密碼 \
--pgsql-db=測試DB --oltp-tables-count=3 --oltp-table-size=50000000 \
cleanup
以上清理檔案需要說明的是:可能由於sysbench_pg編譯的版本比較低所以sysbench_pg在執行的時候會拋錯,但這不是大問題,簡單處理就是手動刪除下測試表~
--各位週末愉快?--