iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >怎样进行mysql sysbench1.0.3 安装以及系统压力测试
  • 564
分享到

怎样进行mysql sysbench1.0.3 安装以及系统压力测试

2023-06-06 01:06:15 564人浏览 薄情痞子
摘要

今天就跟大家聊聊有关怎样进行mysql  sysbench1.0.3 安装以及系统压力测试,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。针对系统和数据库压测是项目上线前必做

今天就跟大家聊聊有关怎样进行mysql  sysbench1.0.3 安装以及系统压力测试,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

针对系统和数据库压测是项目上线前必做的一项,这里使用的是最新版本的sysbench做的压测使用详解。sysbench可以做系统层面的压力测试(CPU、内存、硬盘io、互斥、Thead),也可以做数据库Mysql/oracle/PG)层面的压力测试。安装容易,操作便捷,是压测使用的重要工具之一。
一、sysbench下载
项目地址:https://launchpad.net/sysbench    
下载地址:Https://GitHub.com/akopytov/sysbench/arcHive/1.0.3.tar.gz
二、sysbench安装
[root@DB_TEST tools]# tar -xzvf sysbench-1.0.3.tar.gz
[root@DB_TEST tools]# cd sysbench-1.0.3
[root@DB_TEST sysbench-1.0.3]# ./autogen.sh
[root@DB_TEST sysbench-1.0.3]#./configure  --prefix=/usr/local/sysbench --with-mysql
[root@DB_TEST sysbench-1.0.3]# make
[root@DB_TEST sysbench-1.0.3]# make install
[root@DB_TEST sysbench-1.0.3]#  cp -rp /usr/local/sysbench/bin/sysbench  /usr/bin/
[root@DB_TEST sysbench-1.0.3]# /usr/local/sysbench/bin/sysbench --help   
点击(此处)折叠或打开

  1. [root@BJ-133-22 sysbench-1.0.3]# /usr/local/sysbench/bin/sysbench --help

  2. Usage:

  3. sysbench [options]... [testname] [command]

  4. Commands implemented by most tests: prepare run cleanup help

  5. General options:

  6. --threads=N number of threads to use [1]

  7. --events=N limit for total number of events [0]

  8. --time=N limit for total execution time in seconds [10]

  9. --forced-shutdown=STRING number of seconds to wait after the --time limit before forcing shutdown, or 'off' to disable [off]

  10. --thread-stack-size=SIZE size of stack per thread [64K]

  11. --rate=N average transactions rate. 0 for unlimited rate [0]

  12. --report-interval=N periodically report intermediate statistics with a specified interval in seconds. 0 disables intermediate reports [0]

  13. --report-checkpoints=[LIST,...] dump full statistics and reset all counters at specified points in time. The argument is a list of comma-separated values representing the amount of time in seconds elapsed from start of test when report checkpoint(s) must be perfORMed. Report checkpoints are off by default. []

  14. --debug[=on|off] print more debugging info [off]

  15. --validate[=on|off] perform validation checks where possible [off]

  16. --help[=on|off] print help and exit [off]

  17. --version[=on|off] print version and exit [off]

  18. --config-file=FILENAME File containing command line options

  19. --tx-rate=N deprecated alias for --rate [0]

  20. --max-requests=N deprecated alias for --events [0]

  21. --max-time=N deprecated alias for --time [0]

  22. --num-threads=N deprecated alias for --threads [1]

  23. Pseudo-Random Numbers Generator options:

  24. --rand-type=STRING random numbers distribution {uniform,gaussian,special,pareto} [special]

  25. --rand-spec-iter=N number of iterations used for numbers generation [12]

  26. --rand-spec-pct=N percentage of values to be treated as 'special' (for special distribution) [1]

  27. --rand-spec-res=N percentage of 'special' values to use (for special distribution) [75]

  28. --rand-seed=N seed for random number generator. When 0, the current time is used as a RNG seed. [0]

  29. --rand-pareto-h=N parameter h for pareto distibution [0.2]

  30. Log options:

  31. --verbosity=N verbosity level {5 - debug, 0 - only critical messages} [3]

  32. --percentile=N percentile to calculate in latency statistics (1-100). Use the special value of 0 to disable percentile calculations [95]

  33. --histogram[=on|off] print latency histogram in report [off]

  34. General database options:

  35. --db-driver=STRING specifies database driver to use ('help' to get list of available drivers)

  36. --db-ps-mode=STRING prepared statements usage mode {auto, disable} [auto]

  37. --db-debug[=on|off] print database-specific debug information [off]

  38. Compiled-in database drivers:

  39. mysql - MySQL driver

  40. mysql options:

  41. --mysql-host=[LIST,...] MySQL Server host [localhost]

  42. --mysql-port=[LIST,...] MySQL server port [3306]

  43. --mysql-Socket=[LIST,...] MySQL socket

  44. --mysql-user=STRING MySQL user [sbtest]

  45. --mysql-passWord=STRING MySQL password []

  46. --mysql-db=STRING MySQL database name [sbtest]

  47. --mysql-ssl[=on|off] use SSL connections, if available in the client library [off]

  48. --mysql-ssl-cipher=STRING use specific cipher for SSL connections []

  49. --mysql-compression[=on|off] use compression, if available in the client library [off]

  50. --mysql-debug[=on|off] trace all client library calls [off]

  51. --mysql-ignore-errors=[LIST,...] list of errors to ignore, or "all" [1213,1020,1205]

  52. --mysql-dry-run[=on|off] Dry run, pretend that all MySQL client api calls are successful without executing them [off]

  53. Compiled-in tests:

  54. fileio - File I/O test

  55. cpu - CPU performance test

  56. memory - Memory functions speed test

  57. threads - Threads subsystem performance test

  58. mutex - Mutex performance test

  59. See 'sysbench help' for a list of options for each test.

