sysbench基准性能测试工具

sysbench是一款优秀的性能测试工具,可以对CPU/内存/线程/IO/数据库进行性能测试,一起来学习一下基本使用吧!以下内容来自于慕课网的学习分享!

一、sysbench安装

下载目录:
https://github.com/akopytov/sysbench/archive/0.5.zip
解压缩:
unzip sysbench-0.5.zip
进入目录:
cd sysbench
执行自动脚本:
./autogen.sh
编译参数设置:
./configure --with-mysql-includes=/usr/local/mysql/include/ 
--with-mysql-libs=/usr/mysql/lib/
编译:
make
安装:
make install

二、常用参数

--test FileIO:文件系统I/O性能测试 cpu:cpu性能测试 
       memory:内存性能测试 Oltp:测试执行具体的lua脚本
--mysql-db :执行基准测试的数据库名
--mysql-table-engine :执行基准测试的存储引擎
--oltp-tables-count :执行测试表的数量
--oltp-table-size :执行测试表中数据的行数
--num-threads :指定测试的并发线程的数量
--max-time :执行的最大的测试时间
--report-interval :多长时间输出一次统计信息
prepare :用于准备数据准备工作
run :开始进行测试
clear up :清除测试内容

三、基本测试

1-- cpu性能测试:计算素数到达10000的性能
sysbench --test=cpu --cpu-max-prime=10000 run

2-- 系统内存IO密集型测试:使系统进入IO密集阶段
查看系统内存大小:
free -m
查看磁盘剩余空间:
df -lh
测试数据准备:
sysbench --test=fileio --file-total-size=1G prepare
开始进行测试:
sysbench --test=fileio --num-threads=8 --init-rng=8
         --file-total-size=1G --file-test-mode=rndwr --report-interval=1 run

3--  数据库性能测试
建立数据库:
create database xidian;
赋予用户所有权限:
grant all privileges on *.* to lzw@'localhost' identified by 'Ichliebedich'
测试数据准备:
sysbench --test=./oltp.lua --mysql-table-engine=innodb 
         --olpt-table-size=10000 --mysql-db=xidian 
         --mysql-user=lzw --mysql-password=Ichliebedich --oltp-tables-count=10 
         --mysql-socket=/usr/local/mysql/data/mysql.sock prepare
收集系统状态:(后台方式收集)
bash .test_info.sh &
开始进行测试:
sysbench --test=./oltp.lua --mysql-table-engine=innodb 
         --olpt-table-size=10000 --mysql-db=xidian 
         --mysql-user=lzw --mysql-password=Ichliebedich --oltp-tables-count=10 
         --mysql-socket=/usr/local/mysql/data/mysql.sock run

查看收集信息:(到执行文件夹位置收集脚本)
  • 用于收集测试信息脚本
# !/bin/bash
INTERVAL=5
PREFIX=/home/imooc/benchmarks/$INTERVAL-sec-status
#RUNFILE用于循环标志
RUNFILE=/home/imooc/benchmarks/running
echo "1" > $RUNFILE
MYSQL=/usr/local/mysql/bin/mysql
$MYSQL -e "show global variables" >> mysql-variables
while test -e $RUNFILE; do 
         file=$(date +%F_%I)
         sleep=$(date +%s.%N | awk '{print 5 - ($1 % $5)})'
         sleep $sleep
         ts="$(date +"TS %s.%N %F %T")"
         loadavg="$(uptime)"
         echo "$ts $loadavg" >> $PREFIX-${file}-status
         $MYSQL -e "show global status" >> $PREFIX-${file}-status &
         echo "$ts $loadavg" >> $PREFIX-${file}-innodbstatus
         $MYSQL -e "show engine innodb status" >> $PREFIX-${file}-innodbstatus &
         echo "$ts $loadavg" >> $PREFIX-${file}-processlist
         $MYSQL -e "show full processlist\G" >> $PREFIX-${file}-processlist &
         echo $ts
done
echo Exiting because $RUNFILE does not exists          
  • 用于统计收集信息脚本
#!/bin/bash
# count test_info
awk '
  BEGIN {
       printf "#ts date time load QTS";
       fmt=" %2.f";
  }
  /^TS/ {
  ts = substr($2,1,index($2,".")-1);
  load = NF - 2;
  diff = ts - prev_ts;
  printf "\n%s %s %s %s",ts,$3,$4,substr($load,1,length($load)-1);
  prev_ts=ts;
  }
  /Queries/{
  printf fmt,($2-Queries)/diff;
  Queries=$2
  }
  ' "$@"

四、衡量指标

  • 常用四个指标
    TPS QPS 响应时间 并发量(与连接数不同)

你可能感兴趣的:(sysbench基准性能测试工具)