久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

如何進(jìn)行sysbench壓力測(cè)試

共計(jì) 3314 個(gè)字符,預(yù)計(jì)需要花費(fèi) 9 分鐘才能閱讀完成。

如何進(jìn)行 sysbench 壓力測(cè)試,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面丸趣 TV 小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

對(duì)于很多線上業(yè)務(wù)而言,如果有新服務(wù)器,新的環(huán)境,新的業(yè)務(wù),到底資源和預(yù)期的承載壓力是否匹配,這個(gè)得用數(shù)據(jù)說話,或是通過嚴(yán)謹(jǐn)?shù)恼撟C來闡述。

比如一臺(tái)新的服務(wù)器,一般都需要經(jīng)過壓力測(cè)試,我們也叫拷機(jī)測(cè)試。一般都會(huì)從多個(gè)維度來進(jìn)行加壓(比如 CPU, 內(nèi)存,IO 等等),看看服務(wù)器是否依舊堅(jiān)挺,雖然這一點(diǎn)上如果產(chǎn)生了懈怠或者懶惰還是會(huì)被輕視,但是從身邊的例子來看,還是會(huì)測(cè)試出一些問題來,如果發(fā)現(xiàn)了問題,就避免了后續(xù)的很多被動(dòng)。

sysbench 就是這么一個(gè)工具,功能非常全面。是一個(gè)標(biāo)準(zhǔn)模塊化,多線程的基準(zhǔn)測(cè)試工具。

安裝的過程相對(duì)比較簡(jiǎn)單,下載之后參考 README 文檔即可,我就直接略過了。

這個(gè)工具能夠測(cè)試哪些方面呢,我們用命令來說明。

sysbench –help

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 簡(jiǎn)單來說就是下面的一些方面。

1、磁盤 IO 性能

2、CPU 運(yùn)算性能

3、調(diào)度程序性能

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

5、POSIX 線程性能

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

比如測(cè)試 CPU, 如果讓我們測(cè)試還真沒有什么好的思路,看看 sysbench 是怎么做的,可以使用命令 sysbench –test=cpu help 得到如下的結(jié)果:

cpu options:

–cpu-max-prime=N
upper limit for primes generator
[10000] 可以看到重要的關(guān)鍵字 prime, 即質(zhì)數(shù),比如查找小于一千萬(wàn)的最大質(zhì)數(shù),這個(gè)問題還是蠻燒腦的,就讓 CPU 來燒吧,這樣運(yùn)行即可。會(huì)啟用 10 個(gè)并發(fā)線程,最大請(qǐng)求數(shù)是 100

/usr/local/bin/sysbench –num-threads=10 –max-requests=100 –test=cpu –debug –cpu-max-prime=10000000 run

有了 CPU 壓測(cè)的基本概念,后續(xù)的幾種解釋起來就相對(duì)容易一些了。

比如測(cè)試內(nèi)存,可以指定測(cè)試范圍,如 32G,64G 根據(jù)自己需要來。

比如我們測(cè)試 32G 內(nèi)存,并發(fā)線程數(shù)是 10 個(gè),最大請(qǐng)求數(shù)是 100,分別從讀和寫兩種測(cè)試來做。

內(nèi)存讀測(cè)試

/usr/local/bin/sysbench –num-threads=10 –max-requests=100

–test=memory –memory-block-size=8k –memory-total-size=32G

–memory-oper=readrun 內(nèi)存寫測(cè)試

/usr/local/bin/sysbench
–num-threads=10 –max-requests=100 –test=memory
–memory-block-size=8k
–memory-total-size=32G–memory-oper=writerun 而對(duì)于 IO 測(cè)試而言,是有些區(qū)別的,因?yàn)闀?huì)有準(zhǔn)備數(shù)據(jù)(比如寫一個(gè)臨時(shí)文件),所以會(huì)分成幾個(gè)階段,準(zhǔn)備階段,運(yùn)行階段,清理階段。

下面就是一個(gè)相對(duì)簡(jiǎn)單的場(chǎng)景,20 個(gè)文件, 每個(gè) 10GB, 隨機(jī)讀寫,文件大小總量在 200G.

/usr/local/bin/sysbench –file-num=20 –num-threads=20 –test=fileio

–file-total-size=

200G–max-requests=1000000 –file-test-mode=rndrwprepare

/usr/local/bin/sysbench –file-num=20 –num-threads=20

–test=fileio –file-total-size=

200G–max-requests=1000000 –file-test-mode=rndrwrun

/usr/local/bin/sysbench –file-num=20

–num-threads=20 –test=fileio –file-total-size=