三、sysbench使用
1、CPU性能测试

cpu性能测试:找范围内最大素数{时间越短越好}

cpu性能测试主要是根据素数的加法运算,这里指定最大素数(质数)为80000,--num-threads=`grep "processor" /proc/cpuinfo | wc -l`指定线程数,默认是1

/usr/local/sysbench/bin/sysbench --test=cpu --cpu-max-prime=80000 run

点击(此处)折叠或打开

  1. [root@db_test ~]# /usr/local/sysbench/bin/sysbench --test=cpu --cpu-max-prime=80000 run

  2. WARNING: the --test option is deprecated. You can pass a script name or path on the command line without any options.

  3. sysbench 1.0.3 (using bundled luaJIT 2.1.0-beta2)

  4. Running the test with following options:

  5. Number of threads: 1

  6. Initializing random number generator from current time

  7. Prime numbers limit: 80000

  8. Initializing worker threads...

  9. Threads started!

  10. General statistics:

  11. total time: 10.0057s

  12. total number of events: 520

  13. Latency (ms):

  14. min: 18.74

  15. avg: 19.24

  16. max: 19.39

  17. 95th percentile: 19.29

  18. sum: 10005.32

  19. Threads fairness:

  20. events (avg/stddev): 520.0000/0.00

  21. execution time (avg/stddev): 10.0053/0.00

实际环境CPU拷机压测脚本如下:

echo -e "进行CPU压力测试: 寻找小于1千万的最大质数,并发线程数10,最大请求数100 "

/usr/local/bin/sysbench --num-threads=10 --max-requests=100 --test=cpu --debug --cpu-max-prime=10000000 run


2、内存性能测试

sysbench 测试memory的时候是顺序读或写内存的。根据选项的不同,每次操作过程中,每个线程可以获取global或本地的数据块

内存:以不同块大小传输一定数量的数据吞吐量大小{越大越好}

点击(此处)折叠或打开

  1. [root@db_test fileio]# /usr/local/sysbench/bin/sysbench --test=memory help

  2. WARNING: the --test option is deprecated. You can pass a script name or path on the command line without any options.

  3. sysbench 1..3 (using bundled LuaJIT 2.1.-beta2)

  4. memory options:

  5.   --memory-block-size=SIZE size of memory block for test [1K]  测试时内存块大小

  6.   --memory-total-size=SIZE total size of data to transfer [100G] 传输数据总大小

  7.   --memory-scope=STRING memory access scope {global,local} [global]  内存访问范围

  8.   --memory-hugetlb[=on|off] allocate memory from HugeTLB pool [off] 从<span "="" style="color: rgb(0, 0, 0); font-size: 10.5pt;"> HugeTLB pool内存分配

  9.   --memory-oper=STRING type of memory operations {read, write, none} [write] 内存操作类型

  10.   --memory-access-mode=STRING memory access mode {seq,rnd} [seq] 存储器存取方式

