sysbench工具安装使用
一.sysbench简介
Sysbench是一款开源的、跨平台的、模块化的、多线程的性能测试工具,通过高负载地运行在数据库上,可以执行CPU、内存、线程、IO、数据库等方面的性能测试。用于评估操作系统的性能参数。
目前主要支持的数据库有mysql、oracle、postgresql。
可评估的系统性能参数有:
1.CPU性能
2.内存分配与传输速度测试
3.互斥体测试
4.文件I/O性能
5.线程调度性能
6.数据库服务性能(OLTP基准)
本来sysbench主要是为mysql编写的benchmark。但是现在SysBench将进一步扩展,以支持更多的数据库backends,distributed benchmarks和第三方插件模块。
sysbench按照指定的数量开启线程,每个线程与mysql建立一个连接,每个线程不停地进行事务操作,打开事务,然后进行一些查询、更新、插入操作,提交事务,再开始新的事务;所有的sql只访问一个表-sbtest,是由sysbench的prepare命令建好的。其中的记录数,也是在prepare时指定好并创建的。测试结束,会有一个统计结果,包括例如每秒事务数、平均响应时间等等。
二、sysbench下载与安装
1.下载:使用epel源的bzr客户端下载sysbench(这里不做epel源配置说明)
[root yum.repos.d]$ yum install bzr -y
.....
.......
Running Transaction
Installing : python-paramiko-1.7.5-2.1.el6.noarch 1/2
Installing : bzr-2.1.1-2.el6.x86_64 2/2
Installed:
bzr.x86_64 0:2.1.1-2.el6
Dependency Installed:
python-paramiko.noarch 0:1.7.5-2.1.el6
Complete!
[root ~]$ bzr branch lp:sysbench
You have not informed bzr of your Launchpad ID, and you must do this to
write to Launchpad or access private data. See "bzr help launchpad-login".
Branched revision(s).
[root ~]$ ll -d /root/sysbench/
drwxr-xr-x root root 11月 : /root/sysbench/
2.安装sysbench
[root@localhost ~]#cd /root/sysbench
[root@localhost sysbench]#./autogen.sh
[root@localhost sysbench]#./configure \
--with-mysql-includes=/usr/local/mysql/include \
--with-mysql-libs=/usr/local/mysql/lib
[root@localhost sysbench]#make
注意如果报错libmysqlclient.so.18说明的需要链接mysql的lib库:例如:ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/
三、OLTP测试前准备
初始化测试库环境(总共10个测试表,每个表 100000 条记录,填充随机生成的数据):
[root@localhost sysbench]# mysqladmin -u root -p'' create sbtest
[root@localhost sysbench]#./sysbench --mysql-host=localhost --mysql-port= --mysql-user=root --mysql-password='' --test=tests/db/oltp.lua --oltp_tables-count= --oltp-table-size= --rand-init=on prepare
[root@localhost sysbench]#./sysbench --mysql-host=localhost --mysql-port=3306 --mysql-user=root --mysql-password='123456' --test=tests/db/oltp.lua --oltp_tables-count=10 --oltp-table-size=1000000 --oltp-read-only=off --report-interval=10 --rand-type=uniform --max-time=3600 --max-requests=0 --percentile=99 run
sysbench 0.5: multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 8
Report intermediate results every 10 second(s)
Random number generator seed is 0 and will be ignored
Threads started!
-- 每10秒钟报告一次测试结果,tps、每秒读、每秒写、99%以上的响应时长统计
[ 10s] threads: 8, tps: 119.03, reads/s: 1677.65, writes/s: 478.93, response time: 294.40ms (99%)
[ 20s] threads: 8, tps: 76.80, reads/s: 1074.47, writes/s: 307.19, response time: 495.75ms (99%)
[ 30s] threads: 8, tps: 88.20, reads/s: 1232.94, writes/s: 351.61, response time: 503.98ms (99%)
[ 40s] threads: 8, tps: 149.79, reads/s: 2099.73, writes/s: 600.78, response time: 396.18ms (99%)
[ 50s] threads: 8, tps: 78.09, reads/s: 1093.32, writes/s: 312.38, response time: 758.12ms (99%)
[ 60s] threads: 8, tps: 79.30, reads/s: 1109.76, writes/s: 316.82, response time: 509.75ms (99%)
[ 70s] threads: 8, tps: 35.50, reads/s: 497.52, writes/s: 142.41, response time: 956.36ms (99%)
[ 80s] threads: 8, tps: 45.40, reads/s: 635.57, writes/s: 180.39, response time: 895.67ms (99%)
[ 90s] threads: 8, tps: 73.00, reads/s: 1019.58, writes/s: 290.49, response time: 693.84ms (99%)
[ 100s] threads: 8, tps: 148.01, reads/s: 2069.14, writes/s: 591.64, response time: 472.85ms (99%)
[ 110s] threads: 8, tps: 60.60, reads/s: 850.90, writes/s: 242.90, response time: 1052.81ms (99%)
[ 120s] threads: 8, tps: 88.20, reads/s: 1237.71, writes/s: 354.20, response time: 592.94ms (99%)
OLTP test statistics:
queries performed:
read: 145936 -- 读总数
write: 41696 -- 写总数
other: 20848 -- 其他操作总数(SELECT、INSERT、UPDATE、DELETE之外的操作,例如COMMIT等)
total: 208480 -- 全部总数
transactions: 10424 (86.74 per sec.) -- 总事务数(每秒事务数)
deadlocks: 0 (0.00 per sec.) -- 发生死锁总数
read/write requests: 187632 (1561.37 per sec.) -- 读写总数(每秒读写次数)
other operations: 20848 (173.49 per sec.) -- 其他操作总数(每秒其他操作次数)
General statistics: -- 一些统计结果
total time: 120.1714s -- 总耗时
total number of events: 10424 -- 共发生多少事务数
total time taken by event execution: 960.6432s -- 所有事务耗时相加(不考虑并行因素)
response time:
min: 5.35ms -- 最小耗时
avg: 92.16ms -- 平均耗时
max: 3955.05ms -- 最长耗时
approx. 99 percentile: 649.23ms -- 超过99%平均耗时
Threads fairness:
events (avg/stddev): 1303.0000/24.81
execution time (avg/stddev): 120.0804/0.00
测试建议:
1、真实测试场景中,数据表建议不低于10个,单表数据量不低于500万行,当然了,要视服务器硬件配置而定。如果是配备了SSD或者PCIE SSD这种高IOPS设备的话,则建议单表数据量最少不低于1亿行。
2、真实测试场景中,建议持续压测时长不小于30分钟,否则测试数据可能不具参考意义。
参数解释:
--num-threads= 表示发起 8个并发连接
--oltp-read-only=off 表示不要进行只读测试,也就是会采用读写混合模式测试
--report-interval= 表示每10秒输出一次测试进度报告
--rand-type=uniform 表示随机类型为固定模式,其他几个可选随机模式:uniform(固定),gaussian(高斯),special(特定的),pareto(帕累托)
--max-time= 表示最大执行时长为 120秒
--max-requests= 表示总请求数为 ,因为上面已经定义了总执行时长,所以总请求数可以设定为 ;也可以只设定总请求数,不设定最大执行时长
--percentile= 表示设定采样比例,默认是 %,即丢弃1%的长请求,在剩余的99%里取最大值
sysbench工具安装使用的更多相关文章
- sysbench压力测试工具安装和参数介绍
一.sysbench压力测试工具简介: sysbench是一个开源的.模块化的.跨平台的多线程性能测试工具,可以用来进行CPU.内存.磁盘I/O.线程.数据库的性能测试.目前支持的数据库有MySQL. ...
- MySQL性能测试工具sysbench的安装和使用
sysbench是一个开源的.模块化的.跨平台的多线程性能测试工具,可以用来进行CPU.内存.磁盘I/O.线程.数据库的性能测试.目前支持的数据库有MySQL.Oracle和PostgreSQL.当前 ...
- Linux 性能测试工具 sysbench 的安装与简单使用
文章目录 Linux 性能测试工具 sysbench 的安装与简单使用 一 背景 二 实验环境 2.1 操作系统 2.2 其他配 ...
- CentOS6.6系统源代码安装mysql5.5.28教程(附源码包下载地址)+sysbench的安装
mysql从5.5版本开始,不再使用./configure编译,而是使用cmake编译器,具体的cmake编译参数可以参考mysql官网文档(※ 非常重要) http://dev.mysql.com/ ...
- sysbench的安装和做性能测试
sysbench的安装和做性能测试 http://imysql.cn/node/312 sysbench是一个模块化的.跨平台.多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况. ...
- Linux性能测试工具安装全集
stress 下载地址:http://people.seas.harvard.edu/~apw/stress/ 一.stress工具安装:1.获取stress源码安装包(stress-1.0.4.ta ...
- sysbench的安装详解
sysbench是一个压力测试工具.可以用它来测试cpu.mem.disk.thread.mysql.postgr.oracle:然而作为一个mysql dba 我当然是用它来压测mysql啦! 一. ...
- 通过sysbench工具实现MySQL数据库的性能测试
1.背景 sysbench是一款压力测试工具,可以测试系统的硬件性能,也可以用来对数据库进行基准测试.sysbench 支持的测试有CPU运算性能测试.内存分配及传输速度测试.磁盘IO性能测试.POS ...
- 【转帖】sysbench的安装和做性能测试
iMySQL | 老叶茶馆 sysbench的安装和做性能测试 http://imysql.cn/node/312 我仿照这个学的 但是 需要用更新的版本才可以. By yejr on 14 六月 ...
随机推荐
- laravel5.7 前后端分离开发 实现基于API请求的token认证
最近在学习前后端分离开发,发现 在laravel中实现前后台分离是无法无法使用 CSRF Token 认证的.因为 web 请求的用户认证是通过Session和客户端Cookie的实现的,而前后端分离 ...
- Windows环境下IOS APP打包上传AppStore详细流程
我们知道在上架苹果应用过程中,申请发布证书需要用到钥匙串,上传ipa需要用到xcode或Application loader提交构建版本,这都需要Mac苹果机. 本文介绍如何在Windows环境下申请 ...
- springboot集成themeleaf报Namespace 'th' is not bound
<!DOCTYPE html><!--解决th报错 --><html lang="en" xmlns:th="http://www.w3.o ...
- maven 项目连接mysql8.0版本时的注意事项
MySQL 8.0 正式版 8.0.11 已发布,官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能! 以前的maven项目,要注意依赖的注入 查看pom. ...
- react中对于redux的封装
const createStore = (reducer)=>{ //默认的state对象 let state = {}; //将所有订阅的事件存在在这个数组中 let listeners = ...
- 基于Java服务的前后端分离解决跨域问题
导语:解决跨域问题,前后端都增加相应的允许跨域的代码段即可. 一.后端增加允许跨域的代码,可以在具体controler层加,最好是在filter中添加,这样添加一次就够了,不用在每个controler ...
- SSH 安全加固
检查密码重用是否受限制 | 身份鉴别 说明:强制用户不重用最近使用的密码,降低密码猜测攻击风险 描述:设置较低的Max AuthTrimes参数将降低SSH服务器被暴力攻击成功的风险. 加固建议:在/ ...
- FUTABA 13-ST-84GINK + DS3231 时钟
收拾东西的时候又看到之前收拾的vfd相关的盒子,偶然又加的群,又买了两种屏试水. 大的买屏还送vfd变压器,这玩意卖的少,一个5块,不买血亏!不知道什么时候开始早已没有DIY是省钱这种观念了.草... ...
- javaweb闲暇小程序之抽签程序
学自潭州学院视频 主程序页面截图 <%@ page language="java" contentType="text/html; charset=UTF-8&qu ...
- windows下共享文件夹在Linux下打开
①首先在Windows下创建一个准备用来共享用的文件夹 ②在虚拟机下选择第一步创建的文件夹为共享文件夹 ③在虚拟机shell命令框下输入 cd /mnt/sgfs 回车进入共享文件夹. 备注:其他细 ...