Mysql 數(shù)據(jù)庫(kù)壓力測(cè)試工具 - MySqlSlap

MySQLSlap是從MySQL的5.1.4版引入的壓力測(cè)試工具。該工具我們可以在Mysql的安裝目錄的bin目錄里面找到盼忌,如C:\Program Files\MySQL\MySQL Server 5.7\bin>换怖。

名詞解釋

  • TPSTransactions Per Second(每秒傳輸?shù)氖挛锾幚韨€(gè)數(shù))快集,這是指服務(wù)器每秒處理的事務(wù)數(shù)笛臣,支持事務(wù)的存儲(chǔ)引擎如InnoDB等特有的一個(gè)性能指標(biāo)。 TPS = (COM_COMMIT + COM_ROLLBACK)/UPTIME
  • QPSQueries Per Second(每秒查詢處理量)同時(shí)適用與InnoDB和MyISAM 引擎尸饺。QPS=QUESTIONS/UPTIME
  • 等待時(shí)間:執(zhí)行Sql等待返回結(jié)果之間的等待時(shí)間

主要功能

  • 創(chuàng)建測(cè)試庫(kù)进统、測(cè)試表、測(cè)試表結(jié)構(gòu) 浪听;
  • 運(yùn)行負(fù)載測(cè)試螟碎,可以使用多個(gè)并發(fā)客戶端連接;
  • 測(cè)試環(huán)境清理(刪除創(chuàng)建的數(shù)據(jù)馋辈、表等抚芦,斷開(kāi)連接);

主要參數(shù)

............................................................參數(shù) 作用
--create-schema=name 指定測(cè)試的數(shù)據(jù)庫(kù)名,默認(rèn)是mysqlslap迈螟。
--engine=engine_name,-e engine_name 代表要測(cè)試表的引擎叉抡,可以有多個(gè)用逗號(hào)分隔符隔開(kāi),如:--engines=myisam,innodb答毫。
--concurrency=N,-c N 模擬N個(gè)客戶端并發(fā)執(zhí)行褥民。可指定多個(gè)值洗搂,以逗號(hào)隔開(kāi)消返,如:--concurrency=1,50,100,200
--number-of-queries=N 總的測(cè)試查詢次數(shù)(并發(fā)客戶數(shù)×每客戶查詢次數(shù))耘拇,比如并發(fā)是10撵颊,總次數(shù)是100,那么10個(gè)客戶端各執(zhí)行10個(gè)
--iterations=N,-i N 迭代執(zhí)行的次數(shù)惫叛,即重復(fù)的次數(shù)(相同的測(cè)試進(jìn)行N次倡勇,求一個(gè)平均值),指的是整個(gè)步驟的重復(fù)次數(shù)嘉涌,包括準(zhǔn)備數(shù)據(jù)妻熊、測(cè)試load、清理仑最。
--commit=N 執(zhí)行N條DML后提交一次扔役。
--auto-generate-sql, -a 自動(dòng)生成測(cè)試表和數(shù)據(jù),表示用mysqlslap工具自己生成的SQL腳本來(lái)測(cè)試并發(fā)壓力警医。
--auto-generate-sql-load-type=name 測(cè)試語(yǔ)句的類型亿胸。代表要測(cè)試的環(huán)境是讀操作還是寫操作還是兩者混合的。

取值包括:read (scan tables), write (insert into tables), key (read primary keys), update (update primary keys), or mixed (half inserts, half scanning selects). 默認(rèn)值是:mixed预皇。
--auto-generate-sql-add-auto-increment 對(duì)生成的表自動(dòng)添加auto_increment列损敷。
--number-char-cols=name,-x N 自動(dòng)生成的測(cè)試表中包含N個(gè)字符類型的列,默認(rèn)1深啤。
--number-int-cols=name,-y N 自動(dòng)生成的測(cè)試表中包含N個(gè)數(shù)字類型的列拗馒,默認(rèn)1。
--debug-info 打印內(nèi)存和CPU的信息溯街。
--compress, -C 如果服務(wù)器和客戶端支持都?jí)嚎s诱桂,則壓縮信息傳遞。
--only-print 只打印測(cè)試語(yǔ)句而不實(shí)際執(zhí)行呈昔。

命令示例

  1. 并發(fā)數(shù)100挥等,循環(huán)10次,主動(dòng)建表和生成數(shù)據(jù)堤尾,指定表引擎為innodb肝劲,總的查詢次數(shù)為100:
mysqlslap -uroot -proot --concurrency=100  --iterations 10 -a  --auto-generate-sql-add-autoincrement --engine=innodb --number-of-queries=100

-uroot -proot:是數(shù)據(jù)庫(kù)用戶名和密碼

輸出結(jié)果:

PS C:\Program Files\MySQL\MySQL Server 5.7\bin> ./mysqlslap -uroot -proot --concurrency=100  --iterations 10 -a  --auto-generate-sql-add-autoincrement --engine=innodb --number-of-queries=100
Benchmark
        Running for engine innodb
        Average number of seconds to run all queries: 0.175 seconds
        Minimum number of seconds to run all queries: 0.031 seconds
        Maximum number of seconds to run all queries: 1.078 seconds
        Number of clients running queries: 100
        Average number of queries per client: 1
  • Running for engine innodb:運(yùn)行的存儲(chǔ)引擎是innodb
  • Average number of seconds to run all queries: 0.175 seconds:運(yùn)行所有查詢的平均秒數(shù)。
  • Minimum number of seconds to run all queries: 0.031 seconds:運(yùn)行所有查詢的最小秒數(shù)辞槐。
  • Maximum number of seconds to run all queries: 1.078 seconds:運(yùn)行所有查詢的最大秒數(shù)掷漱。
  • Number of clients running queries: 100:運(yùn)行查詢的客戶端數(shù)(并發(fā)數(shù))。
  • Average number of queries per client: 1:平均每個(gè)客戶的查詢數(shù)量榄檬。
  1. 分別執(zhí)行1,50,100,200的并發(fā)卜范,循環(huán)3次,表有5個(gè)字符串字段鹿榜,5個(gè)int型字段海雪,自動(dòng)創(chuàng)建建數(shù)據(jù),新增自動(dòng)自動(dòng)增長(zhǎng)列舱殿,分別測(cè)試myisam,innodb兩個(gè)引擎奥裸,指定測(cè)試庫(kù)的名稱為enjoytest1,輸出內(nèi)存情況
