91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Mysql 性能測試工具 sysbench的安裝和使用

發布時間:2020-07-07 18:44:42 來源:網絡 閱讀:22626 作者:hsbxxl 欄目:MySQL數據庫

     工作上需要用到AWS和Azure的Mysql服務,需要測試比較一下兩個云服務的性能。于是開始百度 + google,查找性能測試工具。最終決定用sysbench。

sysbench介紹

              sysbench是一款開源的多線程性能測試工具,可以執行CPU/內存/線程/IO/數據庫等方面的性能測試。

數據庫目前支持MySQL/Oracle/PostgreSQL。本文只是簡單演示一下幾種測試的用法,后續準備利用sysbench來對MySQL進行一系列的測試。具體的一些參數設置,需要根據不同的測試要求來進行調整。

安裝

1. 下載安裝包,地址 https://github.com/akopytov/sysbench

#wget https://github.com/akopytov/sysbench/archive/1.0.zip -O "sysbench-1.0.zip"
#unzip sysbench-1.0.zip
#cd sysbench-1.0

2. 安裝依賴庫

#yum install automake libtool -y

3. 開始安裝

#./autogen.sh
#./configure
#ERROR: cannot find MySQL libraries. If you want to compile with MySQL support 沒找到mysql庫 需要用參數指定下 --with-mysql-includes和--with-mysql-libs
#./configure --with-mysql-includes=/alidata/server/mysql5.7/include/ --with-mysql-libs=/alidata/server/mysql5.7/lib/

4. 由于是yum安裝的mysql,我也不知道路徑在哪里。如何查找mysql的安裝路徑?

安裝mysql-devel,才能使用mysql_config

#yum install -y mysql-devel
#mysql_config -help
Usage: /usr/bin/mysql_config-64 [OPTIONS]
Options:
--cflags         [-I/usr/include/mysql -g  -fstack-protector  -m64 -fPIC  -g -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing]
--cxxflags       [-I/usr/include/mysql -g  -fexceptions -fstack-protector  -m64 -fPIC  -g -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing]
--include        [-I/usr/include/mysql]
--libs           [-L/usr/lib64/mysql -lmysqlclient -lpthread -lm -lrt -ldl]
--libs_r         [-L/usr/lib64/mysql -lmysqlclient -lpthread -lm -lrt -ldl]
--plugindir      [/usr/lib64/mysql/plugin]
--socket         [/var/lib/mysql/mysql.sock]
--port           [0]
--version        [5.6.39]
--libmysqld-libs [-L/usr/lib64/mysql -lmysqld -lpthread -lm -lrt -lcrypt -ldl -laio -lnuma]
--variable=VAR   VAR is one of:
pkgincludedir [/usr/include/mysql]
pkglibdir     [/usr/lib64/mysql]
plugindir     [/usr/lib64/mysql/plugin]

5. 再次執行config,成功

# ./configure --with-mysql-includes=/usr/include/mysql --with-mysql-libs=/usr/lib64/mysql
#make

6. 執行下命令:

#sysbench --help
#sysbench: error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such file or directory
#問題原因:sysbench無法找到mysql的庫文件,可能是環境變量LD_LIBRARY_PATH沒有設置,設置后即可解決該問題:
#export LD_LIBRARY_PATH=/alidata/server/mysql5.7/lib/lib
#sysbench --version
sysbench 1.0.12 (using bundled LuaJIT 2.1.0-beta2)

準備測試表和數據

1. 創建測試數據庫:

mysql>create database dbtest;

2. 測試命令

#/home/mysql/sysbench-1.0/src/sysbench --test=/home/mysql/sysbench-1.0/tests/include/oltp_legacy/oltp.lua \
--mysql-host=mysql-host-ip --mysql-port=3306 --mysql-user=envision --mysql-password=password \
--mysql-db=dbtest --oltp-tables-count=10 --oltp-table-size=500000 \
--report-interval=10 --rand-init=on --max-requests=0 \
--oltp-read-only=off --max-time=120 --num-threads=30 \
[ prepare | run | cleanup ]

##三選一

