sysbench多線程性能測(cè)試工具,可以測(cè)試cpu/memory/IO/數(shù)據(jù)庫(kù)等性能。 2個(gè)版本sysbench0.4和sysbench0.5介紹: 我們先了解對(duì)數(shù)據(jù)庫(kù)OLTP測(cè)試: sysbench --help Usage: sysbench [general-options]... --test=<test-name> [test-options]... command --test:測(cè)試類(lèi)型,有fileio/memory/threads/mutex. sysbench0.5與sysbench0.4區(qū)別:0.5支持多表測(cè)試,執(zhí)行實(shí)時(shí)打印統(tǒng)計(jì)信息,自定義lua腳本; --test=<test-name> 2者測(cè)試模塊如下: sysbench0.5: Compiled-in tests: fileio - File I/O test cpu - CPU performance test memory - Memory functions speed test threads - Threads subsystem performance test mutex - Mutex performance test sysbench0.5: Compiled-in tests: fileio - File I/O test cpu - CPU performance test memory - Memory functions speed test threads - Threads subsystem performance test mutex - Mutex performance test oltp - OLTP test #與0.5不同點(diǎn) --general-options 每個(gè)模塊對(duì)應(yīng)的general-options可以借助: sysbench --test=oltp help 因0.4和0.5版本不同,但是基本參數(shù)是兼容的; --command 經(jīng)歷prepare run cleaup prepare:準(zhǔn)備過(guò)程,oltp測(cè)試向表中l(wèi)oad數(shù)據(jù) run:正式測(cè)試過(guò)程 cleanup是清理過(guò)程,run后需要清理測(cè)試過(guò)程中遺留下來(lái)的信息。 sysbench測(cè)試實(shí)例: --prepare: sysbench --test=/home/zbs/sysbench-0.5/sysbench/tests/db/parallel_prepare.lua --oltp_tables_count=1 --oltp-table-size=$records --rand-init=on --num-threads=$thds --oltp-read-only=off --report-interval=10 --rand-type=special --rand-spec-pct=5 --mysql-table-engine=$type --max-time=8000 --mysql-host=$host --mysql-port=$port --mysql-user=test --mysql-password=test --mysql-db=test1 --max-requests=0 prepare --run: sysbench --test=/home/zbs/sysbench-0.5/sysbench/tests/db/parallel_prepare.lua --oltp_tables_count=1 --oltp-table-size=$records --rand-init=on --num-threads=$thds --oltp-read-only=off --report-interval=10 --rand-type=special --rand-spec-pct=5 --mysql-table-engine=$type --max-time=8000 --mysql-host=$host --mysql-port=$port --mysql-user=test --mysql-password=test --mysql-db=test1 --max-requests=0 run --cleanup: sysbench --test=/home/zbs/sysbench-0.5/sysbench/tests/db/parallel_prepare.lua --oltp_tables_count=1 --oltp-table-size=$records --rand-init=on --num-threads=$thds --oltp-read-only=off --report-interval=10 --rand-type=special --rand-spec-pct=5 --mysql-table-engine=$type --max-time=8000 --mysql-host=$host --mysql-port=$port --mysql-user=test --mysql-password=test --mysql-db=test1 --max-requests=0 cleanup 3者測(cè)試參數(shù)一致,不同的階段使用的參數(shù)不同; 參數(shù)了解: --test:指定測(cè)試模式對(duì)應(yīng)的lua文件,這個(gè)裝好sysbench就有且這是0.5新增,0.4只需直接--test=oltp即可。 --oltp_table_count=1:指定測(cè)試過(guò)程中表的個(gè)數(shù),0.5新增,0.4整個(gè)測(cè)試過(guò)程只有一個(gè)表。 --oltp-table-size=:指定表的大小,如果指定1000,那么它會(huì)往表里初始化1000條數(shù)據(jù) --rand-init=on:是否隨機(jī)初始化數(shù)據(jù),如果不隨機(jī)化那么初始好的數(shù)據(jù)每行內(nèi)容除了主鍵不同外其他完全相同。 --num-threads=:測(cè)試過(guò)程中并發(fā)線程數(shù),看測(cè)試要求來(lái)定并發(fā)壓力。 --otlp-read-only=off:知否只讀測(cè)試 --report-interval=10:每隔多久打印一次統(tǒng)計(jì)信息,單位秒,0.5新增 --rand-type=special:數(shù)據(jù)分布模式,special表示存在熱點(diǎn)數(shù)據(jù),uniform表示非熱點(diǎn)數(shù)據(jù)模式,還有其他幾個(gè)選項(xiàng)。 --rand-spec-pct=5:這個(gè)與上面那個(gè)選項(xiàng)相關(guān) --mysql-table-engine=$type:表的存儲(chǔ)引擎類(lèi)型,innodb/myisam/tokudb/這些都可以。 --max-time=8000:這個(gè)命令跑多長(zhǎng)時(shí)間,單位秒,與之相反的是指定請(qǐng)求數(shù)--max-requests --mysql-host=$host --mysql-port=$port --mysql-user=test --mysql-password=test --mysql-db=test1 這幾個(gè)表示被測(cè)試的MySQL實(shí)例信息,因?yàn)樾枰B數(shù)據(jù)庫(kù) --max-requests:可以兩者形式指定命令運(yùn)行多長(zhǎng)時(shí)間。 綜上所述: sysbench優(yōu)點(diǎn): 1.測(cè)試類(lèi)型可以選擇 2.定制的參數(shù)選擇豐富 缺點(diǎn): 1.測(cè)試表結(jié)構(gòu)太簡(jiǎn)單; CREATE TABLE `sbtest1` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `k` int(10) unsigned NOT NULL DEFAULT '0', `c` char(120) NOT NULL DEFAULT '', `pad` char(60) NOT NULL DEFAULT '', PRIMARY KEY (`id`), KEY `k_1` (`k`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 有效僅有3個(gè)字段,不能正式模擬線上應(yīng)用,可以利用它來(lái)做指導(dǎo)測(cè)試,作為標(biāo)準(zhǔn), 測(cè)試產(chǎn)品穩(wěn)定性,抗壓性,mysql打補(bǔ)丁,更改參數(shù),利用sysbench跑上幾天或更久 轉(zhuǎn):http://blog./26855487/viewspace-775897/ |
|
來(lái)自: dazheng > 《數(shù)據(jù)庫(kù)》