安装  

执行 下载命令

curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash

  安装

sudo yum -y install sysbench

  查看版本

sysbench --version

  

基于sysbench构造测试表和测试数据

sysbench --db-driver=mysql --time=300 --threads=10 --report-interval=1 --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=test_user --mysql-password=test_user --mysql-db=test_db --tables=20 --table_size=1000000 oltp_read_write --db-ps-mode=disable prepare

  参数的大概意思

  1、--db-driver=mysql:这个很简单,就是说他基于mysql的驱动去连接mysql数据库,你要是oracle,或者sqlserver,那自然就是其他的数据库的驱动了

  2、--time=300:这个就是说连续访问300秒

  3、--threads=10:这个就是说用10个线程模拟并发访问

  4、--report-interval=1:这个就是说每隔1秒输出一下压测情况

  5、--mysql-host=127.0.0.1:这是你要连接的sql服务连接

  6、--mysql-port=3306:这是你要连接的sql服务端口

  7、--mysql-user=test_user:这是你要连接的sql服务用户名

  8、--mysql-password=test_user:这是你要连接的sql服务密码

  9、--mysql-db=test_db --tables=20 --table_size=1000000:这一串的意思,就是说在test_db这个库里()这里并不会自动创建数据库),构造20个测试表,每个测试表里构造100万条测试数据,测试表的名字会是类似于sbtest1,sbtest2这个样子的

  10、oltp_read_write:这个就是说,执行oltp数据库的读写测试

  11、--db-ps-mode=disable:这个就是禁止ps模式

  12、最后有一个prepare,意思是参照这个命令的设置去构造出来我们需要的数据库里的数据,他会自动创建20个测试表,每个表里创建100万条测试数据,所以这个工具是非常的方便的。

对数据库进行360度的全方位测试

测试数据库的综合读写TPS

使用oltp_read_write模式 命令最后不是prepare,是run了,就是运行压测

sysbench --db-driver=mysql --time=300 --threads=10 --report-interval=1 --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=test_user --mysql-password=test_user --mysql-db=test_db --tables=20 --table_size=1000000 oltp_read_write --db-ps-mode=disable run

测试数据库的只读性能

使用oltp_read_only模式 命令最后oltp_read_write已经变成oltp_read_only了

sysbench --db-driver=mysql --time=300 --threads=10 --report-interval=1 --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=test_user --mysql-password=test_user --mysql-db=test_db --tables=20 --table_size=1000000 oltp_read_write --db-ps-mode=disable run

测试数据库的删除性能

使用oltp_delete

sysbench --db-driver=mysql --time=300 --threads=10 --report-interval=1 --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=test_user --mysql-password=test_user --mysql-db=test_db --tables=20 --table_size=1000000 oltp_delete --db-ps-mode=disable run  

测试数据路更新索引字段的性能

使用oltp_update_index

sysbench --db-driver=mysql --time=300 --threads=10 --report-interval=1 --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=test_user --mysql-password=test_user --mysql-db=test_db --tables=20 --table_size=1000000 oltp_update_index --db-ps-mode=disable run

测试数据库的更新非索引的性能

使用oltp_update_non_index

sysbench --db-driver=mysql --time=300 --threads=10 --report-interval=1 --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=test_user --mysql-password=test_user --mysql-db=test_db --tables=20 --table_size=1000000 oltp_update_non_index --db-ps-mode=disable run

测试数据库的插入性能

使用oltp_insert

sysbench --db-driver=mysql --time=300 --threads=10 --report-interval=1 --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=test_user --mysql-password=test_user --mysql-db=test_db --tables=20 --table_size=1000000 oltp_insert --db-ps-mode=disable run  

测试数据库的写入性能

使用oltp_write_only

sysbench --db-driver=mysql --time=300 --threads=10 --report-interval=1 --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=test_user --mysql-password=test_user --mysql-db=test_db --tables=20 --table_size=1000000 oltp_write_only --db-ps-mode=disable run

清理数据

sysbench --db-driver=mysql --time=300 --threads=10 --report-interval=1 --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=test_user --mysql-password=test_user --mysql-db=test_db --tables=20 --table_size=1000000 oltp_read_write --db-ps-mode=disable cleanup

