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!

推薦閱讀: