MySQL性能压力基准测试工具sysbench的使用简介
作者:Tse先生 发布时间:2024-01-25 04:58:35
目录
1、sysbench介绍
#项目下载地址:
2、sysbench安装过程
#安装相关依赖
#安装过程开始
#提示说明:
#常规命令行选项
#sysbench使用[command]常用的有:
1、sysbench介绍
这里介绍一款MySQL数据库的压力测试软件sysbench,用它来进行基准测试。
sysbench 是一个开源的、模块化的、跨平台的多线程性能测试工具,
可以用来进行CPU、内存、磁盘I/O、线程、数据库的性能测试。
目前支持的数据库有MySQL、Oracle 和PostgreSQL。
#项目下载地址:
https://launchpad.net/sysbench
http://github.com/akopytov/sysbench
该基准套件的想法是快速获得有关系统性能的印象,而无需设置复杂的数据库基准,甚至不需要安装数据库。
当前功能允许测试以下系统参数:
#CPU性能
file I/O performance #文件IO性能,磁盘IO性能
scheduler performance #调度程序性能
memory allocation and transfer speed #内存分配和传输速度
POSIX threads implementation performance #POSIX线程实现性能
database server performance (OLTP benchmark) #数据库服务器性能(OLTP基准)
Sysbench的oltp主要用于评估测试各种不同系统参数下的数据库负载情况。
相比0.4版本,后续的版本oltp测试主要结合了lua脚本,不需要修改源码,通过自定义lua脚本就可以实现不同业务类型的测试。
SysBench的缺点:
模拟的表结构太简单,不像tpcc-mysql那样完整的事务系统,但对于MySQL性能压测对比还是很有用的。
2、sysbench安装过程
#安装相关依赖
mount /dev/cdrom /mnt
yum -y install make automake libtool pkgconfig libaio-devel libtool
#安装过程开始
#客户端lib包做个链接
ln -sf /mysql/app/mysql/lib/libmysqlclient.so.20 /usr/lib/libmysqlclient.so.20
#解压安装
cd /softtar zxvf sysbench-1.0.15.tar.gzcd sysbench-1.0.15./autogen.sh
./configure --prefix=/mysql/app/sysbench --with-mysql=/mysql/app/mysql --with-mysql-includes=/mysql/app/mysql/include/
#--with-mysql-libs=/usr/lib/
make && make install
#配置环境变量
vi ~/.bash_profile
PATH=$PATH:/mysql/app/sysbench/bin:$HOME/bin
source ~/.bash_profile
sysbench --version
#如果提示报错
sysbench: error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such file or directory
#接着在/etc/ld.so.cnf中加入/usr/lib这一行
[root@tse01 local]# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
/usr/lib/
#执行ldconfig -v更新下配置就可以了
[root@tse01 local]# /sbin/ldconfig -v
#提示说明:
如果你在非标准位置安装的MySQL头文件和库(没有 mysql_config可以在找到PATH),
你可以明确指定--with-mysql-includes和--with-mysql-libs选项参数,如上面。
要在没有MySQL支持的情况下编译sysbench,请使用--without-mysql。
如果没有可用的数据库驱动程序,则与数据库相关的脚本将不起作用,但其他基准测试将起作用。
#常规命令行选项
下表列出了受支持的常用选项,它们的描述和默认值:
选项 | 描述 | 默认值 |
--threads | 要创建的工作线程总数 | 1个 |
--events | 要求总数的限制。0(默认值)表示没有限制 | 0 |
--time | 总执行时间限制(以秒为单位)。0表示没有限制 | 10 |
--warmup-time | 在启用统计信息的情况下运行实际基准测试之前,在禁用统计信息的情况下执行事件数秒钟。当您要从统计信息中排除基准测试运行的初始期间时,此功能很有用。在许多基准测试中,初始阶段并不具有代表性,因为CPU /数据库/页面和其他缓存需要一些时间进行预热 | 0 |
--rate | 平均交易率。该数字指定所有线程平均每秒应执行多少事件(事务)。0(默认)表示无限制速率,即事件以尽可能快的速度执行 | 0 |
--thread-init-timeout | 辅助线程初始化的等待时间(以秒为单位) | 30 |
--thread-stack-size | 每个线程的堆栈大小 | 32K |
--report-interval | 定期以指定的时间间隔(以秒为单位)报告中间统计信息。请注意,此选项生成的统计信息是按时间间隔而不是累积的。0禁用中间报告 | 0 |
--debug | 打印更多调试信息 | 离开 |
--validate | 尽可能验证测试结果 | 离开 |
--help | 根据常规语法或指定的测试打印帮助,然后退出 | 离开 |
--verbosity | 详细级别(0-仅关键消息,5-调试) | 4 |
--percentile | sysbench测量所有已处理请求的执行时间,以显示统计信息,例如最小,平均和最大执行时间。对于大多数基准测试,了解与某个百分位数相匹配的请求执行时间值也很有用(例如,95%百分位数意味着我们应该丢弃最长请求的5%,并从其余请求中选择最大值)。此选项允许指定要计算的查询执行时间的百分等级 | 95 |
--luajit-cmd | 执行LuaJIT控制命令。此选项等效于luajit -j。有关更多信息,请参见LuaJIT文档。 |
请注意,可以通过附加相应的乘法后缀(K表示千字节,M表示兆字节,G表示千兆字节,T表示兆字节)
来指定所有大小选项(--thread-stack-size如此表中所示)的数值。
#sysbench使用[command]常用的有:
1) prepare准备测试,生成数据
2) run执行测试
3) cleanup清理数据
4) help
5) version
来源:https://www.cnblogs.com/Sungeek/p/14669280.html


