欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用sysbench來測試MySQL性能的詳細(xì)教程

 更新時(shí)間:2015年05月08日 10:45:21   投稿:goldensun  
這篇文章主要介紹了使用sysbench來測試MySQL性能的詳細(xì)教程,包括介紹了從sysbench的編譯安裝到初始化測試庫環(huán)境等一系列操作,需要的朋友可以參考下

sysbench是一個(gè)模塊化的、跨平臺(tái)、多線程基準(zhǔn)測試工具,主要用于評估測試各種不同系統(tǒng)參數(shù)下的數(shù)據(jù)庫負(fù)載情況。
目前sysbench代碼托管在launchpad上,項(xiàng)目地址:https://launchpad.net/sysbench(原來的官網(wǎng) http://sysbench.sourceforge.net 已經(jīng)不可用),源碼采用bazaar管理。

一、 下載源碼包
安裝epel包后以便安裝bzr客戶端:

rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

然后就可以開始安裝bzr客戶端了:

yum install bzr

之后,就可以開始用bzr客戶端下載tpcc-mysql源碼了。

cd /tmp
bzr branch lp:sysbench

MySQL中文網(wǎng)便捷下載地址:

http://imysql.com/wp-content/uploads/2014/09/sysbench-0.4.12-1.1.tgz

sysbench支持以下幾種測試模式:

1、CPU運(yùn)算性能
2、磁盤IO性能
3、調(diào)度程序性能
4、內(nèi)存分配及傳輸速度
5、POSIX線程性能
6、數(shù)據(jù)庫性能(OLTP基準(zhǔn)測試)
目前sysbench主要支持 mysql,drizzle,pgsql,oracle 等幾種數(shù)據(jù)庫。

二、編譯安裝
編譯非常簡單,可參考 README 文檔,簡單步驟如下:

cd /tmp/sysbench-0.4.12-1.1
./autogen.sh
./configure --with-mysql-includes=/usr/local/mysql/include --with-mysql-libs=/usr/local/mysql/lib && make

# 如果 make 沒有報(bào)錯(cuò),就會(huì)在 sysbench 目錄下生成二進(jìn)制命令行工具 sysbench
ls -l sysbench
-rwxr-xr-x 1 root root 3293186 Sep 21 16:24 sysbench

三、OLTP測試前準(zhǔn)備
初始化測試庫環(huán)境(總共10個(gè)測試表,每個(gè)表 100000 條記錄,填充隨機(jī)生成的數(shù)據(jù)):

cd /tmp/sysbench-0.4.12-1.1/sysbench
mysqladmin create sbtest

./sysbench --mysql-host=1.2.3.4 --mysql-port=3317 --mysql-user=tpcc --mysql-password=tpcc \
 --test=tests/db/oltp.lua --oltp_tables_count=10 --oltp-table-size=100000 --rand-init=on prepare

關(guān)于這幾個(gè)參數(shù)的解釋:

--test=tests/db/oltp.lua 表示調(diào)用 tests/db/oltp.lua 腳本進(jìn)行 oltp 模式測試
--oltp_tables_count=10 表示會(huì)生成 10 個(gè)測試表
--oltp-table-size=100000 表示每個(gè)測試表填充數(shù)據(jù)量為 100000
--rand-init=on 表示每個(gè)測試表都是用隨機(jī)數(shù)據(jù)來填充的

如果在本機(jī),也可以使用 –mysql-socket 指定 socket 文件來連接。加載測試數(shù)據(jù)時(shí)長視數(shù)據(jù)量而定,若過程比較久需要稍加耐心等待。

真實(shí)測試場景中,數(shù)據(jù)表建議不低于10個(gè),單表數(shù)據(jù)量不低于500萬行,當(dāng)然了,要視服務(wù)器硬件配置而定。如果是配備了SSD或者PCIE SSD這種高IOPS設(shè)備的話,則建議單表數(shù)據(jù)量最少不低于1億行。

四、進(jìn)行OLTP測試

在上面初始化數(shù)據(jù)參數(shù)的基礎(chǔ)上,再增加一些參數(shù),即可開始進(jìn)行測試了:

