Docker部署及使用壓測神器sysbench的方法
前言
sysbench是一款開源的多線程性能測試工具,可以執行CPU/內存/線程/IO/數據庫等方面的性能測試
⛳️ 1. sysbench簡介
✨ 1.1 sysbench能做什麼
新業務上線的時候通常需要對數據庫性能進行壓力測試,以確認是否滿足需要,今天簡單介紹下sysbench的用法:
1.sysbench 是一個開源跨平臺的多線程性能測試工具。
2.可以用來進行 CPU、內存、磁盤IO、線程、數據庫的性能測試。
3.目前支持的數據庫是 MySQL、Oracle 和 PostgreSQL。
sysbench 支持以下幾種測試模式:
1、CPU 運算性能
2、磁盤 IO 性能
3、調度程序性能
4、內存分配及傳輸速度
5、POSIX 線程性能–互斥基準測試
6、數據庫性能(OLTP 基準測試)
✨ 1.2 壓力測試的指標
QPS(Queries Per Second)就是每秒的查詢數,對數據庫而言就是數據庫每秒執行的 SQL 數
(含 insert、select、update、delete 等)。
TPS(Transactions Per Second)就是每秒的事務數。
TPS 對於數據庫而言就是數據庫每秒執行的事務數,以 commit 成功次數為準。
並發數:系統同時處理的request數(事務數)
響應時間:一般取平均響應時間
✨ 1.3 常見的壓測工具
Sysbench: MySQL、 PostgreSQL、Oracle
HammerDB: MySQL、 Oracle 、 PostgreSQL、 SQL Server、DB2、TimesTen、MariaDB、Postgres Plus Advanced Server、Greenplum、Redis、Amazon Aurora、
Redshift
Swingbench:Oracle
⛳️ 2.容器安裝
✨ 2.1 服務器申請
docker rm -f sysbench docker run -d --name jemsysbench -h jemsysbench \ -p 3222:22 -p 33389:3389 \ --privileged=true centos:7.6.1810 \ /usr/sbin/init [root@jeames ~]# docker exec -it jemsysbench bash
✨ 2.2 yum安裝
## DNS域名配置 具體區別如下:114.114.114.114是國內移動、電信和聯通通用的DNS,解析成功率相對來說更高, 國內用戶使用的比較多,速度相對快、穩定,是國內用戶上網常用的DNS。 8.8.8.8是GOOGLE公司提供的DNS,該地址是全球通用的,相對來說,更適合國外以及訪問國外網站的用戶使用 [root@jemsysbench /]# more /etc/resolv.conf # Generated by NetworkManager nameserver 114.114.114.114 nameserver 8.8.8.8 [root@jemsysbench /]# yum install sudo [root@jemsysbench /]# curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash [root@jemsysbench /]# sudo yum -y install sysbench [root@jemsysbench /]# sysbench --version sysbench 1.0.20 [root@jemsysbench /]# sysbench --help
⛳️ 3.測試 CPU
對 CPU 的性能測試通常有:1.質數計算;2 圓周率計算;
sysbench 使用的就是通過質數相加的測試。對 CPU 測試直接運行 run 即可。
–20 個線程執行 1 萬次請求,每個請求執行質數相加到 20000
sysbench –threads=20 –events=10000 cpu –cpu-max-prime=20000 run
⛳️ 4.測試磁盤 IO
IO 的測試主要用於測試 IO 的負載性能。主要測試選項為–file-test-mode。還有可以關註的參數包括–file-block-size、–file-io-mode、–file-fsync-
freq 、–file-rw-ratio 。對比兩臺服務器的 io 性能,需要跑相同的線程。
其中–file-test-mode 的選項如下:
seqwr:順序寫入
seqrewr:順序重寫
seqrd:順序讀取
rndrd:隨機讀取
rndwr:隨機寫入
rndrw:混合隨機讀寫
## 生成壓測文件 sysbench fileio --threads=16 --file-total-size=10G --file-test-mode=rndrw prepare 註意:每次會生成128個文件 10737418240 bytes written in 199.82 seconds (51.25 MiB/sec).
壓測性能
sysbench fileio –threads=16 –file-total-size=10G –file-test-mode=rndrw run
清理生成的文件
sysbench fileio –threads=16 –file-total-size=10G –file-test-mode=rndrw cleanup
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)
⛳️ 4.測試內存
測試 8K 順序分配: sysbench --threads=12 --events=10000 memory --memory-block-size=8K --memory-total-size=100G --memory-access-mode=seq run
測試 8K 隨機分配:
sysbench –threads=12 –events=10000 memory –memory-block-size=8K –memory-total-size=100G –memory-access-mode=rnd run
到此這篇關於Docker部署及使用壓測神器sysbench的文章就介紹到這瞭,更多相關Docker部署壓測神器sysbench內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- docker 內存監控與壓測方式
- 一文帶你徹底搞懂Docker中的cgroup的具體使用
- 詳解分析MySQL8.0的內存消耗
- 如何使用docker對容器資源進行限制
- Oracle11g調整SGA方法詳解