示例:测试传输数据总量为5G,每个块大小是1K(一般设置是8K),连续读写的情况下,吞吐量3435.87 MiB/sec
[root@db_test fileio]# /usr/local/sysbench/bin/sysbench --test=memory --memory-block-size=1K --memory-total-size=5G run
WARNING: the --test option is deprecated. You can pass a script name or path on the command line without any options.
sysbench 1.0.3 (using bundled LuaJIT 2.1.0-beta2)

Running the test with following options:
Number of threads: 1
Initializing random number generator from current timeInitializing worker threads...

Threads started!

Operations performed: 5242880 (3518332.06 ops/sec)

5120.00 MiB transferred (3435.87 MiB/sec)General statistics:
    total time:                          1.4883s
    total number of events:              5242880

Latency (ms):
         min:                                  0.00
         avg:                                  0.00
         max:                                  0.03
         95th percentile:                      0.00
         sum:                                631.01

Threads fairness:
    events (avg/stddev):           5242880.0000/0.00
    execution time (avg/stddev):   0.6310/0.00

实际内存压力测试脚本:

echo -e "进行内存压力测试: 测试范围32G,并发线程数10,最大请求数100, 读 "

/usr/local/bin/sysbench --num-threads=10 --max-requests=100 --test=memory --memory-block-size=8K --memory-total-size=${MEM}G --memory-oper=read run

echo -e "进行内存压力测试: 测试范围32G,并发线程数10,最大请求数100, 写 "

/usr/local/bin/sysbench --num-threads=10 --max-requests=100 --test=memory --memory-block-size=8K --memory-total-size=${MEM}G --memory-oper=write run


3、磁盘IO性能测试

IO性能测试:不同场景下IOPS{越大越好}

