日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

sysbench mysql oltp_用sysbench进行数据库OLTP基准测试

發(fā)布時(shí)間:2025/3/19 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sysbench mysql oltp_用sysbench进行数据库OLTP基准测试 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

基于TPC-C的OLTP基準(zhǔn)測(cè)試,對(duì)比Mysql和PostgreSQL的性能

一、什么是TPC-C和tpmC

1、TPC-C

TPC-C是一種旨在衡量聯(lián)機(jī)事務(wù)處理(OLTP)系統(tǒng)性能與可伸縮性的行業(yè)標(biāo)準(zhǔn)基準(zhǔn)測(cè)試項(xiàng)目。這種基準(zhǔn)測(cè)試項(xiàng)目將對(duì)包括查詢、更新及隊(duì)列式小批量事務(wù)在內(nèi)的廣泛數(shù)據(jù)庫(kù)功能進(jìn)行測(cè)試。TPC-C基準(zhǔn)測(cè)試針對(duì)一種模擬訂單錄入與銷售環(huán)境測(cè)量每分鐘商業(yè)事務(wù)(tpmC)吞吐量。

2、tpmC

tpmC值在國(guó)內(nèi)外被廣泛用于衡量計(jì)算機(jī)系統(tǒng)的事務(wù)處理能力,是TPC-C吞吐率的單位。tpm是transactions per minute的簡(jiǎn)稱;C指TPC中的C基準(zhǔn)程序。它的定義是每分鐘內(nèi)系統(tǒng)處理的新訂單個(gè)數(shù)。

二、sysbench

sysbench是一款壓力測(cè)試工具,可以測(cè)試系統(tǒng)的硬件性能,也可以用來(lái)對(duì)數(shù)據(jù)庫(kù)進(jìn)行基準(zhǔn)測(cè)試。

1、下載安裝

從GitHub上下載安裝包:下載地址

安裝

安裝sysbench之前,因?yàn)槭菍?duì)比Mysql和PostgreSQL,所以先安裝兩個(gè)數(shù)據(jù)庫(kù),我的PG用源碼編譯安裝,Mysql使用yum安裝,還需要安裝對(duì)應(yīng)版本的mysql-devel

yum install mysql-devel

先定位好PG和Mysql的頭文件和lib文件,即include和lib文件夾,如:

PG:/opt/pgsql/include /opt/pgsql/lib

mysql: /usr/include/mysql /usr/lib64/mysql

將下載好的sysbench安裝包上傳至服務(wù)器,解壓后編譯安裝

unzip sysbench-master.zip

cd sysbench-master

./ autogen.sh 生成configure文件

./configure –prefix=/opt/sysbench --with-mysql --with-mysql-includes=/usr/include/mysql --with-mysql-libs=/usr/lib64/mysql --with-pgsql --with-pgsql-includes=/opt/pgsql/include --with-pgsql-libs=/opt/pgsql/lib

make && make install

[NOTE]

sysbench也支持Oracle,安裝時(shí)可以用--with-oracle參數(shù)來(lái)安裝。

設(shè)置環(huán)境變量:vim ~/.bash_profile添加:

export LD_LIBRARY_PATH=/opt/pgsql/lib

export PATH=$PATH:/opt/sysbench/bin

完成安裝

2、sysbench支持的幾種測(cè)試模式

CPU運(yùn)算性能

磁盤IO性能

調(diào)度程序性能

內(nèi)存分配及傳輸速度

POSIX線程性能

數(shù)據(jù)庫(kù)性能(OLTP基準(zhǔn)測(cè)試)

[NOTE]

目前sysbench主要支持 mysql,drizzle,pgsql,oracle 等幾種數(shù)據(jù)庫(kù)。

3、數(shù)據(jù)庫(kù)性能測(cè)試

以Mysql數(shù)據(jù)庫(kù)為例,sysbench的數(shù)據(jù)庫(kù)性能測(cè)試主要分為三個(gè)步驟,prepare、run、cleanup

準(zhǔn)備階段(prepare)

sysbench oltp_read_write.lua --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-db=sbtest --mysql-user=root --mysql-password=Grea1234 --table_size=1000000 --tables=10 --threads=20 --events=0 --report-interval=10 --time=120 --range_size=500 prepare

部分參數(shù)說(shuō)明:

--mysql-host IP

--mysql-port 端口號(hào)

--mysql-db 希望鏈接的數(shù)據(jù)庫(kù)

--mysql-user 用戶名

--mysql-password 密碼

--table_size 每張表初始化的數(shù)據(jù)數(shù)量

--tables 初始化表的數(shù)量

--threads 啟動(dòng)的線程

--time 運(yùn)行時(shí)間設(shè)為0表示不限制時(shí)間

--report-interval 運(yùn)行期間日志,單位為秒

--events 最大請(qǐng)求數(shù)量,定義數(shù)量后可以不需要--time選項(xiàng)

執(zhí)行階段(run)

sysbench oltp_read_write.lua --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-db=sbtest --mysql-user=root --mysql-password=Grea1234 --table_size=1000000 --tables=10 --threads=20 --events=0 --report-interval=10 --time=120 --range_size=500 run >>/opt/sysbench/result/oltp_read_write.log

清理數(shù)據(jù)階段(cleanup)

sysbench oltp_read_write.lua --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-db=sbtest --mysql-user=root --mysql-password=Grea1234 --table_size=1000000 --tables=10 --threads=20 --events=0 --report-interval=10 --time=120 --range_size=500 cleanup

[NOTE]