200G–max-requests=1000000
–file-test-mode=rndrwcleanup 硬件類的測(cè)試,基本一次測(cè)試就能夠得到一個(gè)基線數(shù)據(jù),就不需要反反復(fù)復(fù)測(cè)試了。而對(duì)于 DBA 還是開發(fā)同學(xué)而言,更加關(guān)注于業(yè)務(wù)層面,我們會(huì)從很多可能的角度和場(chǎng)景去分析權(quán)衡,這些 sysbench 也是支持的,就是 oltp 選項(xiàng)。

當(dāng)然 sysben 對(duì)于 mysql 的支持是原生的,而對(duì)于其他的數(shù)據(jù) oracle,PostgreSQL 等數(shù)據(jù),需要單獨(dú)配置。

因?yàn)閼?yīng)用測(cè)試會(huì)產(chǎn)生基礎(chǔ)數(shù)據(jù),所以也是分為多階段的。

比如準(zhǔn)備基礎(chǔ)數(shù)據(jù),進(jìn)行壓力測(cè)試,最后的統(tǒng)計(jì)結(jié)果和后期的清理。這里值得說的是,對(duì)于較低版本的 sysbench 而言,還不支持多表參數(shù) –oltp_tables_count,準(zhǔn)備好基礎(chǔ)數(shù)據(jù),后面就會(huì)開啟多線程模式進(jìn)行模擬壓力的測(cè)試。比如下面的命令,測(cè)試模式 complex, 并發(fā)線程數(shù) 30, 最大請(qǐng)求數(shù) 5000000
,表的數(shù)據(jù)量在一億。先創(chuàng)建一個(gè)測(cè)試庫(kù) sysbenchtest,測(cè)試完成之后刪除即可。

mysql -uroot -e create database if not exists sysbenchtest

/usr/local/bin/sysbench –mysql-user=root –test=oltp

–mysql-host=localhost –oltp-test-mode=complex

–mysql-table-engine=innodb –oltp-table-size=100000000

–mysql-db=sysbenchtest –oltp-table-name=innodb_test –num-threads=30

–max-requests=5000000

prepare

/usr/local/bin/sysbench

–mysql-user=root –test=oltp –mysql-host=localhost

–oltp-test-mode=complex –mysql-table-engine=innodb

–oltp-table-size=100000000 –mysql-db=sysbenchtest

–oltp-table-name=innodb_test –num-threads=30 –max-requests=5000000

run

mysql -uroot -e drop table if exists sysbenchtest.innodb_test; drop database if exists sysbenchtest

在一臺(tái)服務(wù)器上我進(jìn)行了測(cè)試,發(fā)現(xiàn) 1 億左右的數(shù)據(jù),數(shù)據(jù)文件在 24G 左右。

-rw-r—– 1 mysql mysql 61 Mar 10 11:20 db.opt

-rw-r—– 1 mysql mysql 8632 Mar 10 11:20 innodb_test.frm

-rw-r—– 1 mysql mysql 24419237888 Mar 10 13:29 innodb_test.ibd

得到的報(bào)告如下, 可以看到整個(gè)過程持續(xù)了近 3 個(gè)小時(shí),TPS 在 455 左右,其實(shí)還是不高的。

對(duì)于壓力測(cè)試,其實(shí)一個(gè)蠻不錯(cuò)的想法,就是我指定壓測(cè)的策略,然后讓它去在后臺(tái)運(yùn)行,MGR 測(cè)試腳本已經(jīng)寫好,會(huì)在測(cè)試之后共享給大家,這樣一來,我可以在瞬間創(chuàng)建出多個(gè)節(jié)點(diǎn),然后測(cè)試很多復(fù)雜的壓力場(chǎng)景。到時(shí)候我就直接查看數(shù)據(jù),得到一個(gè)報(bào)告,想想都很有意思。

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注丸趣 TV 行業(yè)資訊頻道,感謝您對(duì)丸趣 TV 的支持。

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-07-19發(fā)表,共計(jì)3314字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
評(píng)論(沒有評(píng)論)
主站蜘蛛池模板: 仁布县| 吉安县| 青海省| 桂阳县| 汾西县| 清丰县| 江西省| 韶关市| 宿州市| 苏尼特左旗| 雷山县| 菏泽市| 巴林左旗| 贵州省| 辰溪县| 姚安县| 淮北市| 瓮安县| 健康| 砀山县| 都匀市| 张掖市| 长岭县| 西林县| 彝良县| 滦南县| 长子县| 彭泽县| 西峡县| 泽普县| 民丰县| 平泉县| 凉山| 沙雅县| 西峡县| 台安县| 周至县| 博兴县| 肃北| 沙洋县| 新源县|