点击(此处)折叠或打开

  1. [root@db_test sysbench-1.0.3]# /usr/local/sysbench/bin/sysbench --test=fileio help

  2. WARNING: the --test option is deprecated. You can pass a script name or path on the command line without any options.

  3. sysbench 1.0.3 (using bundled LuaJIT 2.1.0-beta2)

  4. fileio options:

  5. --file-num=N number of files to create [128]

  6. --file-block-size=N block size to use in all IO operations [16384]

  7. --file-total-size=SIZE total size of files to create [2G]

  8. --file-test-mode=STRING test mode {seqwr, seqrewr, seqrd, rndrd, rndwr, rndrw}

  9. --file-io-mode=STRING file operations mode {sync,async,mmap} [sync]

  10. --file-async-backlog=N number of asynchronous operatons to queue per thread [128]

  11. --file-extra-flags=STRING additional flags to use on opening files {sync,dsync,direct} []

  12. --file-fsync-freq=N do fsync() after this number of requests (0 - don't use fsync()) [100]

  13. --file-fsync-all[=on|off] do fsync() after each write operation [off]

  14. --file-fsync-end[=on|off] do fsync() at the end of test [on]

  15. --file-fsync-mode=STRING which method to use for synchronization {fsync, fdatasync} [fsync]

  16. --file-merged-requests=N merge at most this number of IO requests if possible (0 - don't merge) [0]

  17. --file-rw-ratio=N reads/writes ratio for combined test [1.5]

--file-num=N                       创建测试文件数量,默认是 [128]
--file-block-size=N                测试时文件块大小,默认是[16384],即16K
--file-total-size=SIZE             测试文件的总大小,默认是 [2G]
--file-test-mode=STRING            测试模式 {seqwr(顺序写), seqrewr(顺序读写), seqrd(顺序读), rndrd(随机读), rndwr(随机写), rndrw(随机读写)}
--file-io-mode=STRING              文件操作模式{sync,async,mmap} [sync]
--file-extra-flags=STRING          使用额外的标志打开文件 {sync,dsync,direct} []
--file-fsync-freq=N                执行fsync()频率,0表示不使用,默认100
--file-fsync-all=[on|off]          每执行一次写操作执行一次fsync(),默认 [off]
--file-fsync-end=[on|off]          测试结束执行fsync(),默认 [on]
--file-fsync-mode=STRING           同步方法 {fsync, fdatasync} [fsync]
--file-merged-requests=N           如果可以,则合并IO请求数,默认0表示不合并
--file-rw-ratio=N                  测试读写比例,默认[1.5]

seqwr 顺序写入
seqrewr 顺序重写
seqrd 顺序读取
rndrd 随机读取
rndwr 随机写入
rndrw 混合随机读/写

FileIO示例01:prepare 命令创建了128个文件总共大小为10G ,文件读写模式为随机读写混合方式。run 命令则进行测试,并返回结果,cleanup 删除测试产生的文件!
##Fileio准备工作,生成测试数据(最好比内存的2倍大)
[root@db_test fileio]# /usr/local/sysbench/bin/sysbench  --num-threads=16 --test=fileio --file-total-size=10G --file-test-mode=rndrw prepare
WARNING: the --test option is deprecated. You can pass a script name or path on the command line without any options.
WARNING: --num-threads is deprecated, use --threads instead
sysbench 1.0.3 (using bundled LuaJIT 2.1.0-beta2)

128 files, 81920Kb each, 10240Mb total
Creating files for the test...
Extra file open flags: 0
Creating file test_file.0
...
Creating file test_file.127
10737418240 bytes written in 9.96 seconds (1027.97 MiB/sec).
##正式执行FileIO测试
[root@db_test fileio]# /usr/local/sysbench/bin/sysbench  --num-threads=16 --test=fileio --file-total-size=10G --file-test-mode=rndrw run
WARNING: the --test option is deprecated. You can pass a script name or path on the command line without any options.
WARNING: --num-threads is deprecated, use --threads instead
sysbench 1.0.3 (using bundled LuaJIT 2.1.0-beta2)

Running the test with following options:
Number of threads: 16
Initializing random number generator from current timeExtra file open flags: 0
128 files, 80MiB each
10GiB total file size
Block size 16KiB
Number of IO requests: 0
Read/Write ratio for combined random IO test: 1.50
Periodic FSYNC enabled, calling fsync() each 100 requests.
Calling fsync() at the end of test, Enabled.
Using synchronous I/O mode
Doing random r/w test
Initializing worker threads...

Threads started!File operations:
    reads/s:                      1449.16
    writes/s:                     965.91
    fsyncs/s:                     3083.55

Throughput:
    read, MiB/s:                  22.64
    written, MiB/s:               15.09

General statistics:
    total time:                          10.4176s
    total number of events:              57291

Latency (ms):
         min:                                  0.00
         avg:                                  2.87
         max:                                825.08
         95th percentile:                      0.17
         sum:                             164312.66

Threads fairness:
    events (avg/stddev):           3580.6875/469.53
    execution time (avg/stddev):   10.2695/0.08

IO密切相关的包括每秒请求数和总吞吐量,中请求数是(1449.16+965.91+3083.55)/s,吞吐量是(22.64+15.09)MB/s

##清理创建的文件
[root@db_test fileio]# /usr/local/sysbench/bin/sysbench  --num-threads=16 --test=fileio --file-total-size=10G --file-test-mode=rndrw cleanup
WARNING: the --test option is deprecated. You can pass a script name or path on the command line without any options.
WARNING: --num-threads is deprecated, use --threads instead
sysbench 1.0.3 (using bundled LuaJIT 2.1.0-beta2)

Removing test files...

实际环境FILEIO压力测试脚本:

echo -e "进行IO压力测试: 20个文件,每个10GB,随机读写 "

/usr/local/bin/sysbench --file-num=20 --num-threads=20 --test=fileio --file-total-size=${HDD}G --max-requests=1000000 --file-test-mode=rndrw prepare

/usr/local/bin/sysbench --file-num=20 --num-threads=20 --test=fileio --file-total-size=${HDD}G --max-requests=1000000 --file-test-mode=rndrw run

/usr/local/bin/sysbench --file-num=20 --num-threads=20 --test=fileio --file-total-size=${HDD}G --max-requests=1000000 --file-test-mode=rndrw cleanup

4、thread测试

线程调度:线程并发执行,循环响应信号量花费的时间{越少越好}
测试线程调度器的性能。对于高负载情况下测试线程调度器的行为非常有用

点击(此处)折叠或打开

  1. [root@db_test fileio]# /usr/local/sysbench/bin/sysbench --test=threads help

  2. WARNING: the --test option is deprecated. You can pass a script name or path on the command line without any options.

  3. sysbench 1.0.3 (using bundled LuaJIT 2.1.0-beta2)

  4. threads options:

  5. --thread-yields=N number of yields to do per request [1000] 每个请求产生多少个线程,默认[4096]

  6.   --mutex-locks=N number of mutex locks to do per thread [50000] 每个线程互斥锁的数量,默认 [50000]

  7.   --mutex-loops=N number of empty loops to do inside mutex lock [10000] 内部互斥锁的空循环数量,默认 [10000]

所有线程同时执行,获取短时间的mutex lock,以便测试mutex的实现!

示例:
[root@db_test fileio]# /usr/local/sysbench/bin/sysbench --test=mutex --mutex-num=4096 --mutex-locks=50000 --mutex-loops=20000 run 
WARNING: the --test option is deprecated. You can pass a script name or path on the command line without any options.
sysbench 1.0.3 (using bundled LuaJIT 2.1.0-beta2)

Running the test with following options:
Number of threads: 1
Initializing random number generator from current timeInitializing worker threads...

Threads started!General statistics:
    total time:                          0.0021s
    total number of events:              1

Latency (ms):
         min:                                  2.05
         avg:                                  2.05
         max:                                  2.05
         95th percentile:                      2.03
         sum:                                  2.05

Threads fairness:
    events (avg/stddev):           1.0000/0.00
    execution time (avg/stddev):   0.0020/0.00

看完上述内容,你们对怎样进行mysql  sysbench1.0.3 安装以及系统压力测试有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网数据库频道,感谢大家的支持。

您可能感兴趣的文档:

--结束END--

本文标题: 怎样进行mysql sysbench1.0.3 安装以及系统压力测试

本文链接: https://www.lsjlt.com/news/245406.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎样进行mysql sysbench1.0.3 安装以及系统压力测试
    今天就跟大家聊聊有关怎样进行mysql  sysbench1.0.3 安装以及系统压力测试,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。针对系统和数据库压测是项目上线前必做...
    99+
    2023-06-06
  • 怎么对Linux系统进行压力测试
    这篇文章将为大家详细讲解有关怎么对Linux系统进行压力测试,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。为什么你会想给你的 Linux 系统施加压力呢?因为有时你可能想知道当一个系统由于大量运行的进程、...
    99+
    2023-06-15
  • Linux中怎样安装使用http_load对服务器进行压力测试
    Linux中怎样安装使用http_load对服务器进行压力测试,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。http_load基于linux平台的一种性能测工具...
    99+
    2023-06-12
  • 如何在LINUX系统下安装MySQL压力测试工具super smack
    这篇文章主要介绍“如何在LINUX系统下安装MySQL压力测试工具super smack”,在日常操作中,相信很多人在如何在LINUX系统下安装MySQL压力测试工具super smack问题上存在疑惑,小编查阅了各式资料,整理出简单好用的...
    99+
    2023-06-10
  • Linux系统中如何使用FIO对硬盘进行压力测试
    这篇文章主要介绍Linux系统中如何使用FIO对硬盘进行压力测试,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!FIO是测试IOPS的非常好的工具,用来对磁盘进行压力测试和验证。磁盘IO是检查磁盘性能的重要指标,可以按...
    99+
    2023-06-27
  • 怎么在Linux系统的服务器上使用Memtester进行内存压力测试
    本篇内容介绍了“怎么在Linux系统的服务器上使用Memtester进行内存压力测试”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2023-06-12
  • 怎样进行LAMP源码安装以及如何搭建zabbix监控
    怎样进行LAMP源码安装以及如何搭建zabbix监控,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、系统环境检查,版本说明1)版本说明#ht...
    99+
    2024-04-02
  • CentOS emesene使用系统然后怎样进行编译安装
    本篇文章给大家分享的是有关CentOS emesene使用系统然后怎样进行编译安装,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。CentOS emesene使用经过长时间的发展...
    99+
    2023-06-16
  • xp系统下载SCSI硬盘的安装启动以及设置是怎样的
    这篇文章给大家介绍xp系统下载SCSI硬盘的安装启动以及设置是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。认识SCSI硬盘:每当SCSI又发表新规格的时候,SCSI硬盘便跟着同时支持新规格,着使得SCSI硬盘俨...
    99+
    2023-06-14
  • Windows系统中的TTF字体文件如何安装以及怎样解决TTF文件打不开的问题
    本篇文章为大家展示了TTF字体文件如何安装以及怎样解决TTF文件打不开,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。TTF文件是Windows系统下的字体文件,可通过系统自带的字体安装程序直接安装添...
    99+
    2023-06-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作