mysqlslap -uroot -proot  --concurrency=1,50,100,200 --iterations=3 --number-char-cols=5 --number-int-cols=5 --auto-generate-sql --auto-generate-sql-add-autoincrement  --engine=myisam,innodb  --create-schema='enjoytest1' --debug-info 

輸出結(jié)果:

PS C:\Program Files\MySQL\MySQL Server 5.7\bin> ./mysqlslap -uroot -proot  --concurrency=1,50,100,200 --iterations=3 --number-char-cols=5 --number-int-cols=5 --auto-generate-sql --auto-generate-sql-add-autoincrement  --engine=myisam,innodb --create-schema='enjoytest1'
Benchmark
        Running for engine myisam
        Average number of seconds to run all queries: 0.010 seconds
        Minimum number of seconds to run all queries: 0.000 seconds
        Maximum number of seconds to run all queries: 0.016 seconds
        Number of clients running queries: 1
        Average number of queries per client: 0

Benchmark
        Running for engine myisam
        Average number of seconds to run all queries: 0.375 seconds
        Minimum number of seconds to run all queries: 0.031 seconds
        Maximum number of seconds to run all queries: 1.047 seconds
        Number of clients running queries: 50
        Average number of queries per client: 0

Benchmark
        Running for engine myisam
        Average number of seconds to run all queries: 0.041 seconds
        Minimum number of seconds to run all queries: 0.015 seconds
        Maximum number of seconds to run all queries: 0.093 seconds
        Number of clients running queries: 100
        Average number of queries per client: 0

Benchmark
        Running for engine myisam
        Average number of seconds to run all queries: 0.427 seconds
        Minimum number of seconds to run all queries: 0.015 seconds
        Maximum number of seconds to run all queries: 1.125 seconds
        Number of clients running queries: 200
        Average number of queries per client: 0

Benchmark
        Running for engine innodb
        Average number of seconds to run all queries: 0.010 seconds
        Minimum number of seconds to run all queries: 0.000 seconds
        Maximum number of seconds to run all queries: 0.016 seconds
        Number of clients running queries: 1
        Average number of queries per client: 0

Benchmark
        Running for engine innodb
        Average number of seconds to run all queries: 0.494 seconds
        Minimum number of seconds to run all queries: 0.156 seconds
        Maximum number of seconds to run all queries: 1.172 seconds
        Number of clients running queries: 50
        Average number of queries per client: 0

Benchmark
        Running for engine innodb
        Average number of seconds to run all queries: 0.343 seconds
        Minimum number of seconds to run all queries: 0.328 seconds
        Maximum number of seconds to run all queries: 0.359 seconds
        Number of clients running queries: 100
        Average number of queries per client: 0

Benchmark
        Running for engine innodb
        Average number of seconds to run all queries: 1.250 seconds
        Minimum number of seconds to run all queries: 0.593 seconds
        Maximum number of seconds to run all queries: 1.579 seconds
        Number of clients running queries: 200
        Average number of queries per client: 0
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末沪袭,一起剝皮案震驚了整個(gè)濱河市湾宙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌枝恋,老刑警劉巖创倔,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異焚碌,居然都是意外死亡畦攘,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門十电,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)知押,“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了碍岔?”我有些...
    開(kāi)封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)静盅。 經(jīng)常有香客問(wèn)我,道長(zhǎng)寝殴,這世上最難降的妖魔是什么蒿叠? 我笑而不...
    開(kāi)封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮蚣常,結(jié)果婚禮上市咽,老公的妹妹穿的比我還像新娘。我一直安慰自己抵蚊,他們只是感情好施绎,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布溯革。 她就那樣靜靜地躺著,像睡著了一般谷醉。 火紅的嫁衣襯著肌膚如雪致稀。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天孤紧,我揣著相機(jī)與錄音豺裆,去河邊找鬼拒秘。 笑死号显,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的躺酒。 我是一名探鬼主播押蚤,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼羹应!你這毒婦竟也來(lái)了揽碘?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤园匹,失蹤者是張志新(化名)和其女友劉穎雳刺,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體裸违,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡掖桦,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了供汛。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片枪汪。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖怔昨,靈堂內(nèi)的尸體忽然破棺而出雀久,到底是詐尸還是另有隱情,我是刑警寧澤趁舀,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布赖捌,位于F島的核電站,受9級(jí)特大地震影響矮烹,放射性物質(zhì)發(fā)生泄漏越庇。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一擂送、第九天 我趴在偏房一處隱蔽的房頂上張望悦荒。 院中可真熱鬧,春花似錦嘹吨、人聲如沸搬味。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)碰纬。三九已至萍聊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間悦析,已是汗流浹背寿桨。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留强戴,地道東北人亭螟。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像骑歹,于是被迫代替她去往敵國(guó)和親预烙。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容