猜你喜欢
- 前言本文主要给大家介绍了关于SQL Server中bit类型字段增删查改的一些事,话说BIT类型字段之前,先看“诡异”的一幕,执行Updat
- 如何制作一个倒计时的程序? 见下:<%CountdownDate = #1/1
- 本文实例为大家分享了tensorflow使用CNN分析mnist手写体数字数据集,供大家参考,具体内容如下import tensorflow
- 上一课:ACCESS入门教程:窗口和菜单的使用向导简介 这一课我们要建立一个客户订单管理数据库,这个数据库将用ACCESS提供的数据库向导来
- a. 如果欲使用gb2312编码,那么php要输出头:header(“Content-Type: text/html; charset=gb
- AJAX简介AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。AJA
- 今天用要django传值给模板, 然后需要用js处理一下.特此记录.用json.dumps()方法将值传给模板.import json re
- 最近博主在边学flask边写测试平台,碰到一个比较常用的场景如下图所示这里有一个输入框组,下拉菜单里面有3个选项,还有一个输入框,代码是用
- 最近看到大家都练习写树,偶也学习学习写了一个,大家多多批评,我好进步。不过我看了一些树的xml文档都是在xml中就已经有了树的结构,所以我写
- 开发中遇到过问题就是对时间以半个小时分钟分组,如统计08:00-08:30的人数,08:30-09:00的人数,貌似sql中没有这样的函数吧
- 题目:CSV格式清洗与转换描述附件是一个CSV格式文件,提取数据进行如下格式转换:
- 在我之前写的几篇网站优化的文章中,着墨最多的是减少HTTP请求。通过减少请求数目,你的浏览器必须能对你的网站所有内容成功检索,总的HTTP请
- <html> <head> <title>51windows.Net </title> &l
- 数据库中最好插入Null值。在python中,暂时没找到通过sql语句的方式插入Null值。推荐使用轮子的方法def insert_samp
- 因为要写个东西用到,所以百度了一下,居然有朋友乱写,而且比较多,都没有认真测试过,只对字符可以,但是对数字就不可以,而且通用性很差,需要修改
- 1.问题描述当我们在实用ElementUI组件完成项目的时候可能会遇到这样的需求,比如:新建一个活动,需要定义活动的时间范围;因此我们在新建
- 今天闲逛在网上时,看到一个11px大小的字体,显示却很清晰,赶紧查看站点的CSS,这字体称叫做:PMingLiu。效果相当不错,相比于我们使
- 说实话,第一次写这么长的Python代码,期间遇到了很多问题,但是,最终还是完成了,花了我一天半的时间。该程序实现了用户的增,删,改,查,主
- 之前在网上看到有人提问,如何在页面上同步显示服务器的时间,其实实现方法有几种,可能 一般人立马就想到可以使用Ajax每隔一秒去请求服务器,然
- 这是份总结,有不恰达的地方欢迎一同讨论联系方式 : 龙藏 longzang@taobao.com点击这里全幅围观或者点下面大图去 slide