压测结果分析

按照我们上面的命令,我们是让他每隔1秒都会输出一次压测报告的,此时他每隔一秒会输出类似下面的一段东西:

[ 22s ] thds: 10 tps: 380.99 qps: 7312.66 (r/w/o: 5132.99/1155.86/1321.35) lat (ms, 95%): 21.33 err/s: 0.00 reconn/s: 0.00

解释一下这是什么意思,首先他说的这是第22s输出的一段压测统计报告,然后是其他的一些统计字段:

thds: 10 这个意思就是有10个线程在压测
tps: 380.99 这个意思就是每秒执行了380.99个事务
qps: 7610.20 这个意思就是每秒可以执行7610.20个请求
(r/w/o: 5132.99/1155.86/1321.35) 这个意思就是说,在每秒7610.20个请求中,有5132.99个请求是读请求,1155.86个请求是写请求,1321.35个请求是其他的请求,就是对QPS进行了拆解l
at (ms, 95%): 21.33 这个意思就是说,95%的请求的延迟都在21.33毫秒以下
err/s: 0.00 reconn/s: 0.00 这两个的意思就是说,每秒有0个请求是失败的,发生了0次网络重连

这个压测结果会根据每个人的机器的性能不同有很大的差距,你要是机器性能特别高,那你可以开很多的并发线程去压测,比如100个线程,此时可能会发现数据库每秒的TPS有上千个,如果你的机器性能很低,可能压测出来你的TPS才二三十个,QPS才几百个,这都是有可能的。

另外在完成压测之后,最后会显示一个总的压测报告,我把解释写在下面了:

SQL statistics:

  queries performed:

    read: 1480084 // 这就是说在300s的压测期间执行了148万多次的读请求

    write: 298457 // 这是说在压测期间执行了29万多次的写请求

    other: 325436 // 这是说在压测期间执行了30万多次的其他请求

    total: 2103977 // 这是说一共执行了210万多次的请求

  transactions: 105180( 350.6 per sec. ) // 这是说一共执行了10万多个事务,每秒执行350多个事务

  queries: 2103977 ( 7013.26 per sec. )// 这是说一共执行了210万多次的请求,每秒执行7000+请求

  ignored errors: 0 (0.00 per sec.)

  reconnects: 0 (0.00 per sec.)

// 下面就是说,一共执行了300s的压测,执行了10万+的事务

General staticstics:

  total time: 300.0052s

  total number of events: 105180

Latency (ms):

  min: 4.32 // 请求中延迟最小的是4.32ms

  avg: 13.42 // 所有请求平均延迟是13.42ms

  max: 45.56 // 延迟最大的请求是45.56ms

  95th percentile: 21.33 // 95%的请求延迟都在21.33ms以内

  sum: 3003811.21 总共耗时xx ms

