Docker部署及使用壓測神器sysbench的方法
前言
sysbench是一款開源的多線程性能測試工具,可以執(zhí)行CPU/內(nèi)存/線程/IO/數(shù)據(jù)庫等方面的性能測試
?? 1. sysbench簡介
? 1.1 sysbench能做什么
新業(yè)務(wù)上線的時(shí)候通常需要對數(shù)據(jù)庫性能進(jìn)行壓力測試,以確認(rèn)是否滿足需要,今天簡單介紹下sysbench的用法:
1.sysbench 是一個(gè)開源跨平臺的多線程性能測試工具。
2.可以用來進(jìn)行 CPU、內(nèi)存、磁盤IO、線程、數(shù)據(jù)庫的性能測試。
3.目前支持的數(shù)據(jù)庫是 MySQL、Oracle 和 PostgreSQL。
sysbench 支持以下幾種測試模式:
1、CPU 運(yùn)算性能
2、磁盤 IO 性能
3、調(diào)度程序性能
4、內(nèi)存分配及傳輸速度
5、POSIX 線程性能–互斥基準(zhǔn)測試
6、數(shù)據(jù)庫性能(OLTP 基準(zhǔn)測試)

? 1.2 壓力測試的指標(biāo)
QPS(Queries Per Second)就是每秒的查詢數(shù),對數(shù)據(jù)庫而言就是數(shù)據(jù)庫每秒執(zhí)行的 SQL 數(shù)
(含 insert、select、update、delete 等)。
TPS(Transactions Per Second)就是每秒的事務(wù)數(shù)。
TPS 對于數(shù)據(jù)庫而言就是數(shù)據(jù)庫每秒執(zhí)行的事務(wù)數(shù),以 commit 成功次數(shù)為準(zhǔn)。
并發(fā)數(shù):系統(tǒng)同時(shí)處理的request數(shù)(事務(wù)數(shù))
響應(yīng)時(shí)間:一般取平均響應(yīng)時(shí)間
? 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 服務(wù)器申請
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域名配置 具體區(qū)別如下:114.114.114.114是國內(nèi)移動、電信和聯(lián)通通用的DNS,解析成功率相對來說更高, 國內(nèi)用戶使用的比較多,速度相對快、穩(wěn)定,是國內(nèi)用戶上網(wǎng)常用的DNS。 8.8.8.8是GOOGLE公司提供的DNS,該地址是全球通用的,相對來說,更適合國外以及訪問國外網(wǎng)站的用戶使用 [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.質(zhì)數(shù)計(jì)算;2 圓周率計(jì)算;
sysbench 使用的就是通過質(zhì)數(shù)相加的測試。對 CPU 測試直接運(yùn)行 run 即可。
–20 個(gè)線程執(zhí)行 1 萬次請求,每個(gè)請求執(zhí)行質(zhì)數(shù)相加到 20000
sysbench --threads=20 --events=10000 cpu --cpu-max-prime=20000 run

?? 4.測試磁盤 IO
IO 的測試主要用于測試 IO 的負(fù)載性能。主要測試選項(xiàng)為–file-test-mode。還有可以關(guān)注的參數(shù)包括–file-block-size、–file-io-mode、–file-fsync-
freq 、–file-rw-ratio 。對比兩臺服務(wù)器的 io 性能,需要跑相同的線程。
其中–file-test-mode 的選項(xiàng)如下:
seqwr:順序?qū)懭?br />seqrewr:順序重寫
seqrd:順序讀取
rndrd:隨機(jī)讀取
rndwr:隨機(jī)寫入
rndrw:混合隨機(jī)讀寫
## 生成壓測文件 sysbench fileio --threads=16 --file-total-size=10G --file-test-mode=rndrw prepare 注意:每次會生成128個(gè)文件 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.測試內(nèi)存
測試 8K 順序分配: sysbench --threads=12 --events=10000 memory --memory-block-size=8K --memory-total-size=100G --memory-access-mode=seq run

測試 8K 隨機(jī)分配:
sysbench --threads=12 --events=10000 memory --memory-block-size=8K --memory-total-size=100G --memory-access-mode=rnd run

到此這篇關(guān)于Docker部署及使用壓測神器sysbench的文章就介紹到這了,更多相關(guān)Docker部署壓測神器sysbench內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解如何使用Docker部署一個(gè)web項(xiàng)目并打包成鏡像文件
這篇文章主要介紹了詳解如何使用Docker部署一個(gè)web項(xiàng)目并打包成鏡像文件,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-08-08
利用docker搭建php7和nginx運(yùn)行環(huán)境全過程(官方鏡像)
docker提供了在服務(wù)端分布式的部署應(yīng)用,這樣的好處是方便維護(hù)和升級。下面這篇文章主要給大家介紹了利用docker搭建php7和nginx運(yùn)行環(huán)境的相關(guān)資料,搭建過程中運(yùn)用的是官方鏡像,需要的朋友可以參考借鑒,下面來一起看看吧。2017-05-05
手把手教你docker部署(使用docker-compose)教程
使用 Docker Compose 可以輕松、高效的管理容器,下面這篇文章主要給大家介紹了關(guān)于手把手教你docker部署(使用docker-compose)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-01-01
docker如何在一個(gè)容器內(nèi)部署多個(gè)服務(wù)
這篇文章主要介紹了docker如何在一個(gè)容器內(nèi)部署多個(gè)服務(wù),思路是這樣的首先拿到你的httpd,以及你的springBoot,合并他們的Dockerfile,然后打包,然后啟動的時(shí)候啟動多個(gè)端口(httpd的端口和你服務(wù)的端口),需要的朋友可以參考下2024-01-01
CentOS服務(wù)器部署Docker+Jenkins持續(xù)集成環(huán)境的方法
本文詳細(xì)介紹在CentOS服務(wù)器上部署Docker和Jenkins持續(xù)集成環(huán)境的步驟,涵蓋了準(zhǔn)備工作、安裝Docker、配置Docker鏡像加速、安裝Jenkins、配置Jenkins以及集成Docker與Jenkins,通過這些步驟,讀者可以實(shí)現(xiàn)代碼的持續(xù)集成與快速部署,提高軟件開發(fā)效率,感興趣的朋友一起看看吧2025-02-02