prepare 準備;

run 運行;

cleanup  清理數據。

注意最后一行,一項測試開始前需要用prepare來準備好表和數據,run執行真正的壓測,cleanup用來清除數據和表。


3. 執行sysbench命令參數解釋:

#-test=/root/sysbench-1.0/tests/include/oltp_legacy/oltp.lua 表示調用 oltp.lua 腳本進行 oltp 模式測試
#--oltp_tables_count=10 表示會生成 10 個測試表
#--oltp-table-size=500000 表示每個測試表填充數據量為 500000 
#--rand-init=on 表示每個測試表都是用隨機數據來填充的
#-num-threads=8 表示發起 8個并發連接
#--oltp-read-only=off 表示不要進行只讀測試,也就是會采用讀寫混合模式測試#--report-interval=10 表示每10秒輸出一次測試進度報告
#--rand-type=uniform 表示隨機類型為固定模式,其他幾個可選隨機模式:uniform(固定),gaussian(高斯),special(特定的),pareto(帕累托)
#--max-time=120 表示最大執行時長為 120秒#--max-requests=0 表示總請求數為 0,因為上面已經定義了總執行時長,所以總請求數可以設定為 0;也可以只設定總請求數,不設定最大執行時長
#--percentile=99 表示設定采樣比例,默認是 95%,即丟棄1%的長請求,在剩余的99%里取最大值

4. 測試準備: 30個并發連接,10張表 每個表填充50W條數據 最大請求時間120s

#/home/mysql/sysbench-1.0/src/sysbench --test=/home/mysql/sysbench-1.0/tests/include/oltp_legacy/oltp.lua \
--mysql-host=mysql-host-ip --mysql-port=3306 --mysql-user=envision --mysql-password=password \
--mysql-db=dbtest --oltp-tables-count=10 --oltp-table-size=500000 \
--report-interval=10 --rand-init=on --max-requests=0 \
--oltp-read-only=off --max-time=120 --num-threads=30 \
prepare
Creating table 'sbtest1'...
Inserting 100000 records into 'sbtest1'
Creating secondary indexes on 'sbtest1'...
Creating table 'sbtest2'...
Inserting 100000 records into 'sbtest2'
Creating secondary indexes on 'sbtest2'...
......
Inserting 100000 records into 'sbtest9'
Creating secondary indexes on 'sbtest9'...
Creating table 'sbtest10'...
Inserting 100000 records into 'sbtest10'
Creating secondary indexes on 'sbtest10'...

5. 執行sysbench測試,并輸出測試報告

#/home/mysql/sysbench-1.0/src/sysbench --test=/home/mysql/sysbench-1.0/tests/include/oltp_legacy/oltp.lua \
--mysql-host=mysql-host-ip --mysql-port=3306 --mysql-user=envision --mysql-password=password \
--mysql-db=dbtest --oltp-tables-count=10 --oltp-table-size=500000 \
--report-interval=10 --rand-init=on --max-requests=0 \
--oltp-read-only=off --max-time=120 --num-threads=128 \
run > /tmp/liang/mysql-report.txt

6. 查看測試報告

30個threads