./sysbench --mysql-host=1.2.3.4. --mysql-port=3306 --mysql-user=tpcc \
--mysql-password=tpcc --test=tests/db/oltp.lua --oltp_tables_count=10 \
--oltp-table-size=10000000 --num-threads=8 --oltp-read-only=off \
--report-interval=10 --rand-type=uniform --max-time=3600 \
 --max-requests=0 --percentile=99 run >> ./log/sysbench_oltpX_8_20140921.log

幾個(gè)選項(xiàng)稍微解釋下

--num-threads=8 表示發(fā)起 8個(gè)并發(fā)連接
--oltp-read-only=off 表示不要進(jìn)行只讀測試,也就是會(huì)采用讀寫混合模式測試
--report-interval=10 表示每10秒輸出一次測試進(jìn)度報(bào)告
--rand-type=uniform 表示隨機(jī)類型為固定模式,其他幾個(gè)可選隨機(jī)模式:uniform(固定),gaussian(高斯),special(特定的),pareto(帕累托)
--max-time=120 表示最大執(zhí)行時(shí)長為 120秒
--max-requests=0 表示總請求數(shù)為 0,因?yàn)樯厦嬉呀?jīng)定義了總執(zhí)行時(shí)長,所以總請求數(shù)可以設(shè)定為 0;也可以只設(shè)定總請求數(shù),不設(shè)定最大執(zhí)行時(shí)長
--percentile=99 表示設(shè)定采樣比例,默認(rèn)是 95%,即丟棄1%的長請求,在剩余的99%里取最大值

即:模擬 對10個(gè)表并發(fā)OLTP測試,每個(gè)表1000萬行記錄,持續(xù)壓測時(shí)間為 1小時(shí)。

真實(shí)測試場景中,建議持續(xù)壓測時(shí)長不小于30分鐘,否則測試數(shù)據(jù)可能不具參考意義。

五、測試結(jié)果解讀:

測試結(jié)果解讀如下:

復(fù)制代碼 代碼如下:
sysbench 0.5:  multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 8
Report intermediate results every 10 second(s)
Random number generator seed is 0 and will be ignored


Threads started!
-- 每10秒鐘報(bào)告一次測試結(jié)果,tps、每秒讀、每秒寫、99%以上的響應(yīng)時(shí)長統(tǒng)計(jì)
[  10s] threads: 8, tps: 1111.51, reads/s: 15568.42, writes/s: 4446.13, response time: 9.95ms (99%)
[  20s] threads: 8, tps: 1121.90, reads/s: 15709.62, writes/s: 4487.80, response time: 9.78ms (99%)
[  30s] threads: 8, tps: 1120.00, reads/s: 15679.10, writes/s: 4480.20, response time: 9.84ms (99%)
[  40s] threads: 8, tps: 1114.20, reads/s: 15599.39, writes/s: 4456.30, response time: 9.90ms (99%)
[  50s] threads: 8, tps: 1114.00, reads/s: 15593.60, writes/s: 4456.70, response time: 9.84ms (99%)
[  60s] threads: 8, tps: 1119.30, reads/s: 15671.60, writes/s: 4476.50, response time: 9.99ms (99%)
OLTP test statistics:
    queries performed:
        read:                            938224    -- 讀總數(shù)
        write:                           268064    -- 寫總數(shù)
        other:                           134032    -- 其他操作總數(shù)(SELECT、INSERT、UPDATE、DELETE之外的操作,例如COMMIT等)
        total:                           1340320    -- 全部總數(shù)
    transactions:                        67016  (1116.83 per sec.)    -- 總事務(wù)數(shù)(每秒事務(wù)數(shù))
    deadlocks:                           0      (0.00 per sec.)    -- 發(fā)生死鎖總數(shù)
    read/write requests:                 1206288 (20103.01 per sec.)    -- 讀寫總數(shù)(每秒讀寫次數(shù))
    other operations:                    134032 (2233.67 per sec.)    -- 其他操作總數(shù)(每秒其他操作次數(shù))

