2.1 测试数据库服务器的硬件配置信息如下:
CPU: 24核心线程数,Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz
MEM: 64G,8*8G=64G
DISK: 15000转/秒
2.2 对磁盘IO性能的测试:
2.2.1 创建fileio文件
创建初始化fileio文件:
[root@db-master sysbench]# sysbench --test=fileio --file-num=16 --file-total-size=2G prepare
sysbench 0.4.12: multi-threaded system evaluation benchmark
16 files, 131072Kb each, 2048Mb total
Creating files for the test...
2.2.1 开始fileio测试
接下来开始对这些文件进行测试,使用16个线程随机读进行测试结果如下:
[root@db-master sysbench]# sysbench --test=fileio --file-total-size=2G --file-test-mode=rndrd --max-time=180 --max-requests=100000000 --num-threads=16 --init-rng=on --file-num=16 --file-extra-flags=direct --file-fsync-freq=0 --file-block-size=16384 run
可以看到随机读取的性能为75.988Mb/sec,随机读的IOPS为4863.25 Requests/sec.说明服务器的硬件配置还不错。
2.2.3 测试完成执行cleanup
测试结束后,记得执行cleanup,以确保测试所产生的文件都已删除:
[root@db-master sysbench]# sysbench --test=fileio --file-num=16 --file-total-size=2G cleanup
sysbench 0.4.12: multi-threaded system evaluation benchmark
Removing test files...
如果需要测试seqwr(顺序写), seqrewr(顺序读写), seqrd(顺序读), rndrd(随机读), rndwr(随机写), rndrw(随机读写)等6种模式,并且还可能需要测试不同的线程和不同的文件块下磁盘的性能表现,这时,可以使用如下脚本达到测试目的。
测试脚本内容如下:
#!/bin/bash
#==============================================================================
#
# FILE: sysbench_auto.sh
#
# USAGE: ./sysbench_auto.sh
#
# DESCRIPTION: This file is sysbench_auto.sh
# AUTHOR: Kevin Lu (kevin), kevin@gmail.com
# ORGANIZATION: cmcc
# CREATED: 02/26/2014 17:35
# REVISION: v1.0.1
#==============================================================================
for size in {8G,64G}
do
for mode in {seqwr,seqrewr,seqrd,rndrd,rndwr,rndrw}
do
for blksize in {4096,16384}
do
sysbench --test=fileio --file-num=64 --file-total-size=$size prepare
for threads in {1,4,8,16,32}
do
echo "=============testing $blksize in $threads threads"
echo PARAS $size $mode $threads $blksize > sysbench-size-$size-mode-$mode-threads-$threads-blksz-$blksize
for i in {1,2,3}
do
sysbench --test=fileio --file-total-size=$size --file-test-mode=$mode --max-time=180 --max-requests=100000 --num-threads=$threads --
init-rng=on --file-num=64 --file-extra-flags=direct --file-fsync-freq=0 --file-block-size=$blksize run|tee -a sysbench-size-$size-mo
de-$mode-threads-$threads-blksz-$blksize 2>&1
done
done
sysbench --test=fileio --file-total-size=$size cleanup
done
done
done
-- 脚本运行后,在当前目录下会生成如下文件:
3.1 对mysql事务型OLTP的测试:
3.1.1 prepare准备阶段
对于mysql的OLTP测试,和file一样,同样需要经历prepare,run,cleanup三个阶段。prepare阶段会在数据库中产生一张指定行数的表,默认表在sbtest架构下,表名为
sbtest(sysbench默认生成表的存储引擎为innodb),如创建一张8000万条记录的表:
[root@db-master sysbench]# sysbench --test=oltp --oltp-table-size=80000000 --db-driver=mysql --mysql-socket=/data/mysqlsoft3307/mysql.sock --mysql-user=dba_manager --mysql-password='111111' --mysql-db=test prepare
sysbench 0.4.12: multi-threaded system evaluation benchmark
Creating table 'sbtest'...
Creating 10 records in table 'sbtest'...
3.1.2 run运行测试
接下来对上面产生的表进行oltp的测试:
[root@db-master sysbench]# sysbench --test=oltp --oltp-table-size=80000000 --oltp-read-only=off --init-rng=on --num-threads=16 --max-requests=0 --oltp-dist-type=uniform --max-time=3600 --mysql-user=dba_manager --mysql-password='111111' --db-driver=mysql --mysql-socket=/data/mysqlsoft3307/mysql.sock run > result.log
参数说明:
--max-time=3600 指定测试时长为1小时
--mysql-db=test 指定测试的数据库名
[root@db-master sysbench]# cat result.log
sysbench 0.4.12: multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 16
Initializing random number generator from timer.
Doing OLTP test.
Running mixed OLTP test
Using Uniform distribution
Using "BEGIN" for starting transactions
Using auto_inc on the id column
Threads started!
Time limit exceeded, exiting...
(last message repeated 15 times)
Done.
OLTP test statistics:
queries performed:
read: 137346874
write: 49052449
other: 19620980
total: 206020303
transactions: 9810489 (2725.13 per sec.)
deadlocks: 2 (0.00 per sec.)
read/write requests: 186399323 (51777.50 per sec.)
other operations: 19620980 (5450.26 per sec.)
Test execution summary:
total time: 3600.0060s
total number of events: 9810489
total time taken by event execution: 57542.1464
per-request statistics:
min: 3.00ms
avg: 5.87ms
max: 212.09ms
approx. 95 percentile: 8.44ms
Threads fairness:
events (avg/stddev): 613155.5625/1486.47
execution time (avg/stddev): 3596.3842/0.01
以上测试结果显示了很多操作的详细信息,transactions代表测试结果的评判标准即TPS,上述测试结果是 2725.13 per sec.
可以对数据库进行调优后,再使用sysbench对OLTP进行测试,看看TPS是不是会有所提高。
文章转自:http://blog.chinaunix.net/uid-7589639-id-4126046.html
相关推荐
MySQL 压力测试工具 sysbench 介绍 sysbench 是一个模块化的、跨平台、多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况。目前 sysbench 主要支持 MySQL, pgsql, oracle 这 3 种数据库。 ...
总的来说,sysbench作为一个强大的数据库性能测试工具,能够帮助我们深入了解数据库在各种工作负载下的表现。sysbench0.5和sysbench1.1的双版本设计,不仅覆盖了传统的Oracle数据库,还拓展到了中国本土的达梦数据库...
sysbench 是一个模块化的、跨平台、多线程基准测试工具,可以对数据库服务器进行压力测试和基准测试。它可以模拟多种工作负载场景,对数据库服务器的性能进行评估。 知识点 2:sysbench 测试环境 在本文中,我们...
MySQL压力测试工具——sysbench详解 sysbench是一个强大的多线程、多事件驱动的系统和数据库性能测试工具。它不仅可以评估系统的CPU、内存、磁盘I/O等硬件性能,还能针对MySQL数据库进行复杂的基准测试,帮助开发者...
Sysbench是一款多线程、多功能的系统性能基准测试工具,尤其在数据库性能评估和压力测试方面,被广泛应用于MySQL数据库的性能优化与测试。本文将详细介绍如何搭建Sysbench环境以及如何进行有效的压力测试实践。 ...
`sysbench`是一款多用途的压力测试工具,广泛用于评估系统的性能,特别是在数据库、CPU、内存以及文件I/O等方面。它最初设计是用来测试MySQL数据库的性能,但随着时间的推移,其功能得到了扩展,现在可以应用于各种...
`sysbench`是一款开源的多线程性能基准测试工具,主要用在数据库系统上,但也可用于评估系统的整体性能,包括CPU、内存、磁盘I/O等。它提供了丰富的测试场景,比如OLTP(在线事务处理)操作、CPU压力测试、文件IO...
"linux压力测试工具"通常指的是那些专为Linux设计的工具,它们可以模拟多种工作负载,对CPU、内存、磁盘I/O和网络等方面进行压力测试。 一、CPU压力测试工具 1. **stress**: stress是一个轻量级的命令行工具,它...
sysbench是一款功能强大的系统性能基准测试工具,尤其在MySQL数据库的读写性能测试方面被广泛使用。它不仅可以评估数据库的吞吐量(tps,每秒事务处理量)、查询速率(qps,每秒查询量),还能衡量I/O操作的速度...
sysbench是一个多线程、多事件驱动的性能测试和基准测试工具,主要用于评估和比较数据库系统的性能。在这个sysbench-1.0.19.zip压缩包中,包含的是sysbench的源代码,为用户提供了一种强大的方式来测试MySQL数据库的...
sysbench是一款强大的多线程、跨平台的系统性能基准测试工具,广泛应用于评估系统的CPU、内存、I/O等各项性能。在本文中,我们将深入探讨如何在基于ARM架构的设备上使用sysbench-1.0.20.tar.gz进行CPU性能测试,以及...
基准测试与压力测试 基准测试可以理解为针对系统的一种压力测试。但基准测试不关心业务逻辑,更加简单、直接、易于测试,数据可以由工具生成,不要求真实;而压力测试一般考虑业务逻辑(如购物车业务),要求真实的...
sysbench是由Anton Kapela开发的一款多线程、多事件驱动的性能测试工具,其设计目标是提供一个灵活且易于使用的系统性能评估环境。sysbench-0.4.12作为较早的版本,尽管相比最新的sysbench版本可能功能有所限制,但...
sysbench是一款多线程、跨平台的系统性能基准测试工具,主要用于评估和分析Linux系统的各种性能指标,包括CPU、内存、磁盘I/O等。sysbench 0.5是该工具的一个特定版本,提供了更稳定和优化的性能测试功能。在本文中...
sysbench是一款强大的多线程性能基准测试工具,主要应用于数据库系统、操作系统以及CPU性能的评估。它由Alexey Kopytov开发,并在GitHub上开源,链接为<https://github.com/akopytov/sysbench>。sysbench的最新版本...
**sysbench** 是一个强大的多线程基准测试工具,主要用于评估和测试系统的各种性能,包括数据库性能、I/O性能、CPU性能以及内存性能等。它是一个开源项目,由Anton Kokalj开发,并且在Linux环境中广泛使用。sysbench...
1. **sysbench介绍**:sysbench是由Antonin Houska开发的一款强大的性能测试工具,它可以用来做系统压力测试、CPU基准测试、内存性能测试、磁盘IO性能测试,以及数据库的OLTP(在线事务处理)性能测试。 2. **版本...