Sysbench 效能壓測及MySQL效能壓測
sysbench簡介
sysbench是一款開源的多執行緒效能測試工具,可以執行CPU/記憶體/執行緒/IO/資料庫等方面的效能測試。
支援MySQL/Oracle/PostgreSQL。
sysbench支援以下幾種測試模式:
1、CPU運算效能
2、磁碟IO效能
3、排程程式效能
4、記憶體分配及傳輸速度
5、POSIX執行緒效能
6、資料庫效能(OLTP基準測試)
-
下載地址及安裝
下載地址:https://github.com/akopytov/sysbench
安裝
./autogen.sh
./configure
如果出現:configure: error: mysql_config executable not found
需要安裝:mariadb-devel (yum install mariadb-devel 安裝mysql_config)
make && make install 完成安裝。
PS:此外還要安裝mariadb-server包,yum install mariadb-server。 -
CPU測試
對CPU的效能測試通常有:1.質數計算;2圓周率計算;sysbench使用的就是通過質數相加的測試。對CPU測試直接執行run即可。
sysbench --threads=20 --events=10000 --debug=on --test=cpu --cpu-max-prime=20000 run
20個執行緒執行1萬條請求,每個請求執行質數相加到20000 -
記憶體測試
測試8K順序分配:
sysbench --threads=12 --events=10000 --test=memory --memory-block-size=8K --memory-total-size=100G --memory-access-mode=seq run
測試8K隨機分配。
sysbench --threads=12 --events=10000 --test=memory --memory-block-size=8K --memory-total-size=100G --memory-access-mode=rnd run -
檔案io測試
IO的測試主要用於測試IO的負載效能。主要測試選項為--file-test-mode。還有可以關注的引數包括--file-block-size、--file-io-mode、--file-fsync-freq 、--file-rw-ratio,具體引數含義請見引數解釋章節。
sysbench --threads=12 --events=10000 fileio --file-total-size=3G --file-test-mode=rndrw prepare
sysbench --threads=12 --events=10000 fileio --file-total-size=3G --file-test-mode=rndrw run
sysbench --threads=12 --events=10000 fileio --file-total-size=3G --file-test-mode=rndrw cleanup
對比兩臺伺服器的io效能,需要跑相同的執行緒 -
鎖測試
互斥鎖測試模擬所有執行緒在同一時刻併發執行。
sysbench --threads=12 mutex --mutex-num=1024 --mutex-locks=10000 --mutex-loops=10000 run -
執行緒測試
sysbench threads --num-threads=64 --thread-yields=100 --thread-locks=2 run
-
OLTP測試
oltp是針對資料庫的基準測試,例如每次對資料庫進行優化後執行基準測試來測試不同的配置的tps。sysbench 0.5之後通過一系列LUA指令碼來替換之前的oltp,來模擬更接近真實的基準測試環境。這些測試指令碼包含:insert.lua、oltp.lua、parallel_prepare.lua、select_random_points.lua、update_index.lua、delete.lua oltp_simple.lua、select.lua、select_random_ranges.lua、update_non_index.lua
預置條件:
a)建立資料庫:
mysqladmin create sbtest -uroot –p
或者
SQL>create database sbtest
b)增加許可權:
grant usage on . to 'sbtest'@'%' identified by password '*2AFD99E79E4AA23DE141540F4179F64FFB3AC521';
其中密碼通過如下命令獲取:
select password('sbtest');
+-------------------------------------------+
| password('sbtest') |
+-------------------------------------------+
| 2AFD99E79E4AA23DE141540F4179F64FFB3AC521 |
+-------------------------------------------+
1 row in set (0.00 sec)
c)增加許可權:
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER,INDEX ONsbtest
.TO 'sbtest'@"%";
grant all privileges on . to 'sbtest'@'%';
flush privileges;
或者簡單粗暴:
create user 'sbtest'@'127.0.0.1' identified by 'sbtest';
grant all privileges on . to
flush privileges;
e)OLTP測試:
準備階段:
sysbench --test= /usr/local/share/sysbench/tests/include/oltp_legacy/oltp.lua --oltp-table-size=10000 --mysql-table-engine=innodb --oltp-tables-count=10 --mysql-user=sbtest --mysql-password=sbtest --mysql-port=3306 --mysql-host=127.0.0.1 --max-requests=0 --time=10 --report-interval=1 --threads=10 --oltp-point-selects=1 --oltp-simple-ranges=0 --oltp_sum_ranges=0 --oltp_order_ranges=0 --oltp_distinct_ranges=0 --oltp-read-only=on prepare
測試階段:
命令如下:
sysbench --test= /usr/local/share/sysbench/tests/include/oltp_legacy/oltp.lua --oltp-table-size=10000 --mysql-table-engine=innodb --oltp-tables-count=10 --mysql-user=sbtest --mysql-password=sbtest --mysql-port=3306 --mysql-host=127.0.0.1 --max-requests=0 --time=10 --report-interval=1 --threads=10 --oltp-point-selects=1 --oltp-simple-ranges=0 --oltp_sum_ranges=0 --oltp_order_ranges=0 --oltp_distinct_ranges=0 --oltp-read-only=on run
清理階段:
sysbench --test= /usr/local/share/sysbench/tests/include/oltp_legacy/oltp.lua --oltp-table-size=10000 --mysql-table-engine=innodb --oltp-tables-count=10 --mysql-user=sbtest --mysql-password=sbtest --mysql-port=3306 --mysql-host=127.0.0.1 --max-requests=0 --time=10 --report-interval=1 --threads=10 --oltp-point-selects=1 --oltp-simple-ranges=0 --oltp_sum_ranges=0 --oltp_order_ranges=0 --oltp_distinct_ranges=0 --oltp-read-only=on cleanup
最後刪除資料庫
SQL>drop database sbtest; -
引數解釋
通過命令sysbench –help可以瞭解各引數的具體解釋
--test=tests/db/oltp.lua 表示呼叫 tests/db/oltp.lua 指令碼進行 oltp 模式測試
--oltp_tables_count=10 表示會生成 10 個測試表
--oltp-table-size=100000 表示每個測試表填充資料量為 100000
--mysql-engine-trx=STRING指定不同的儲存引擎測試。
--oltp-test-mode=STRING測試型別:simple(簡單select測試),complex(事務測試),nontrx(非事務測試),sp(儲存過程) ;預設complex
--oltp-sp-name=STRING指定儲存過程進行語句測試
--oltp-table-size=N指定表的記錄大小,預設[10000]
--oltp-num-tables=N指定測試表的數量,預設1
--rand-init=on 表示每個測試表都是用隨機資料來填充的
--file-num=N建立測試檔案的數量,預設128個
--file-block-size=N block size大小,預設16K
--file-total-size=SIZE所有檔案的總大小,預設2G
--file-test-mode=STRING測試型別 {seqwr(順序寫), seqrewr(順序讀寫), seqrd(順序讀), rndrd(隨機讀), rndwr(隨機寫), rndrw(隨機讀寫)} --file-io-mode=STRING I/O模式,需要系統支援預設sync[sync(同步IO),async(非同步IO),mmap()]
--file-async-backlog=N每個執行緒的非同步操作佇列數,預設128個,需要--file-io-mode=async;
--file-extra-flags=STRING additional flags to use on opening files {sync,dsync,direct} []
--file-fsync-freq=N當請求數達到多少時執行fsync()重新整理,預設100,0代表過程中不執行fsync()
--file-fsync-all=[on|off] 執行每一個寫操作後執行fsync()重新整理操作,預設關閉off --file-fsync-end=[on|off] 測試結束執行fsync()操作,預設開啟on --file-fsync-mode=STRING 同步重新整理方法,預設fsync {fsync, fdatasync} --file-merged-requests=N合併指定數量的IO請求,0代表不合並,預設0 --file-rw-ratio=N 讀寫比例,預設1.5/1 -
mysql基本語法
#啟動資料庫
systemctl start mariadb
#連結
mysql -h 主機地址 -u 使用者名稱 -p 使用者密碼
#顯示資料庫
show databases;
#判斷是否存在資料庫wpj1105,有的話先刪除
drop database if exists testdb;
#建立資料庫
create database testdb;
#刪除資料庫
drop database testdb;
#使用該資料庫
use testdb;
#顯示資料庫中的表
show tables;
檢視MySQL使用者許可權:
show grants for 你的使用者
如:
show grants for [email protected]'localhost';
show grants for 'test'@'%';
回收許可權
revoke ALL PRIVILEGES ON . from 'test'@'%';
相關推薦
Sysbench 效能壓測及MySQL效能壓測
sysbench簡介 sysbench是一款開源的多執行緒效能測試工具,可以執行CPU/記憶體/執行緒/IO/資料庫等方面的效能測試。 支援MySQL/Oracle/PostgreSQL。 sysbench支援以下幾種測試模式: 1、CPU運算效能 2、磁碟I
Cephfs & Ceph RBD 在k8s中的適用場景討論及資料庫效能壓測
前言 測試發現cephfs的小檔案讀寫效能一般,且寫入延遲偏高,效能不甚滿意,但是滿足於日常應用環境的讀寫是沒有問題的,但是在面對資料庫的應用場景,是否能滿足效能要求呢?本篇主要結合kubernetes,針對資料庫應用場景,對cephfs 和 ceph rbd
sysbench性能壓測以及mysql性能壓測
sysbench性能壓測以及mysql性能壓測 mysql基準測試 mysql性能測試 sysbench性能壓測以及mysql性能壓測一、Sysbench是一個模塊化的、跨平臺、多線程基準測試工具,主要用於各種不同系統的參數下的數據庫負載情況。 主要測試方式cpu性能磁盤i
Jmeter壓測檢視伺服器效能
基本檢視服務端效能常用命令: cup各核使用率,記憶體使用情況: top 按1; 服務端網路頻寬檢視:sudo iftop -n 1.登入https://jmeter-plugins.org/wiki/PerfMonAgent/下載ServerAgent-2.2.1.zip,解壓
mycat 用Jconsole監控mycat壓測的各種效能曲線
03 18:22:08 finished records :5312400 failed:0 speed:970.3878628816595
sysbench對MySQL的壓測,使用sysbench壓測磁碟io
QPS - query per secondTPS - transaction per second 不是特別關注,每個業務場景中事務標準是不一樣的 Ⅰ、sysbench測試框架 Ⅱ、常用測試指令碼 [[email protected]_42_63_centos lua]# pwd /us
sysbench對MySQL的壓測,使用sysbench壓測磁盤io
onf possible inf bubuko 最新版本 number 現在 nbsp tis QPS - query per secondTPS - transaction per second 不是特別關註,每個業務場景中事務標準是不一樣的 Ⅰ、sysbench測試框架
JMeter壓測監控伺服器效能
效能測試時,我們的關注點有兩部分1 服務本身:併發,響應時間,TPS等2 伺服器的資源使用情況:cpu,memory,NT I/O,Disk I/O等伺服器資源的監控具體操作步驟如下(主要記錄我的實踐過程):說明:我的jmeter版本是3.1一 、下載外掛1.訪問網址http
jmeter壓測、以及效能分析(需要登入的系統)---有圖有真相、超詳細
每個專案開發完成必然要經過各種測試,也會進行壓測一下,判斷開發完成的系統的可支撐併發量,我選用目前常用的jmeter, 下載完成解壓,雙擊jmeter.bat即可啟動(或者直接命令號啟動),如圖: 啟動後, 語言版本選擇: 新增執行緒組: 配置h
百度壓測,分析效能拐點
概述 空閒之餘用jmeter對百度進行了一次壓測,目的是分析一下效能的拐點,驗證一下理論知識 操作 第一次實驗:200併發 併發200,不限迭代次數,同時在請求下面加RPS定時器。 目的是在200執行緒下,將RPS逐步增加到1200/S,並持續執行一段時間。 線上
MySQL效能管理及架構設計(一):什麼影響了資料庫查詢速度、什麼影響了MySQL效能
一、什麼影響了資料庫查詢速度 1.1 影響資料庫查詢速度的四個因素 1.2 風險分析 QPS: Queries Per Second意思是“每秒查詢率”,是一臺伺服器每秒能夠相應的查詢次數,是對一個特定的查詢伺服
MySQL效能管理及架構設計(三):SQL查詢優化、分庫分表 - 完結篇
一、SQL查詢優化(重要) 1.1 獲取有效能問題SQL的三種方式 通過使用者反饋獲取存在效能問題的SQL; 通過慢查日誌獲取存在效能問題的SQL; 實時獲取存在效能問題的SQL; 1.1.2 慢查日誌分析工具 相關配置引數: slow
TVS管與壓敏電阻的效能比較
為滿足消費者日益增強的功能需求,如今市場中的電子產品也好,各類電力裝置也罷,其功能性也是日益增強,造福於消費者的同時,其自身面臨的威脅也在放大。一般功能性越強大的產品,其內部的晶片整合度也就越高,一旦晶片受損所造成的損失也是極大的。因此,如今市場中的各類產品的防護等級都是偏高的,而這類防護方案都不可
Qt連線MySQL程式設計及資料庫效能調優(一)
之前整理過一篇Qt下資料庫程式設計基礎 :最近在進行單元測試,所以把遇到的一些問題整理出來,主要是關於資料庫的 1.遠端連線資料庫 連線語句是: mysql -h 192.168.xx.xx(IP地址) -P 3306(埠) -u remoteuser(登入使用
mysql效能優化及 Comparison method violates its general contract
專案上巢狀結果集查詢,查詢的列表再根據每個id進行查詢計算,巢狀的sql如下: SELECT SUM(IFNULL(t.out_rate,0)) totalOutRate, SUM(IF(IFNULL(t.pre_power,0)-IFNULL(t.power,0)<0,0,IFNULL(t.pr
MySQL效能管理及架構設計:SQL查詢優化、分庫分表
1.1 獲取有效能問題SQL的三種方式 通過使用者反饋獲取存在效能問題的SQL; 通過慢查日誌獲取存在效能問題的SQL; 實時獲取存在效能問題的SQL; 1.1.2 慢查日誌分析工具 相關配置引數: slow_query_log # 啟動停止記錄
千萬級MySQL資料庫建立索引的事項及提高效能的手段
1.對查詢進行優化,應儘量避免全表掃描,首先應考慮在 where 及 order by 涉及的列上建立索引。 2.應儘量避免在 where 子句中對欄位進行 null 值判斷,否則將導致引擎放棄使用索引而進行全表掃描,如:select id from t where nu
MySQL mysqlslap壓測
介紹 mysqlslap是mysql自帶的一個性能壓測工具;mysqlslap用於和其它的一些效能壓測工具一樣可以自己造資料進行壓測。mysqlslap的報告比較簡單主要體現在執行的時間方面,沒有sysbench那樣的tps、qps等更詳細的包括。 引數 --auto-generat
MySql效能測試工具-sysbench
雖然mysql預設的有mysqlslap這個效能測試工具,但和sysbench比較來說,還遜色不少。 shell> wget https://github.com/akopytov/sysbench/archive/1.0.zip
MySQL效能管理及架構設計(二):資料庫結構優化、高可用架構設計、資料庫索引優化
一、資料庫結構優化(非常重要)1.1 資料庫結構優化目的 1、減少資料冗餘:(資料冗餘是指在資料庫中存在相同的資料,或者某些資料可以由其他資料計算得到),注意,儘量減少不代表完全避免資料冗餘; 2、儘量避免資料維護中出現更新,插入和刪除異常: