压测工具sysbench

一、安装

yum install gcc gcc-c++ autoconf automake make libtool bzr mysql-devel mysql libaio-devel

yum remove mariadb.x86_64 mariadb-devel.x86_64

sh install-mysql.sh --install=mysql --innodbbufferpoolsize=2G --datadir=/mysql/data --password=123321 --binlogdir=/mysql/binlog --id=1
sh install-mysql.sh --start=mysql --datadir=/mysql/data --password=123321 --slaveof=10.xx.xx.157

unzip sysbench-1.0.zip 
cd  sysbench-1.0/
# ./autogen.sh 
./configure --prefix=/usr --mandir=/usr/share/man --without-mysql
make -j
make install

修改sysbench相关配置
sudo sh -c 'for x in /sys/class/net/eth0/queues/rx-*;do echo f>$x/rps_cpus;done'
sudo sh -c 'echo 36728>/proc/sys/net/core/rps_sock_flow_entries '
sudo sh -c 'echo 4096>/sys/class/net/eth0/queues/rx-0/rps_flow_cnt'

sudo sh -c 'for x in /sys/class/net/bond0/queues/rx-*;do echo f>$x/rps_cpus;done'
sudo sh -c 'echo 36728>/proc/sys/net/core/rps_sock_flow_entries '
sudo sh -c 'echo 4096>/sys/class/net/bond0/queues/rx-0/rps_flow_cnt'

临时调整 ulimit 65535

测试完成后,需要再系统层做一些清理的工作
shell>sync #刷新脏数据到磁盘
shell>echo 3 >/proc/sys/vm/drop_cache #清除cache
echo 3 > /proc/sys/vm/drop_caches

shell>swapoff -a && swapon -a 释放swap
3.压测过程中需要修改参数max_prepared_stmt_count默认为16382,修改为65536
4.如果是SSD硬盘的话,innodb_io_capacity和innodb_io_capacity_max两个参数也要相应调大,建议调整到50000

二、使用

sysbench fileio 
--file-test-mode值说明(prepare run 必须一致):
seqwr顺序写入。
seqrewr顺序重写。
seqrd顺序读取。
rndrd随机读取。 
rndwr随机写入。 
rndrw混合随机读/写
--file-io-mode
sync同步
async异步
mmap

2.1CPU

sysbench --test=cpu --cpu-max-prime=2000 run

2.2内存

4C8G 带80GB数据盘1个,逻辑挂载/mysql

sysbench --db-driver=mysql --mysql-host=10.xx.xx.157 --mysql-port=3306  --mysql-user=root --mysql-password=123321  --mysql-db=mypartition --table_size=25000 --table=250 --events=0 --timeout=600 oltp_read_write prepare

sysbench --db-driver=mysql --mysql-host=10.xx.xx.157 --mysql-port=3306  --mysql-user=root --mysql-password=123321  --mysql-db=mypartition --table_size=25000 --table=250 --events=0 --timeout=600 --threads=16 --percentile=95 --report-interval=1 oltp_read_write run

sysbench --db-driver=mysql --mysql-host=10.xx.xx.157 --mysql-port=3306  --mysql-user=root --mysql-password=123321  --mysql-db=mypartition --table_size=25000 --table=250 --events=0 --timeout=600 --threads=16 --percentile=95  oltp_read_write  cleanup

2.3磁盘IO

sysbench --db-driver=mysql --mysql-host=192.168.X.X --mysql-port=3306  --mysql-user=root --mysql-password=123321  --mysql-db=mypartition --table_size=800000 --table=150 --events=0 --timeout=600 oltp_read_write prepare

sysbench --db-driver=mysql --mysql-host=192.168.X.X --mysql-port=3306  --mysql-user=root --mysql-password=123321  --mysql-db=mypartition --table_size=800000 --table=150  --events=0 --timeout=600 --threads=16 --percentile=95 --report-interval=1 oltp_read_write run

sysbench --db-driver=mysql --mysql-host=192.168.X.X --mysql-port=3306  --mysql-user=root --mysql-password=123321  --mysql-db=mypartition --table_size=800000 --table=150 --events=0 --timeout=600 --threads=16 --percentile=95  oltp_read_write  cleanup

2.4 线程

sysbench  --test=threads --num-threads=500 --thread-yields=100 --thread-locks=4 run

2.5oltp

1,prepare阶段,生成需要的测试表
sysbench --test=oltp --mysql-table-engine=innodb --mysql-host=192.168.X.X --mysql-db=test --oltp-table-size=500000 --mysql-user=root --mysql-password=123321 prepare
2,run阶段
sysbench --num-threads=16 --test=oltp --mysql-table-engine=innodb --mysql-host=192.168.x.x --mysql-db=test --oltp-table-size=500000 --mysql-user=root --mysql-password=123321 run
3,清理测试时生成的测试表
sysbench --num-threads=16 --test=oltp --mysql-table-engine=innodb --mysql-host=192.168.x.x --mysql-db=test --oltp-table-size=500000 --mysql-user=root --mysql-password=123321 cleanup

2.6

sysbench fileio --time=120 --threads=16 --file-test-mode=seqwr --file-io-mode=async --file-num=40 --file-block-size=16384 --file-total-size=20G --file-fsync-freq=100 --file-fsync-all=off --file-fsync-end=on --file-merged-requests=0 --file-rw-ratio=1 run

sysbench fileio --time=120 --threads=16 --file-test-mode=rndrw --file-io-mode=async --file-num=40 --file-block-size=16384 --file-total-size=20G --file-fsync-freq=100 --file-fsync-all=off --file-fsync-end=on --file-merged-requests=0 --file-rw-ratio=1.5 run

三、结果解析

File operations:
    reads/s:                      0.00 #每秒读次数
    writes/s:                     20850.83#每秒写次数
    fsyncs/s:                     8340.85#每秒从内存向磁盘同步的次数

/io类型测试
Throughput: #吞吐量
    read, MiB/s:                  0.00
    written, MiB/s:               325.79

/cpu类型测试
CPU speed: events per second: 4500.61 #每秒创建 events 数量

General statistics:
    total time:                          60.0105s # --time 执行测试的时间
    total number of events:              1752371  #总共创建的 events 数量

Latency (ms):
         min:                                    0.01 #最小执行时间
         avg:                                    0.03
         max:                                   10.71
         95th percentile:                        0.05#95% events 执行时间
         sum:                                59314.03#总时间

Threads fairness:# 与线程相关的指标
    events (avg/stddev):           1752371.0000/0.00 # 事件(平均值/偏差)
    execution time (avg/stddev):   59.3140/0.00# 执行时间(平均值/偏差)

四、其他

忘记密码:
1./etc/my.cnf的[mysqld]中添加skip-grant-tables
2.重启mysql
3.mysql
>use mysql;(使用mysql数据库)
>update user set password=password("你的密码") where user="root";
>flush privileges;
>quit
4.编辑my.cnf,去掉刚才添加的内容,然后重启MySQL

获取临时密码:
mysqld --no-defaults --user=mysql --datadir=/mysql/data --initialize

  • 12
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值