linux 安装 sysbench 和 使用的更多相关文章

  1. 搜狗输入法linux安装 以及 12个依赖包下载链接分享

    搜狗输入法linux安装版,先安装各种依赖包,大概12个依赖,可能中途还需要其他依赖,可以效仿解决依赖问题.如图这12个文件要是手动点击下载,那也太笨点了,我们要用shell命令批量下载.命令如下:w ...

  2. linux安装php

    接上篇:linux安装apache 一.安装php 先安装libxml2库 [root@ctxsdhy package]# yum -y install libxml2-devel 最新地址在:htt ...

  3. linux安装oracle11g

    准备oracle安装文件 Oracle11gR2包含两个文件linux_11gR2_database_1of2.zip和linux_11gR2_database_2of2.zip,将这两个文件通过SS ...

  4. TODO:Linux安装PHP MongoDB驱动

    TODO:Linux安装PHP MongoDB驱动 PHP利于学习,使用广泛,主要适用于Web开发领域. MongoDB的主要目标是在键/值存储方式(提供了高性能和高度伸缩性)以及传统的RDBMS系统 ...

  5. Symantec Backup Exec 2010 Agent For Linux安装

    以前写过一篇文章介绍过Symantec Backup Exec 2012 Agent For Linux安装安装,今天介绍一下Symantec Backup Exec 2010 Agent For L ...

  6. Symantec Backup Exec 2012 Agent For Linux安装

    Backup Exec 2012 介绍 Backup Exec 2012 是一种为虚拟和物理环境提供保护的集成产品,能够简化备份和灾难恢复,并提供了无可匹敌的恢复功能.借助于强大的 Symantec ...

  7. linux 安装jdk

    1.Linux安装JDK步骤1. 先从网上下载jdk(jdk-1_5_0_02-linux-i586.rpm) ,推荐SUN的官方网站www.sun.com,下载后放在/home目录中,当然其它地方也 ...

  8. Hadoop Linux安装

    Hadoop Linux安装 步骤流程 1.硬件准备 2.软件准备(推荐CDH) 3.将Hadoop安装包分发到各个节点下 4.安装JDK 5.修改/etc/hosts配置文件 6.设置SSH免密码登 ...

  9. 自己瞎捣腾的Win7下Linux安装之路-----理论篇

    接着上回说道,我把双系统做好啦,开心.... 之后我就在想几个问题: 1.在Ubuntu装好后,重启电脑却还是win7,等我用EasyBCD之后,才可选择使用装好的Ubuntu呢? 2.在用EasyB ...

  10. Debian 7(Linux) 安装SSH使用SecureCRT连接配置

    1 Debian 安装 ssh2 首先确保你的Debian或者linux安装ssh并开启ssh服务 Debian和ubuntu的安装方法一样,只要源OK的话,可以直接安装 apt-get instal ...

随机推荐

  1. python批量将png图片转换为jpg图片

    参考引用链接如下:https://www.freesion.com/article/1866518882

  2. Exp6 MSF应用基础

    目录 一.实践内容 1 一个主动攻击实践 漏洞介绍 1 攻击前的准备 2 执行攻击 2 一个针对浏览器的攻击 3 一个针对客户端的攻击,以office为例 4 辅助模块的使用 二.问题回答 1 用自己 ...

  3. 在前端js worker里使用dom并且加载jquery

    四个工具: nodejs + npm npm安装的jsdom npm安装的jquery npm安装的browserify 网址: browserify: https://browserify.org/ ...

  4. 软件工程实践总结&个人技术博客

    这个作业属于哪个课程 班级链接 这个作业要求在哪里 作业要求 这个作业的目标 总结课程与学到的技术回顾课程 其他参考文献 <构建之法><软件质量和测试> 目录 课程回顾与总结 ...

  5. vue+vant-ui移动端适配 宽高

    一:在vue中安装vant 1.npm i vant -S 2.npm i babel-plugin-import -D // 在.babelrc 中添加配置 { "plugins" ...

  6. Jmeter学习:文件类函数

    一.__StringFromFile 功能介绍: 从文件中读取一行数据,所有线程共享行数,依次读取,默认路径为$JMETER_HOME/bin/ ${__StringFromFile(参数 1,参数 ...

  7. css背景模糊化

    处理背景模糊化 在css中,可以利用filter属性和blur()函数实现高斯模糊效果,filter属性用于设置图片元素的可视效果,配合blur()函数使用可给图片元素添加高斯模糊效果,语法为&quo ...

  8. 【PS】PS如何删除图片中的白字

    [PS]PS如何删除图片中的白字 首先打开ps,然后导入要操作的图片,接着选择左边工具栏中的魔棒工具. 对所要操作的文字进行框选,可以按住shift键进行连续操作 点击上方工具栏中的选择 | 修改 | ...

  9. Delphi针对双字节字段处理

    针对有些特殊的中文字如"错畸形安氏I类"中""字,属于特殊字符,在Oracle数据库中必须以双字节方式存储,字段定义为nVarchar2(100). 在Delp ...

  10. Ftp连接-200 Switching to ASCII mode,227 Entering Passive Mode

    测试 ftp 服务器是否部署成功,最简单的方法,就是找个 windows 系统直连服务器,能连上就说明服务部署成功了.不过,有时候即使 ftp 服务部署成功了,windows 系统依然连接不上服务,这 ...