sysbench 1.0.12 (using bundled LuaJIT 2.1.0-beta2)
Running the test with following options:
Number of threads: 30
Report intermediate results every 10 second(s)
Initializing random number generator from current time
Initializing worker threads...
Threads started!
[ 10s ] thds: 30 tps: 188.63 qps: 3795.16 (r/w/o: 2659.89/755.31/379.96) lat (ms,95%): 223.34 err/s: 0.00 reconn/s: 0.00
[ 20s ] thds: 30 tps: 177.80 qps: 3563.97 (r/w/o: 2496.95/711.31/355.71) lat (ms,95%): 248.83 err/s: 0.00 reconn/s: 0.00
[ 30s ] thds: 30 tps: 177.20 qps: 3542.62 (r/w/o: 2479.82/708.30/354.50) lat (ms,95%): 235.74 err/s: 0.00 reconn/s: 0.00
[ 40s ] thds: 30 tps: 189.60 qps: 3797.38 (r/w/o: 2658.99/759.20/379.20) lat (ms,95%): 227.40 err/s: 0.00 reconn/s: 0.00
[ 50s ] thds: 30 tps: 190.40 qps: 3798.09 (r/w/o: 2655.29/762.20/380.60) lat (ms,95%): 211.60 err/s: 0.00 reconn/s: 0.00
[ 60s ] thds: 30 tps: 179.70 qps: 3598.40 (r/w/o: 2520.50/718.40/359.50) lat (ms,95%): 235.74 err/s: 0.00 reconn/s: 0.00
[ 70s ] thds: 30 tps: 187.30 qps: 3740.91 (r/w/o: 2617.61/748.50/374.80) lat (ms,95%): 227.40 err/s: 0.00 reconn/s: 0.00
[ 80s ] thds: 30 tps: 187.40 qps: 3755.29 (r/w/o: 2630.19/750.40/374.70) lat (ms,95%): 211.60 err/s: 0.00 reconn/s: 0.00
[ 90s ] thds: 30 tps: 188.10 qps: 3762.11 (r/w/o: 2632.80/753.10/376.20) lat (ms,95%): 211.60 err/s: 0.00 reconn/s: 0.00
[ 100s ] thds: 30 tps: 183.70 qps: 3676.35 (r/w/o: 2575.16/733.69/367.49) lat (ms,95%): 227.40 err/s: 0.00 reconn/s: 0.00
[ 110s ] thds: 30 tps: 190.80 qps: 3816.33 (r/w/o: 2671.42/763.41/381.50) lat (ms,95%): 211.60 err/s: 0.00 reconn/s: 0.00
[ 120s ] thds: 30 tps: 195.49 qps: 3907.36 (r/w/o: 2733.40/783.17/390.79) lat (ms,95%): 204.11 err/s: 0.00 reconn/s: 0.00
SQL statistics:
    queries performed:
        read:                            313488 --讀總數
        write:                           89568  --寫總數
        other:                           44784 --其他操作(CURD之外的操作,例如COMMIT)
        total:                           447840 --全部總數
    transactions:                        22392  (186.27 per sec.) --總事務數(每秒事務數)
    queries:                             447840 (3725.43 per sec.) --總數(每秒總數)
    ignored errors:                      0      (0.00 per sec.)  --總忽略錯誤總數(每秒忽略錯誤次數)
    reconnects:                          0      (0.00 per sec.) --重連總數(每秒重連次數)
General statistics:
    total time:                          120.2098s --總耗時
    total number of events:              22392 --共發生多少事務數
Latency (ms):
         min:                                  105.91 --最小耗時
         avg:                                  160.86 --平均耗時
         max:                                  850.77 --最長耗時
         95th percentile:                      223.34 --超過95%平均耗時
         sum:                              3601892.56
Threads fairness:
    events (avg/stddev):           746.4000/4.95 --總處理事件數/標準偏差
    execution time (avg/stddev):   120.0631/0.05--總執行時間/標準偏差


經過測試,AWS和Azure的mysql性能相差無幾。sysbench的工具,使用起來也比較簡單直觀。適合對Mysql的簡單性能測試。后續有時間,再研究一下sysbench對CPU,IO等性能測試的情況和使用感受。


參考文檔:

http://blog.csdn.net/oahz4699092zhao/article/details/53332105

http://www.jb51.net/article/93924.htm

https://nsimple.top/archives/mysql-sysbench-tool.html


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

正蓝旗| 永吉县| 上栗县| 孝义市| 贵溪市| 浦东新区| 左云县| 温宿县| 三台县| 仙桃市| 寿阳县| 昔阳县| 华容县| 贡觉县| 邯郸市| 南召县| 梧州市| 黄大仙区| 阜宁县| 永嘉县| 泰安市| 靖西县| 息烽县| 阳春市| 奉节县| 北流市| 威海市| 抚远县| 策勒县| 恩平市| 临泉县| 通辽市| 河源市| 北安市| 綦江县| 安远县| 宽城| 金门县| 伊宁市| 铅山县| 阜康市|