壓測工具sysbench

一、安裝

yum install gcc gcc-c++ autoconf automake make libtool bzr mysql-devel mysql libaio-devel

yum remove mariadb.x86_64 mariadb-devel.x86_64

sh install-mysql.sh --install=mysql --innodbbufferpoolsize=2G --datadir=/mysql/data --password=123321 --binlogdir=/mysql/binlog --id=1
sh install-mysql.sh --start=mysql --datadir=/mysql/data --password=123321 --slaveof=10.xx.xx.157

unzip sysbench-1.0.zip?
cd ?sysbench-1.0/
# ./autogen.sh?
./configure --prefix=/usr --mandir=/usr/share/man --without-mysql
make -j
make install

修改sysbench相關配置
sudo sh -c 'for x in /sys/class/net/eth0/queues/rx-*;do echo f>$x/rps_cpus;done'
sudo sh -c 'echo 36728>/proc/sys/net/core/rps_sock_flow_entries '
sudo sh -c 'echo 4096>/sys/class/net/eth0/queues/rx-0/rps_flow_cnt'

sudo sh -c 'for x in /sys/class/net/bond0/queues/rx-*;do echo f>$x/rps_cpus;done'
sudo sh -c 'echo 36728>/proc/sys/net/core/rps_sock_flow_entries '
sudo sh -c 'echo 4096>/sys/class/net/bond0/queues/rx-0/rps_flow_cnt'

臨時調整 ulimit 65535

測試完成后,需要再系統層做一些清理的工作
shell>sync #刷新臟數據到磁盤
shell>echo 3 >/proc/sys/vm/drop_cache #清除cache
echo 3 > /proc/sys/vm/drop_caches

shell>swapoff -a && swapon -a 釋放swap
3.壓測過程中需要修改參數max_prepared_stmt_count默認為16382,修改為65536
4.如果是SSD硬盤的話,innodb_io_capacity和innodb_io_capacity_max兩個參數也要相應調大,建議調整到50000

二、使用

sysbench fileio?
--file-test-mode值說明(prepare run 必須一致):
seqwr順序寫入。
seqrewr順序重寫。
seqrd順序讀取。
rndrd隨機讀取。?
rndwr隨機寫入。?
rndrw混合隨機讀/寫
--file-io-mode
sync同步
async異步
mmap

2.1CPU

sysbench --test=cpu --cpu-max-prime=2000 run

2.2內存

4C8G 帶80GB數據盤1個,邏輯掛載/mysql

sysbench --db-driver=mysql --mysql-host=10.xx.xx.157 --mysql-port=3306 ?--mysql-user=root --mysql-password=123321 ?--mysql-db=mypartition --table_size=25000 --table=250 --events=0 --timeout=600 oltp_read_write prepare

sysbench --db-driver=mysql --mysql-host=10.xx.xx.157 --mysql-port=3306 ?--mysql-user=root --mysql-password=123321 ?--mysql-db=mypartition --table_size=25000 --table=250 --events=0 --timeout=600 --threads=16 --percentile=95 --report-interval=1 oltp_read_write run

sysbench --db-driver=mysql --mysql-host=10.xx.xx.157 --mysql-port=3306 ?--mysql-user=root --mysql-password=123321 ?--mysql-db=mypartition --table_size=25000 --table=250 --events=0 --timeout=600 --threads=16 --percentile=95 ?oltp_read_write ?cleanup

2.3磁盤IO

sysbench --db-driver=mysql --mysql-host=192.168.X.X --mysql-port=3306 ?--mysql-user=root --mysql-password=123321 ?--mysql-db=mypartition --table_size=800000 --table=150 --events=0 --timeout=600 oltp_read_write prepare

sysbench --db-driver=mysql --mysql-host=192.168.X.X --mysql-port=3306 ?--mysql-user=root --mysql-password=123321 ?--mysql-db=mypartition --table_size=800000 --table=150 ?--events=0 --timeout=600 --threads=16 --percentile=95 --report-interval=1 oltp_read_write run

sysbench --db-driver=mysql --mysql-host=192.168.X.X --mysql-port=3306 ?--mysql-user=root --mysql-password=123321 ?--mysql-db=mypartition --table_size=800000 --table=150 --events=0 --timeout=600 --threads=16 --percentile=95 ?oltp_read_write ?cleanup

2.4?線程

sysbench ?--test=threads --num-threads=500 --thread-yields=100 --thread-locks=4 run

2.5oltp

1,prepare階段,生成需要的測試表
sysbench --test=oltp --mysql-table-engine=innodb --mysql-host=192.168.X.X --mysql-db=test --oltp-table-size=500000 --mysql-user=root --mysql-password=123321 prepare
2,run階段
sysbench --num-threads=16 --test=oltp --mysql-table-engine=innodb --mysql-host=192.168.x.x --mysql-db=test --oltp-table-size=500000 --mysql-user=root --mysql-password=123321 run
3,清理測試時生成的測試表
sysbench --num-threads=16 --test=oltp --mysql-table-engine=innodb --mysql-host=192.168.x.x --mysql-db=test --oltp-table-size=500000 --mysql-user=root --mysql-password=123321 cleanup

