zoukankan      html  css  js  c++  java
  • sysbench测试服务器性能

    sysbench目前已经有0.5的版本,不过最普遍使用的依旧是0.4.12,所以接下来我们会以0.4.12这个版本作为测试

    Step1:下载安装sysbench

    wget http://pkgs.fedoraproject.org/repo/pkgs/sysbench/sysbench-0.4.12.tar.gz/3a6d54fdd3fe002328e4458206392b9d/sysbench-0.4.12.tar.gz
    tar zxvf sysbench-0.4.12.tar.gz
    yum install libtool.x86_64 openssl-devel.x86_64 openssl-static.x86_64
    cd sysbench-0.4.12/
    libtoolize --force --copy
    ./autogen.sh
    ./configure --prefix=/usr/local/sysbench
    make
    make install

    Step2: 执行测试脚本(请不要直接粘贴此脚本到你机器上运行,除非你知道它在做什么):

    [root@DBServer data]# cat sysbench_all.sh 
    #!/bin/bash
    
    
    result_dir='/data/result'
    io_file_dir='/data/iotest'
    
    if [ ! -d $result_dir ];
    then 
       mkdir $result_dir
    fi
    
    #------------------------------fileio test-----------------------------------
    ###RAND WRITE 1 - 16 thread
    if [ ! -d $io_file_dir ];
    then
       mkdir $io_file_dir
    fi
    
    cd $io_file_dir
    
    #sysbench --test=fileio --file-total-size=256G --file-num=64 prepare
    #sleep 10
    
    for rwtype in seqwr seqrewr seqrd rndrd rndwr rndrw;
    do
      for numthread in 1 2 4 8 10 16 20 32 40;
        do
           sysbench --test=fileio --file-total-size=256G --file-test-mode=$rwtype --max-time=600 --max-requests=0 --file-block-size=4K --file-num=64 --num-threads=$numthread run >> $result_dir/io_${rwtype}_thread${numthread}.txt ;
           sleep 10;
      done
    done
    
    
    
    #-----------------------------cpu test--------------------------------
       
    for each in 1 `seq 2 2 40`; 
    do 
        sysbench --test=cpu --cpu-max-prime=40000 --num-threads=$each run >> $result_dir/CPU_thread$each.txt  ;
        sleep 10
    done
    
    #------------------------------ram test--------------------------------
    
    # for read
    for each in 1 `seq 2 4 40`; 
    do 
        sysbench --test=memory --memory-block-size=4K --memory-scope=global --memory-total-size=256G --memory-oper=read --num-threads=$each run >> $result_dir/RamRead_thread$each.txt  ;  
        sleep 10 ; 
    done
    
    
    #for write
    for each in 1 `seq 2 4 40`; 
    do 
       sysbench --test=memory --memory-block-size=4K --memory-scope=global --memory-total-size=256G --memory-oper=write --num-threads=$each run >> $result_dir/RamWrite_thread$each.txt  ; 
       sleep 10; 
    done
    
    #--------------------------mysql test------------------------------
    
    # start mysql
    mysqld_safe --defaults-file=/data/mysql/my3306.cnf &
    
    #wait mysql startup completely
    sleep 20
    
    #prepare  10000000 is 2G
    #sysbench --test=oltp --db-driver=mysql --mysql-host=127.0.0.1 --mysql-user=root --mysql-password=123 --mysql-db=t_sysbench --oltp-table-size=10000000 --num-threads=40 prepare
    
    # only read
    for each in 1 4 8 16 20 32 40;
    do
        sysbench --test=oltp --oltp-table-size=10000000 --db-driver=mysql --mysql-host=127.0.0.1 --mysql-db=t_sysbench --mysql-user=root --mysql-password=123 --max-time=900 --oltp-read-only=on --max-requests=0 --num-threads=$each run >> $result_dir/mysql_read_thread$each.txt
        sleep 20
    done
    
    #read and write
    for each in 1 4 8 16 20 32 40;
    do
        sysbench --test=oltp --oltp-table-size=10000000 --db-driver=mysql --mysql-host=127.0.0.1 --mysql-db=t_sysbench --mysql-user=root --mysql-password=123 --max-time=900 --max-requests=0 --num-threads=$each run >> $result_dir/mysql_rw_thread$each.txt
      sleep 20
    done
    
    mysqldadmin -uroot -p123 -h127.0.0.1 shutdown

    Step3:分析处理,需要用到类似如下的处理分析脚本(以分析mysql为例)

    [root@DBServer result]# awk -F '[():]' '/Number of threads:/{printf $2 "	"} /transactions:/{printf $3 "	"} /deadlocks:/{printf $2 "	"}  /read/write requests:/{printf $3 "	"}  /approx.  95 percentile:/{printf $2 "
    "}' mysql_rw_thread* | sort -k 1 -n
     1    403.66 per sec.                               0          7669.51 per sec.                      2.83ms
     4    1409.01 per sec.                               0          26771.12 per sec.                   3.20ms
     8    2704.40 per sec.                               3          51383.70 per sec.                   3.30ms
     16    4032.52 per sec.                               8          76618.00 per sec.                   4.51ms
     20    4504.20 per sec.                               12         85580.07 per sec.                   5.29ms
     32    5549.82 per sec.                               48         105447.54 per sec.                   8.58ms
     40    5920.90 per sec.                               108        112499.04 per sec.                  11.54ms

    参考资源:

    https://wiki.mikejung.biz/Sysbench

  • 相关阅读:
    DetachedCriteria的使用
    Windows 9立即公布了
    加壳学习笔记(三)-简单的脱壳思路&调试思路
    用异或来交换两个变量能提快速度是错误的
    珍爱生命,举手之劳__怎样优雅的叫优步专车
    【翻译自mos文章】使用aum( Automatic Undo Management) 时遇到 ORA-01555错误--- 原因和解决方式。
    HDU 5311 Hidden String (优美的暴力)
    ChargeSystem——One,Two,Three
    GCC编译uboot出现(.ARM.exidx+0x0): undefined reference to `__aeabi_unwind_cpp_pr0'错误的解决的方法
    java中commons-beanutils的介绍
  • 原文地址:https://www.cnblogs.com/zejin2008/p/5593557.html
Copyright © 2011-2022 走看看