對(duì)PG數(shù)據(jù)庫(kù)進(jìn)行測(cè)試,添加參數(shù)--db-driver=pgsql,然后對(duì)應(yīng)的將mysql換成pgsql;

樣例中是oltp的讀寫模式,還有只讀模式等,具體可以通過sysbench --help查看或者sysbench testname help查看具體test的幫助,如sysbench oltp_read_write help

4、結(jié)果解讀

Running the test with following options:

Number of threads: 5

Report intermediate results every 10 second(s)

Initializing random number generator from current time

Initializing worker threads...

Threads started!

-- 每10秒鐘報(bào)告一次測(cè)試結(jié)果,tps、每秒讀、每秒寫、95%以上的響應(yīng)時(shí)長(zhǎng)統(tǒng)計(jì)

[ 10s ] thds: 5 tps: 294.23 qps: 5893.38 (r/w/o: 4125.90/1178.52/588.96) lat (ms,95%): 24.83 err/s: 0.00 reconn/s: 0.00

[ 20s ] thds: 5 tps: 302.41 qps: 6046.38 (r/w/o: 4232.73/1208.84/604.82) lat (ms,95%): 22.69 err/s: 0.00 reconn/s: 0.00

[ 30s ] thds: 5 tps: 282.70 qps: 5653.91 (r/w/o: 3958.11/1130.40/565.40) lat (ms,95%): 24.83 err/s: 0.00 reconn/s: 0.00

[ 40s ] thds: 5 tps: 299.80 qps: 5993.54 (r/w/o: 4195.16/1198.79/599.59) lat (ms,95%): 22.69 err/s: 0.00 reconn/s: 0.00

[ 50s ] thds: 5 tps: 310.00 qps: 6204.40 (r/w/o: 4342.80/1241.60/620.00) lat (ms,95%): 21.50 err/s: 0.00 reconn/s: 0.00

[ 60s ] thds: 5 tps: 282.20 qps: 5641.45 (r/w/o: 3949.33/1127.71/564.40) lat (ms,95%): 22.69 err/s: 0.00 reconn/s: 0.00

[ 70s ] thds: 5 tps: 301.77 qps: 6037.16 (r/w/o: 4226.12/1207.49/603.55) lat (ms,95%): 21.89 err/s: 0.00 reconn/s: 0.00

[ 80s ] thds: 5 tps: 317.23 qps: 6345.01 (r/w/o: 4441.36/1269.20/634.45) lat (ms,95%): 21.11 err/s: 0.00 reconn/s: 0.00

[ 90s ] thds: 5 tps: 317.10 qps: 6341.87 (r/w/o: 4439.28/1268.39/634.20) lat (ms,95%): 21.11 err/s: 0.00 reconn/s: 0.00

[ 100s ] thds: 5 tps: 314.40 qps: 6288.52 (r/w/o: 4401.71/1258.00/628.80) lat (ms,95%): 21.50 err/s: 0.00 reconn/s: 0.00

[ 110s ] thds: 5 tps: 316.70 qps: 6334.14 (r/w/o: 4433.93/1266.81/633.40) lat (ms,95%): 21.11 err/s: 0.00 reconn/s: 0.00

[ 120s ] thds: 5 tps: 318.57 qps: 6370.30 (r/w/o: 4459.68/1273.48/637.14) lat (ms,95%): 21.11 err/s: 0.00 reconn/s: 0.00

SQL statistics:

queries performed:

read: 512078 -- 讀總數(shù)

write: 146308 -- 寫總數(shù)

other: 73154 -- 其他操作總數(shù)(SELECT、INSERT、UPDATE、DELETE之外的操作,例如COMMIT等)

total: 731540 -- 全部總數(shù)

transactions: 36577 (304.76 per sec.) -- 總事務(wù)數(shù)(每秒事務(wù)數(shù))

queries: 731540 (6095.25 per sec.) -- 總操作數(shù)包括讀寫和其他(每秒操作數(shù))

ignored errors: 0 (0.00 per sec.) -- 錯(cuò)誤次數(shù)

reconnects: 0 (0.00 per sec.) -- 重連次數(shù)

Throughput:

events/s (eps): 304.7625 -- 每秒事務(wù)數(shù)

time elapsed: 120.0181s -- 運(yùn)行時(shí)間

total number of events: 36577 -- 總的事務(wù)數(shù)

Latency (ms):

min: 8.99 -- 最小耗時(shí)

avg: 16.40 -- 平均耗時(shí)

max: 505.74 -- 最長(zhǎng)耗時(shí)

95th percentile: 22.28 -- 超過95%平均耗時(shí)

sum: 599942.57

Threads fairness: -- 線程公平性統(tǒng)計(jì)信息,表示負(fù)載的公平性

events (avg/stddev): 7315.4000/8.82

execution time (avg/stddev): 119.9885/0.01

[NOTE]

我們主要關(guān)注總事務(wù)數(shù)和每秒事務(wù)數(shù)來(lái)做對(duì)比

5、其他幾種模式簡(jiǎn)單測(cè)試

測(cè)試CPU性能

sysbench cpu --cpu-max-prime=10000 run

I/O測(cè)試

準(zhǔn)備:sysbench fileio --file-total-size=40G prepare

運(yùn)行順序?qū)懭霚y(cè)試:sysbench fileio --file-total-size=40G --file-test-mode=seqwr run

運(yùn)行順序重寫測(cè)試:sysbench fileio --file-total-size=40G --file-test-mode=seqrewr run

總結(jié)

以上是生活随笔為你收集整理的sysbench mysql oltp_用sysbench进行数据库OLTP基准测试的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。