2.6

sysbench fileio --time=120 --threads=16 --file-test-mode=seqwr --file-io-mode=async --file-num=40 --file-block-size=16384 --file-total-size=20G --file-fsync-freq=100 --file-fsync-all=off --file-fsync-end=on --file-merged-requests=0 --file-rw-ratio=1 run

sysbench fileio --time=120 --threads=16 --file-test-mode=rndrw --file-io-mode=async --file-num=40 --file-block-size=16384 --file-total-size=20G --file-fsync-freq=100 --file-fsync-all=off --file-fsync-end=on --file-merged-requests=0 --file-rw-ratio=1.5 run

三、結果解析

File operations:
? ? reads/s: ? ? ? ? ? ? ? ? ? ? ?0.00 #每秒讀次數
? ? writes/s: ? ? ? ? ? ? ? ? ? ? 20850.83#每秒寫次數
? ? fsyncs/s: ? ? ? ? ? ? ? ? ? ? 8340.85#每秒從內存向磁盤同步的次數

/io類型測試
Throughput: #吞吐量
? ? read, MiB/s: ? ? ? ? ? ? ? ? ?0.00
? ? written, MiB/s: ? ? ? ? ? ? ? 325.79

/cpu類型測試
CPU speed: events per second: 4500.61 #每秒創建 events 數量

General statistics:
? ? total time: ? ? ? ? ? ? ? ? ? ? ? ? ?60.0105s # --time 執行測試的時間
? ? total number of events: ? ? ? ? ? ? ?1752371 ?#總共創建的 events 數量

Latency (ms):
? ? ? ? ?min: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?0.01 #最小執行時間
? ? ? ? ?avg: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?0.03
? ? ? ? ?max: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 10.71
? ? ? ? ?95th percentile: ? ? ? ? ? ? ? ? ? ? ? ?0.05#95% events 執行時間
? ? ? ? ?sum: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?59314.03#總時間

Threads fairness:#?與線程相關的指標
? ? events (avg/stddev): ? ? ? ? ? 1752371.0000/0.00?#?事件(平均值/偏差)
? ? execution time (avg/stddev): ? 59.3140/0.00#?執行時間(平均值/偏差)

四、其他

忘記密碼:
1./etc/my.cnf的[mysqld]中添加skip-grant-tables
2.重啟mysql
3.mysql
>use mysql;(使用mysql數據庫)
>update user set password=password("你的密碼") where user="root";
>flush privileges;
>quit
4.編輯my.cnf,去掉剛才添加的內容,然后重啟MySQL

獲取臨時密碼:
mysqld --no-defaults --user=mysql --datadir=/mysql/data --initialize

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/21383.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/21383.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/21383.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

----JAVA 繼承----

引言 再java中你能創造出很多的類,但如果這些類中的成員再另一個類中也要使用,那么就要用到繼承來實現指定類中成員的使用了 那么也就可以寫出這樣的代碼 再類Cat中使用了類Animal的成員,這里我們稱Cat叫子類,Animal叫父類 概念…

Ubuntu22.04嵌入開發環境之NFS文件系統

近期我把Ubuntu18.04開發環境改成了22.04寫一上安裝過程與問題。 1.安裝NFS sudo apt install nfs-kernel-server systemctl status nfs-kernel-server systemctl emable nfs-kernel-server2.創建共享目錄 sudo mkdir /home/share/ sudo chmod 775 -R /home/share/3.配置NFS…

AIGC筆記--MoE模型的簡單實現

1--MoE模型 MoE模型全稱是混合專家模型(Mixture of Experts, MoE),其主要將多個專家神經網絡模型組合成一個更大的模型。 MoE模型的核心組成有兩部分:第一部分是多個專家網絡模型,每個專家網絡模型往往是獨立的&#x…

【UE+GIS】UE5GIS CAD或shp構建3D地形

貼合地形的矢量圖形實現方法 一、灰度圖的制作和拉伸換算1、基于高程點集實現2、基于等高線實現3、拉伸計算 二、生成地形模型的實現方案1、3Dmax導入灰度圖2、使用ArcMap/Arcpro/FME等GIS數據處理工具3、UE導入灰度圖 三、地形上疊加地形渲染效果的實現方案1、貼花2、數據渲染…

日志管理:Slf4j、Log4j、LogBack與ELK實戰指南

1.現代軟件開發中日志的重要性 在軟件開發和運維的世界里,日志管理是一項至關重要的技術。正確地記錄、管理和分析日志數據,能為系統的可靠性、可維護性和安全性帶來顯著的好處。 1.1 日志在故障排查中的作用 日志是系統活動的詳細記錄。當系統發生故…

Z字形變換 ---- 模擬

題目鏈接 題目: 分析: 題意如圖所示:如果我們按照題意, 真的實現一個矩陣, 這樣做的時間和空間復雜度很高, 所以我們可以試試看找規律, 優化一下我們觀察他們的下標: 如果找到下標的規律, 那么我們就不用創建矩陣, 就能找到最終結果的下一個字符是什么特殊情況, 當numRows 1…

