亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Sysbench對Mysql進行基準測試過程解析

 更新時間:2020年11月27日 16:23:50   作者:Huny  
這篇文章主要介紹了Sysbench對Mysql進行基準測試過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

前言

1.基準測試(benchmarking)是性能測試的一種類型,強調(diào)的是對一類測試對象的某些性能指標進行定量的、可復現(xiàn)、可對比的測試。

進一步來理解,基準測試是在某個時候通過基準測試建立一個已知的性能水平(稱為基準線),當系統(tǒng)的軟硬件環(huán)境發(fā)生變化之后再進行一次基準測試以確定那些變化對性能的影響,這也是基準測試最常見的用途。其他用途包括測定某種負載水平下的性能極限、管理系統(tǒng)或環(huán)境的變化、發(fā)現(xiàn)可能導致性能問題的條件等等。

2.基準測試的作用:

對于大多數(shù)Web應用而言,系統(tǒng)的瓶頸往往很容易發(fā)生在數(shù)據(jù)庫端,原因很簡單:Web應用中的其他因素,例如網(wǎng)絡帶寬、負載均衡節(jié)點、應用服務器(包括CPU、內(nèi)存、硬盤燈、連接數(shù)等)、緩存,都很容易通過水平的擴展(俗稱加機器)來實現(xiàn)性能的提高。而對于數(shù)據(jù)庫如MySQL,由于數(shù)據(jù)一致性的要求,無法通過增加機器來分散向數(shù)據(jù)庫寫數(shù)據(jù)帶來的壓力;雖然可以通過前置緩存(Redis等)、讀寫分離、分庫分表來減輕壓力,但是與系統(tǒng)其它組件的水平擴展相比,受到了太多的限制。
而對數(shù)據(jù)庫的基準測試的作用,就是分析在當前的配置下(包括硬件配置、OS、數(shù)據(jù)庫設置等),數(shù)據(jù)庫的性能表現(xiàn),從而找出數(shù)據(jù)庫的性能閾值,并根據(jù)實際系統(tǒng)的要求調(diào)整配置。除此之外,對數(shù)據(jù)庫服務器進行基準測試,也通常用于觀察對比數(shù)據(jù)庫結(jié)構(gòu)修改之前以及修改之后,其性能會受到什么樣的影響。

3.基準測試與壓力測試區(qū)別:

很多時候,基準測試和壓力測試在實際使用的過程中,很容易被弄混淆。基準測試可以理解為針對系統(tǒng)的一種壓力測試。但基準測試不關(guān)心業(yè)務邏輯,更加簡單、直接、易于測試,數(shù)據(jù)可以由工具生成,不要求真實;而壓力測試一般考慮業(yè)務邏輯(如購物車業(yè)務),要求真實的數(shù)據(jù)。

4.基準測試工具:

SysBench是一個模塊化的、跨平臺、多線程基準測試工具,主要用于評估測試各種不同系統(tǒng)參數(shù)下的數(shù)據(jù)庫負載情況。它主要包括以下幾種方式的測試:

1、cpu性能

2、磁盤io性能

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

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

5、POSIX線程性能

6、數(shù)據(jù)庫性能(OLTP基準測試)

目前sysbench主要支持 MySQL,pgsql,oracle 這3種數(shù)據(jù)庫。

安裝

yum -y install sysbench

sysbench --help ##檢查安裝是否成功

友情提示:安裝出現(xiàn)依賴包缺少可以看這里

數(shù)據(jù)準備

準備

create database sysbench_test;

show databases; #檢查數(shù)據(jù)庫

quit #退出


2. 開始

find / -name oltp*.lua #查找sysbench自帶的數(shù)據(jù)寫入腳本的路徑,后面執(zhí)行命令需要用到

sysbench /usr/share/sysbench/oltp_read_write.lua --tables=5 --table_size=100 --mysql-user=root --mysql-password=xxx --mysql-host=192.168.0.103 --mysql-port=3306 --mysql-db=sysbench_test prepare
#/usr/share/sysbench/oltp_read_write.lua :上面查詢到的sysbench自帶讀寫腳本的路徑
#--tables:指定生成表的數(shù)量,此處設置了5張表,表明生成5張測試表,讀者可根據(jù)實際需要,調(diào)整此值。
#--table_size:指定生成表中生成的數(shù)據(jù)量,上述例子,表明每張表生成100條測試數(shù)據(jù),實際可以根據(jù)需要調(diào)整引值,比如調(diào)整為:1000000,即代表生成一百萬條測試數(shù)據(jù)。
#--mysql-db: 連接的測試數(shù)據(jù)庫名稱,此處使用上面創(chuàng)建的數(shù)據(jù)庫進行測試。
#--mysql-user: 連接的數(shù)據(jù)庫的用戶名
#--mysql-password: 連接的數(shù)據(jù)庫的密碼
#--mysql-port: 連接的數(shù)據(jù)庫開發(fā)的端口

執(zhí)行提示錯誤

原因:

導入的數(shù)據(jù)超過數(shù)據(jù)庫默認的值

解決:

需要到安裝mysql的服務器上修改數(shù)據(jù)配置

vim /etc/my.cnf

修改max_allowed_packet的值,如果沒有則在最后面添加一行

再次執(zhí)行成功,mysql客服端檢查一下數(shù)據(jù)

執(zhí)行測試

sysbench /usr/share/sysbench/oltp_read_write.lua --mysql-user=root --mysql-password=xxx --mysql-host=192.168.0.103 --mysql-port=3306 --mysql-db=sysbench_test --tables=5 --table_size=100 --threads=10 --time=30 --report-interval=3 run
#--threads:表示線程數(shù)
#--time:表示執(zhí)行時間
#--report-interval:表示間隔多少秒輸出測試信息
# run :表示運行,其他參數(shù)信息和上面一致就不在講解了

上述命令,表明使用了10個并發(fā)線程數(shù),執(zhí)行時間為30秒,每3秒輸出一次測試信息

其中,對于我們比較重要的信息包括:

  • queries:查詢總數(shù)及qps
  • transactions:事務總數(shù)及tps
  • Latency-95th percentile:前95%的請求的響應時間。

清理數(shù)據(jù)

測試完成后別忘了最后的收尾工作,大量的測試數(shù)據(jù)存在數(shù)據(jù)庫還是有影響的.

sysbench /usr/share/sysbench/oltp_read_write.lua --tables=5 --table_size=100 --mysql-user=root --mysql-password=xxx --mysql-host=192.168.0.103 --mysql-port=3306 --mysql-db=sysbench_test cleanup
#這里的參數(shù)按之前插入數(shù)據(jù)的參數(shù)填寫,確保全部清除干凈


檢查數(shù)據(jù)

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論