sysbench基准性能测试工具

发表于:2017-9-18 14:04

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:采风JS    来源:51Testing软件测试网采编

  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 响应时间 并发量(与连接数不同)
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号