sysbench數據庫性能測試基準

  1. 背景介紹
    我們如何判斷一臺數據服務器的性能呢?sysbench是一種行業基準,它通過各種指標來判斷一個數據服務器的負載情況。

  2. 安裝sysbench

curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash
sudo yum -y install sysbench
  1. 測試 CPU
    CPU 測試計算素數,直到某個指定值所需要的時間。
    CPU 基準測試時可以指定線程數量和素數上限
    sysbench cpu help可以查看幫助文檔
sysbench --cpu-max-prime=1000 --threads=2 cpu run

在這裏插入圖片描述
4. 測試內存
內存測試時,會分配一個內存緩衝區並在此執行讀寫操作,每次操作都會讀完或寫滿緩衝區。然後重複此操作直到達到指定大小(–memory-total-size)。可以提供線程數(–threads),不同的緩衝區大小(–memory-block-size)和請求類型(讀或寫,順序或隨機),sysbench memory help可以查看幫助文檔

sysbench --threads=4  --memory-block-size=8k --memory-total-size=4G memory run

在這裏插入圖片描述5. 測試 threads
threads 測試 時,每個工作線程將被分配一個 mutex鎖。每次執行時,每個線程將循環–thread-yields 次,循環時這個線程會鎖定,sysbench threads help可以查看幫助文檔

sysbench --thread-yields=2000 --thread-locks=8 threads run

在這裏插入圖片描述
6. 測試 mutex
mutex鎖 測試 時,sysbench 將爲每個線程運行一個請求。這個請求首先會對 CPU 施加一些壓力(使用一個簡單的增量循環,通過 --mutex-loops 參數設置),然後隨機使用一個 mutex,遞增一個全局變量並再次釋放鎖。這個過程根據鎖的個數(–mutex-locks)多次重複。隨機 mutex 取自大小爲 --mutex-num 的參數池,sysbench mutex help可以查看幫助文檔

sysbench mutex run

在這裏插入圖片描述
7. 測試 file io
1).創建測試文件

sysbench --file-total-size=2G fileio prepare

2)測試
通過隨機訪問文件裏的內容來測試讀寫速度
sysbench fileio help可以查看幫助文檔

在這裏插入代碼片

在這裏插入圖片描述
3)清除測試文件

sysbench --file-total-size=2G fileio cleanup
  1. OLTP 基準測試
    1)創建表
sysbench --db-driver=mysql --mysql-user=root --mysql-password=123456  --mysql-db=oltp --range_size=100 --table_size=10000 --tables=2 --threads=2 --events=0 --time=60 --rand-type=uniform /usr/share/sysbench/oltp_read_only.lua prepare

2)測試
最新版本的 sysbench 把 OLTP 這個曾經的內建測試類型移除了,如果要用,需要在命令中指定測試類型的位置用 /usr/share/sysbench/oltp_read_only.lua 腳本代替測試類型,sysbench oltp_read_only help可以查看幫助文檔

sysbench --db-driver=mysql --mysql-user=root --mysql-password=123456  --mysql-db=oltp --range_size=100 --table_size=10000 --tables=2 --threads=2 --events=0 --time=60 --rand-type=uniform /usr/share/sysbench/oltp_read_only.lua run

在這裏插入圖片描述3)清理創建的表

sysbench --db-driver=mysql --mysql-user=root --mysql-password=123456  --mysql-db=oltp --range_size=100 --table_size=10000 --tables=2 --threads=2 --events=0 --time=60 --rand-type=uniform /usr/share/sysbench/oltp_read_only.lua cleanup
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章