TiDB-性能測試


使用sysbench測試TiDB

建議使用 Sysbench 1.0 或之后的更新版本

軟件下載地址

https://github.com/akopytov/sysbench
https://github.com/akopytov/sysbench/archive/1.0.16.tar.gz

安裝sysbench

依賴包安裝

yum -y install gcc gcc-c++ automake make libtool pkgconfig libaio-devel openssl-devel

解壓並編譯安裝sysbench

tar -zxvf 1.0.16.tar.gz

cd sysbench-1.0.16

./autogen.sh

./configure --with-mysql-includes=/usr/include/mysql --with-mysql-libs=/usr/lib64/mysql --with-mysql

make -j 2 && make install

測試過程

sysbench配置

配置文件參考示例如下:

mysql-host=192.168.10.180
mysql-port=4000
mysql-user=root
mysql-password=root
mysql-db=sbtest
time=600
threads=16
report-interval=10
db-driver=mysql

數據導入

通過 MySQL 客戶端連接到TiDB Server並執行以下 SQL 語句,創建測試數據庫 sbtest

create database sbtest;

調整 Sysbench 腳本創建索引的順序。Sysbench 按照“建表->插入數據->創建索引”的順序導入數據。對於 TiDB 而言,該方式會花費更多的導入時間。你可以通過調整順序來加速數據的導入。

配置lua測試文件

tidb-bench/oltp_common.lua at master · pingcap/tidb-bench · GitHub

開始導入數據

config 文件為上一小節中配置的文件

sysbench --config-file=config oltp_point_select --tables=32 --table-size=10000000 prepare

數據預熱與統計信息收集

數據預熱可將磁盤中的數據載入內存的 block cache 中,預熱后的數據對系統整體的性能有較大的改善,建議在每次重啟集群后進行一次數據預熱。

若使用的當前Sysbench 版本沒有提供數據預熱的功能,需要手動進行數據預熱。如果使用更新的 Sysbench 版本,可以使用自帶的預熱功能,可以跳過。

以 Sysbench 中某張表 sbtest7 為例,執行如下 SQL 語句 進行數據預熱:

SELECT COUNT(pad) FROM sbtest7 USE INDEX (k_7);

統計信息收集有助於優化器選擇更為准確的執行計划,可以通過 analyze 命令來收集表 sbtest 的統計信息,每個表都需要統計。

ANALYZE TABLE sbtest7;

測試命令

Point select 測試命令
sysbench --config-file=config oltp_point_select --tables=32 --table-size=10000000 run
Update index 測試命令
sysbench --config-file=config oltp_update_index --tables=32 --table-size=10000000 run
Read-only 測試命令
sysbench --config-file=config oltp_read_only --tables=32 --table-size=10000000 run


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM