使用sysbench測試mysql及postgresql(完整版)

funnyZpC發表於2021-04-04

使用sysbench測試mysql及postgresql(完整版)

轉載請註明出處https://www.cnblogs.com/funnyzpc/p/14592166.html

前言

使用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

下載執行檔案

使用方式

  • 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在執行的時候會拋錯,但這不是大問題,簡單處理就是手動刪除下測試表~

--各位週末愉快?--

相關文章