压测工具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.mzph.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 // 启动…