用 sysbench 測試 MySQL 性能 — 在 mac & ubuntu 上的安裝與使用

這篇文章寫於 2021 年,文中的工具與版本可能已經更新,實作時請以官方文件為準。

本文目錄
  1. 一、在 Mac 上操作 sysbench
  2. 安裝 sysbench
  3. 測試 MySQL 性能
  4. 一、在 Ubuntu 上操作 sysbench
  5. 安裝 sysbench
  6. 測試 MySQL 性能

sysbench 是我目前使用上最順手的一個測試工具,安裝、使用都非常容易,除了資料庫的測試外他還能對 CPU、Memory…做測試,本篇會詳細說明如何使用它來做 MySQL 性能測試,其他的功能可以參考文末附的連結。

用 sysbench 測試 MySQL 性能 — 在 mac & ubuntu 上的安裝與使用(圖 1)

一、在 Mac 上操作 sysbench

安裝 sysbench

如果還沒安裝過 brew 請參考官網

brew install sysbench

安裝完成後輸入指令確認安裝完成

sysbench — version

安裝 sysbench(圖 2)

我安裝的版本為 1.0.20 這個會跟下面的指令路徑有關,如果你安裝的是其他版本要自行修改這個版本路徑

測試 MySQL 性能

mac 的範例是本地端的測試,針對 read 這塊

STEP 1:先建立好測試用的 DB

create database test;

STEP 2:建立測試資料

  • mysql-user、mysql-password:改成自己 MySQL 的使用者
  • mysql-db:測試的資料庫
  • range_size、table_size、tables:測試的規模
  • prepare:建立測資的意思
sysbench /usr/local/Cellar/sysbench/1.0.20/share/sysbench/oltp_read_only.lua \
--db-driver=mysql \
--mysql-user=user_name \
--mysql-password=user_password \
--mysql-db=test \
--range_size=100 \
--table_size=10000 \
--tables=2 \
--threads=1 \
--events=0 \
--time=60 \
--rand-type=uniform \
prepare

原始碼:sysbench_prepare.cmd(GitHub Gist)

測試 MySQL 性能(圖 3)

STEP 3:進行測試

只是把指令最後面改成 run

sysbench /usr/local/Cellar/sysbench/1.0.20/share/sysbench/oltp_read_only.lua \
--db-driver=mysql \
--mysql-user=user_name \
--mysql-password=user_password \
--mysql-db=test \
--range_size=100 \
--table_size=10000 \
--tables=2 \
--threads=1 \
--events=0 \
--time=60 \
--rand-type=uniform \
run

原始碼:sysbench_run.cmd(GitHub Gist)

測試 MySQL 性能(圖 4)

STEP 4:清除測試數據

只是把指令最後面改成 cleanup

sysbench /usr/local/Cellar/sysbench/1.0.20/share/sysbench/oltp_read_only.lua \
--db-driver=mysql \
--mysql-user=user_name \
--mysql-password=user_password \
--mysql-db=test \
--range_size=100 \
--table_size=10000 \
--tables=2 \
--threads=1 \
--events=0 \
--time=60 \
--rand-type=uniform \
cleanup

原始碼:sysbench_cleanup.cmd(GitHub Gist)

測試 MySQL 性能(圖 5)

一、在 Ubuntu 上操作 sysbench

安裝 sysbench

sudo apt-get install sysbench -y

安裝完成後輸入指令確認安裝完成

sysbench — version

安裝 sysbench(圖 6)

測試 MySQL 性能

ubuntu 的範例是遠端的測試,針對 write這塊

STEP 1:先建立好測試用的 DB

create database test;

STEP 2:建立測試資料

如果你的設定跟我的範例一樣可能要稍微等一下,因為範例的測資比較大筆

  • mysql-host:目標測試的 ip 或是 host name
  • mysql-port:目標測試的 MySQL port
  • mysql-user、mysql-password:改成自己 MySQL 的使用者
  • mysql-db:測試的資料庫
  • range_size、table_size、tables:測試的規模
  • prepare:建立測資的意思
sysbench /usr/share/sysbench/oltp_write_only.lua \
--mysql-host=127.0.0.1 \
--mysql-port=3306 \
--mysql-user=user_name \
--mysql-password=user_password \
--mysql-db=test \
--db-driver=mysql \
--tables=10 \
--table_size=10000 \
--report-interval=10 \
--threads=128 \
--time=120 \
prepare

原始碼:ubuntu_sysbench_prepare.cmd(GitHub Gist)

測試 MySQL 性能(圖 7)

STEP 3:進行測試

只是把指令最後面改成 run

sysbench /usr/share/sysbench/oltp_write_only.lua \
--mysql-host=127.0.0.1 \
--mysql-port=3306 \
--mysql-user=user_name \
--mysql-password=user_password \
--mysql-db=test \
--db-driver=mysql \
--tables=10 \
--table_size=10000 \
--report-interval=10 \
--threads=128 \
--time=120 \
run

原始碼:ubuntu_sysbench_run.cmd(GitHub Gist)

測試 MySQL 性能(圖 8)

STEP 4:清除測試數據

只是把指令最後面改成 cleanup

sysbench /usr/share/sysbench/oltp_write_only.lua \
--mysql-host=127.0.0.1 \
--mysql-port=3306 \
--mysql-user=user_name \
--mysql-password=user_password \
--mysql-db=test \
--db-driver=mysql \
--tables=10 \
--table_size=10000 \
--report-interval=10 \
--threads=128 \
--time=120 \
cleanup

原始碼:ubuntu_sysbench_cleanup.cmd(GitHub Gist)

測試 MySQL 性能(圖 9)


以上是今天的分享,想了解更多功能請參考官方的 github

參考資源:Ubuntu 16.04中進行Sysbench環境搭建、sysbench安装和使用

Talk

留言討論

留言載入中…