安装  

执行 下载命令

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. nextLine和hasNextLine的区别

    == 重点:如果要判断一个文件这一行是否还有可读数据不能通过nextLine != null 来判断,要用hasNextLine是否为真来判断. == 1.nextLine: 公共字符串nextLin ...

  2. virtualbox vbox硬件级虚拟机去除虚拟化过检测 批量修改启动克隆 vbox超级加强版 V2022

     vbox硬件级虚拟机-2020年12月新内核6.0发布  软件价格500每套(特价促销 原价800)咨询ΩΩ: 131 1190 882 软件绑定加密狗使用,不绑定电脑购买后发加密狗,等收到加密狗后 ...

  3. 解决habbybase 操作hbase报错TTransportException(type=4,message=’TSocket read 0 bytes)

    1.确认集群的协议是否一致,在连接的时候,改成一致的.例如集群配置的是TFramedTransport,TCompactProtocol 时 改成 connection = happybase.Con ...

  4. vue2 element-ui组件二封-表单组件-按钮封装

    这里是一段我们公司过往项目的代码(增删改查项目中的查询/重置按钮) <el-button @click="query()" type="primary" ...

  5. 洛谷 P5721 【入门3】循环结构

    P5723 [深基4.例13]质数口袋 1.题目描述 小 A 有一个质数口袋,里面可以装各个质数.他从 2 开始,依次判断各个自然数是不是质数,如果是质数就会把这个数字装入口袋. 口袋的负载量就是口袋 ...

  6. NLB+ARR实现IIS下的高可用性负载均衡

    NLB+ARR实现IIS下的高可用性负载均衡 场景: 高可用/可伸缩集群: NLB部署: 很简单, 暂略.   3.ARR部署 ARR全称叫Application Request Router, 是I ...

  7. CSS中的选择( ::selection和user-select)

      CSS中的选择( ::selection和user-select) 在网络上,我们出于不同原因选择内容,也许我们想复制文本并在某处引用它.对于移动端来说,选择内容比较难,我不喜欢在移动端选择内容. ...

  8. .net中微信、支付宝回调

    需求:自助机调用接口生成二维码,用户扫描二维码付款后,回调方法里写入到数据库,自助机轮询查数据库判断用户是否付款. 1 using bk.Services.Log; 2 using bk.web.Co ...

  9. 写于vue3.0发布前夕的helloworld之三

    接上,watcher构造函数: var Watcher = function Watcher (     vm,     expOrFn,     cb,     options,     isRen ...

  10. Ingress限流

    先说结论: ingress节点数量=n0 ingress限流配置 nginx.ingress.kubernetes.io/limit-rps: "n1"   nginx.ingre ...