General statistics:    -- 一些統(tǒng)計(jì)結(jié)果
    total time:                          60.0053s    -- 總耗時(shí)
    total number of events:              67016    -- 共發(fā)生多少事務(wù)數(shù)
    total time taken by event execution: 479.8171s    -- 所有事務(wù)耗時(shí)相加(不考慮并行因素)
    response time:    -- 響應(yīng)時(shí)長統(tǒng)計(jì)
         min:                                  4.27ms    -- 最小耗時(shí)
         avg:                                  7.16ms    -- 平均耗時(shí)
         max:                                 13.80ms    -- 最長耗時(shí)
         approx.  99 percentile:               9.88ms    -- 超過99%平均耗時(shí)

Threads fairness:
    events (avg/stddev):           8377.0000/44.33
    execution time (avg/stddev):   59.9771/0.00

相關(guān)文章

  • MySQL插入json問題

    MySQL插入json問題

    今天小編就為大家分享一篇關(guān)于MySQL插入json問題,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • Mysql中Identity 詳細(xì)介紹

    Mysql中Identity 詳細(xì)介紹

    這篇文章主要介紹了Mysql中Identity 的相關(guān)資料,并附示例代碼,需要的朋友可以參考下
    2016-09-09
  • MySQL中因一個(gè)雙引號錯(cuò)位引發(fā)的血案詳析

    MySQL中因一個(gè)雙引號錯(cuò)位引發(fā)的血案詳析

    這篇文章主要給大家介紹了關(guān)于MySQL中因一個(gè)雙引號錯(cuò)位引發(fā)的血案的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • MySQL 排序規(guī)則簡介

    MySQL 排序規(guī)則簡介

    排序規(guī)則是指對指定字符集下不同字符的比較規(guī)則,有明顯的體征體現(xiàn),如兩個(gè)不同的字符集不能有相同的排序規(guī)則兩個(gè)字符集有一個(gè)默認(rèn)的排序規(guī)則有一些常用的命名規(guī)則,接下來通過本文詳細(xì)介紹MySQL 排序規(guī)則,需要的朋友可以參考下
    2023-09-09
  • redis服務(wù)器環(huán)境下mysql實(shí)現(xiàn)lnmp架構(gòu)緩存

    redis服務(wù)器環(huán)境下mysql實(shí)現(xiàn)lnmp架構(gòu)緩存

    這篇文章主要介紹了redis系統(tǒng)環(huán)境下mysql實(shí)現(xiàn)lnmp架構(gòu)緩存,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-07-07
  • MySQL中union和unionall區(qū)別

    MySQL中union和unionall區(qū)別

    本文主要介紹了MySQL中union和unionall區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • 詳解如何避免MYSQL主從延遲帶來的讀寫問題

    詳解如何避免MYSQL主從延遲帶來的讀寫問題

    當(dāng)在主庫上進(jìn)行更新后,有可能數(shù)據(jù)還沒來得及同步到從庫,但是這個(gè)時(shí)候又有讀數(shù)據(jù)的需求,為了能正確讀取出數(shù)據(jù),這個(gè)時(shí)候就只有讀主庫了,所以本文給大家介紹了如何避免MYSQL主從延遲帶來的讀寫問題,需要的朋友可以參考下
    2024-03-03
  • MySQL處理DB讀寫分離數(shù)據(jù)不一致問題的方案

    MySQL處理DB讀寫分離數(shù)據(jù)不一致問題的方案

    在互聯(lián)網(wǎng)中大型項(xiàng)目中,讀寫分離應(yīng)該是我們小伙伴經(jīng)常聽說的,這個(gè)主要解決大流量請求時(shí),提高系統(tǒng)的吞吐量,本文給大家介紹了MySQL處理DB讀寫分離數(shù)據(jù)不一致問題的方案,需要的朋友可以參考下
    2024-02-02
  • 淺析Mysql和Oracle分頁的區(qū)別

    淺析Mysql和Oracle分頁的區(qū)別

    Mysql使用limit分頁而Oracle使用rownum分頁,下面通過本文給大家介紹Oracle和Mysql分頁的區(qū)別,需要的的朋友參考下吧
    2022-12-12
  • MySQL索引命中與失效代碼實(shí)現(xiàn)

    MySQL索引命中與失效代碼實(shí)現(xiàn)

    這篇文章主要介紹了MySQL索引命中與失效代碼實(shí)現(xiàn),文章內(nèi)容詳細(xì),簡單易懂,需要的朋友可以參考下
    2023-01-01

最新評論