讀AI未來進行式筆記01深度學習

1. AI 1.1. AI已經發展成一門涵蓋許多子領域的重要學科 1.2. 機器學習是迄今為止AI應用最成功的子領域 1.2.1. 在這個領域中,最大的技術突破就是深度學習 1.3. “人工智能”“機器學習”和“深度學習”的時候&#xff…

C語言編程技巧:深度挖掘與高效實踐

C語言編程技巧:深度挖掘與高效實踐 在編程的世界里,C語言以其高效、靈活和底層控制能力強等特點,一直備受開發者們的青睞。然而,要想真正掌握C語言的精髓,并編寫出高效、健壯的代碼,卻并非易事。本文將從四…

基于STM32與TB6600的機械臂項目

基于STM32與TB6600的機械臂項目是一個涉及硬件設計、軟件開發和控制算法實現的綜合項目。以下是對該項目的一個簡要介紹,以及一些基礎的代碼示例。 項目概述 1. 系統組成 STM32微控制器:作為系統的主控制器,負責處理傳感器數據和控制機械臂…

Pointnet學習以及對代碼的實現

由于點云不是常規數據格式,通常將此類數據轉換為規則的 3D 體素網格或圖像集合,然后再用神經網絡進行處理。數據表示轉換使生成的數據過于龐大。 PointNet是第一個直接處理原始點云的方法。只有全連接層和最大池化層,PointNet網絡在推理速度…

Android串口調試ADB

在Android設備上,通過串口(通常指的是ADB,即Android Debug Bridge)來執行dumpsys命令來檢查某個包(例如com.android.bluetooth)是否支持某個服務(如A2dpSinkService)是開發者或高級用…

深入理解 Python 迭代器與生成器:詳細指南

迭代器和生成器是 Python 中強大的特性,用于簡化代碼和提高效率。它們允許我們在需要時逐步計算結果,避免一次性加載所有數據到內存中。本文將詳細介紹 Python 迭代器和生成器的基本語法、命令、示例、應用場景、注意事項,并進行總結。 迭代…

Android在不同層面增加應用

1 App 應用代碼一般在開發者的項目目錄下,packages/apps/YourApp/,比如app/src/main/java目錄下 對于系統應用,源代碼可能位于packages/apps/目錄下,例如packages/apps/Settings。 用戶安裝的應用(從Google Play或其…

代碼隨想錄--哈希表--兩數之和

題目 給定一個整數數組 nums 和一個目標值 target,請你在該數組中找出和為目標值的那 兩個 整數,并返回他們的數組下標。 你可以假設每種輸入只會對應一個答案。但是,數組中同一個元素不能使用兩遍。 示例: 給定 nums [2, 7, 11, 15], t…

李廉洋:6.3黃金原油下周一開盤行情價格漲跌趨勢分析及最新操作建議多空布局

黃金消息面分析:上周黃金市場的走勢受到了PCE通脹數據和美聯儲政策預期的顯著影響。盡管市場對黃金的長期看漲情緒依然存在,但短期內金價的波動性預計將持續。4月份的PCE通脹數據顯示價格壓力有所降溫,這一結果與分析師預期一致,但…

2024年6月2日 (周日) 葉子游戲新聞

中醫百科中藥: 中醫百科中藥是一款非常強大的中藥知識科普軟件,該應用提供500多味中草藥的文獻資料,強大的搜索功能可根據功效、特點和關鍵詞來快速查找中藥,而且每味中藥的圖片、功效、主治、炮制方法等百科知識,可以很好的幫助你…

Pycharm SSH遠程連接時出現報錯,測試 SFTP 連接,連接到 ‘connect.westb.seetacloud.com‘ 失敗

問題由來 很離譜!今天本來打算租借AutoDL的顯卡完成一項深度學習的任務,很離譜的是同步文件夾的時候報了標題說的錯。 就很莫名奇妙,一天都在網上找解決辦法,結果都不對頭。 其他報錯 最后摸索著,在使用pycharm遠程登…

SpringBoot 定時任務+Quartz

1、分部解釋2、整體代碼 前言: 1、定時任務技術: JDK 的 Timer, 定義多個定時任務,其中某個任務出現異常,當時整個定時任務終止。Spring Task , 不支持 持久化與分布式部署,所有任務是單線程執行…

Prism 入門01,基礎

Prism 框架是支持多平臺的一種MVVM框架(Model-View-ViewModel) 除了具備一些基礎的屬性通知綁定,命令操作,消息聚合器等功能外。還具備一些強大的功能:例如,區域,導航,會話服務,模塊注入等特性。 一.如何在WPF 項目中使用Prism 框架 1.打開Visual Studio 2022,選擇創…

初探Arthasan安裝使用

最近在項目中用到 Arthas,即阿爾塞斯 是阿里開源的Java分析工具。 下載地址:Github 一、安裝運行 1)window 系統 下載 jar 包,直接通過java命令運行 // 下載 jar包 curl -O https://arthas.aliyun.com/arthas-boot.jar // 啟動…