zoukankan      html  css  js  c++  java
  • sysbench 压力测试

    sysbench支持以下几种测试模式:
    1、CPU运算性能
    2、磁盘IO性能
    3、调度程序性能
    4、内存分配及传输速度
    5、POSIX线程性能
    6、数据库性能(OLTP基准测试)

    sysbench版本:
    [root@127-0-0-1 sysbench]# /u01/opt/sysbench/bin/sysbench --version
    sysbench 1.1.0

    CPU测试:
    [root@127-0-0-1 sysbench]# /u01/opt/sysbench/bin/sysbench cpu --cpu-max-prime=10000 run
    sysbench 1.1.0 (using bundled LuaJIT 2.1.0-beta3)

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


    Prime numbers limit: 10000

    Initializing worker threads...

    Threads started!

    CPU speed:
    events per second: 658.31

    Throughput:
    events/s (eps): 658.3125
    time elapsed: 10.0013s
    total number of events: 6584

    Latency (ms):
    min: 1.44
    avg: 1.52
    max: 3.07
    95th percentile: 1.52
    sum: 9998.21

    Threads fairness:
    events (avg/stddev): 6584.0000/0.00
    execution time (avg/stddev): 9.9982/0.00


    线程测试:
    [root@127-0-0-1 sysbench]# /u01/opt/sysbench/bin/sysbench threads help
    sysbench 1.1.0 (using bundled LuaJIT 2.1.0-beta3)

    threads options:
    --thread-yields=N number of yields to do per request [1000] #每个请求要执行的收益效率[1000]
    --thread-locks=N number of locks per thread [8] #每个线程的锁数[8]

    [root@127-0-0-1 sysbench]# /u01/opt/sysbench/bin/sysbench threads --thread-yields=1000 --thread-locks=2 run
    sysbench 1.1.0 (using bundled LuaJIT 2.1.0-beta3)

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


    Initializing worker threads...

    Threads started!


    Throughput:
    events/s (eps): 1349.6979
    time elapsed: 10.0008s
    total number of events: 13498

    Latency (ms):
    min: 0.73
    avg: 0.74
    max: 1.50
    95th percentile: 0.74
    sum: 9996.37

    Threads fairness:
    events (avg/stddev): 13498.0000/0.00
    execution time (avg/stddev): 9.9964/0.00


    磁盘IO测试:

    [root@127-0-0-1 sysbench]# /u01/opt/sysbench/bin/sysbench fileio help
    sysbench 1.1.0 (using bundled LuaJIT 2.1.0-beta3)

    fileio options:
    --file-num=N number of files to create [128] #代表生成文件的数量[128]
    --file-block-size=N block size to use in all IO operations [16384] #在所有IO操作中使用的块大小 [16384]
    --file-total-size=SIZE total size of files to create [2G] #要创建的文件的总大小 [2G]
    --file-test-mode=STRING test mode {seqwr, seqrewr, seqrd, rndrd, rndwr, rndrw} #测试模式 {seqwr, seqrewr, seqrd, rndrd, rndwr, rndrw}
    --file-io-mode=STRING file operations mode {sync,async,mmap} [sync] #文件操作模式 {sync,async,mmap} [sync]
    --file-async-backlog=N number of asynchronous operatons to queue per thread [128] #每个线程要排队的异步操作数 [128]
    --file-extra-flags=[LIST,...] list of additional flags to use to open files {sync,dsync,direct} [] #用于打开文件的附加标志列表 {sync,dsync,direct} []
    --file-fsync-freq=N do fsync() after this number of requests (0 - don't use fsync()) [100] #执行fsync()函数的频率。fsync主要是同步磁盘文件,因为可能有系统和磁盘缓冲的关系。 0代表不使用fsync函数。默认值为100。
    --file-fsync-all[=on|off] do fsync() after each write operation [off] #每执行完一次写操作,就执行一次fsync。默认为off。
    --file-fsync-end[=on|off] do fsync() at the end of test [on] #在测试结束时执行fsync函数。默认为on。
    --file-fsync-mode=STRING which method to use for synchronization {fsync, fdatasync} [fsync] #文件同步函数的选择,同样是和API相关的参数,由于多个操作系统对于fdatasync支持不同,因此不建议使用fdatasync。默认为fsync。
    --file-merged-requests=N merge at most this number of IO requests if possible (0 - don't merge) [0] #大多情况下,合并可能的IO的请求数,默认为0。
    --file-rw-ratio=N reads/writes ratio for combined test [1.5] # 测试时的读写比例,默认时为1.5,即可3:2。

    /u01/opt/sysbench/bin/sysbench fileio --threads=16 --file-total-size=2G --file-test-mode=rndrw prepare #准备
    /u01/opt/sysbench/bin/sysbench fileio --threads=16 --file-total-size=2G --file-fsync-freq=0 --file-test-mode=rndrw run #运行
    /u01/opt/sysbench/bin/sysbench fileio --threads=16 --file-total-size=2G --file-test-mode=rndrw cleanup #清理

    [root@127-0-0-1 yoon]# /u01/opt/sysbench/bin/sysbench fileio --threads=16 --file-total-size=2G --file-fsync-freq=0 --file-test-mode=rndrw run
    sysbench 1.1.0 (using bundled LuaJIT 2.1.0-beta3)

    Running the test with following options:
    Number of threads: 16
    Initializing random number generator from current time


    Extra file open flags: (none)
    128 files, 16MiB each
    2GiB total file size
    Block size 16KiB
    Number of IO requests: 0
    Read/Write ratio for combined random IO test: 1.50
    Calling fsync() at the end of test, Enabled.
    Using synchronous I/O mode
    Doing random r/w test
    Initializing worker threads...

    Threads started!


    Throughput:
    read: IOPS=383594.04 5993.66 MiB/s (6284.80 MB/s)
    write: IOPS=255729.12 3995.77 MiB/s (4189.87 MB/s)
    fsync: IOPS=122.71

    Latency (ms):
    min: 0.00
    avg: 0.01
    max: 1.73
    95th percentile: 0.03
    sum: 144444.71

    内存测试:
    [root@127-0-0-1 yoon]# /u01/opt/sysbench/bin/sysbench memory help
    sysbench 1.1.0 (using bundled LuaJIT 2.1.0-beta3)

    memory options:
    --memory-block-size=SIZE size of memory block for test [1K] #测试内存块的大小 [1K]
    --memory-total-size=SIZE total size of data to transfer [100G] #要传输的数据的总大小100G]
    --memory-scope=STRING memory access scope {global,local} [global] #内存访问范围 {global,local} [global]
    --memory-hugetlb[=on|off] allocate memory from HugeTLB pool [off] #从内存池中分配内存[off]
    --memory-oper=STRING type of memory operations {read, write, none} [write] #存储操作类型 {read, write, none} [write]
    --memory-access-mode=STRING memory access mode {seq,rnd} [seq] #存储器存取方式 {seq,rnd} [seq]

    [root@127-0-0-1 yoon]# /u01/opt/sysbench/bin/sysbench memory --memory-total-size=10G --memory-block-size=8K run
    sysbench 1.1.0 (using bundled LuaJIT 2.1.0-beta3)

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


    Running memory speed test with the following options:
    block size: 8KiB
    total size: 10240MiB
    operation: write
    scope: global

    Initializing worker threads...

    Threads started!

    Total operations: 1310720 (1077326.35 per second)

    10240.00 MiB transferred (8416.61 MiB/sec)


    Throughput:
    events/s (eps): 1077326.3489
    time elapsed: 1.2166s
    total number of events: 1310720

    Latency (ms):
    min: 0.00
    avg: 0.00
    max: 0.02
    95th percentile: 0.00
    sum: 893.01

    Threads fairness:
    events (avg/stddev): 1310720.0000/0.00
    execution time (avg/stddev): 0.8930/0.00

    OLTP测试:
    [root@127-0-0-1 sysbench]# ls
    bulk_insert.lua oltp_delete.lua oltp_point_select.lua oltp_read_write.lua oltp_update_non_index.lua prepare.log select_random_ranges.lua
    oltp_common.lua oltp_insert.lua oltp_read_only.lua oltp_update_index.lua oltp_write_only.lua select_random_points.lua tests

    /u01/opt/sysbench/bin/sysbench /u01/opt/sysbench/share/sysbench/oltp_common.lua --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root --mysql-password='root@01.com' --mysql-db=sbtest --table-size=5000000 --threads=10 --report-interval=10 prepare

    [root@127-0-0-1 sysbench]# /u01/opt/sysbench/bin/sysbench /u01/opt/sysbench/share/sysbench/oltp_read_write.lua --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root --mysql-password='root@01.com' --mysql-db=sbtest --table-size=5000000 --threads=10 --report-interval=10 --time=120 run
    sysbench 1.1.0 (using bundled LuaJIT 2.1.0-beta3)

    Running the test with following options:
    Number of threads: 10
    Report intermediate results every 10 second(s)
    Initializing random number generator from current time


    Initializing worker threads...

    Threads started!

    [ 10s ] thds: 10 tps: 824.26 qps: 16498.17 (r/w/o: 11550.29/3298.36/1649.53) lat (ms,95%): 16.71 err/s: 0.00 reconn/s: 0.00
    [ 20s ] thds: 10 tps: 938.90 qps: 18778.84 (r/w/o: 13146.36/3754.69/1877.79) lat (ms,95%): 13.95 err/s: 0.00 reconn/s: 0.00
    [ 30s ] thds: 10 tps: 969.19 qps: 19383.22 (r/w/o: 13568.10/3876.74/1938.37) lat (ms,95%): 13.70 err/s: 0.00 reconn/s: 0.00
    [ 40s ] thds: 10 tps: 1003.32 qps: 20061.71 (r/w/o: 14042.19/4012.88/2006.64) lat (ms,95%): 13.22 err/s: 0.00 reconn/s: 0.00
    [ 50s ] thds: 10 tps: 1011.57 qps: 20236.34 (r/w/o: 14166.91/4046.29/2023.14) lat (ms,95%): 13.22 err/s: 0.00 reconn/s: 0.00
    [ 60s ] thds: 10 tps: 1115.50 qps: 22309.32 (r/w/o: 15615.94/4462.38/2230.99) lat (ms,95%): 11.87 err/s: 0.00 reconn/s: 0.00
    [ 70s ] thds: 10 tps: 1064.13 qps: 21283.06 (r/w/o: 14898.46/4256.33/2128.27) lat (ms,95%): 12.30 err/s: 0.00 reconn/s: 0.00
    [ 80s ] thds: 10 tps: 1030.00 qps: 20599.45 (r/w/o: 14419.27/4120.19/2060.00) lat (ms,95%): 12.52 err/s: 0.00 reconn/s: 0.00
    [ 90s ] thds: 10 tps: 1056.32 qps: 21127.75 (r/w/o: 14790.22/4224.89/2112.65) lat (ms,95%): 12.30 err/s: 0.00 reconn/s: 0.00
    [ 100s ] thds: 10 tps: 1097.38 qps: 21946.72 (r/w/o: 15362.43/4389.52/2194.76) lat (ms,95%): 12.30 err/s: 0.00 reconn/s: 0.00
    [ 110s ] thds: 10 tps: 1147.39 qps: 22948.97 (r/w/o: 16063.71/4590.47/2294.79) lat (ms,95%): 11.87 err/s: 0.00 reconn/s: 0.00
    [ 120s ] thds: 10 tps: 1110.00 qps: 22200.00 (r/w/o: 15540.00/4440.00/2220.00) lat (ms,95%): 12.08 err/s: 0.00 reconn/s: 0.00
    SQL statistics:
    queries performed:
    read: 1731702
    write: 494772
    other: 247386
    total: 2473860
    transactions: 123693 (1030.70 per sec.)
    queries: 2473860 (20614.02 per sec.)
    ignored errors: 0 (0.00 per sec.)
    reconnects: 0 (0.00 per sec.)

    Throughput:
    events/s (eps): 1030.7010
    time elapsed: 120.0086s
    total number of events: 123693

    Latency (ms):
    min: 4.32
    avg: 9.70
    max: 185.38
    95th percentile: 13.22
    sum: 1199649.68

    Threads fairness:
    events (avg/stddev): 12369.3000/304.67
    execution time (avg/stddev): 119.9650/0.00

  • 相关阅读:
    腾讯推出微信企业服务平台风铃
    WAP网页输入框的默认键盘类型控制
    asp.net+扫描仪+图片上传
    Web截屏插件
    java扫描仪上传文件
    web高拍仪图片上传
    网页中怎么实现客户端通过扫描仪把图像传到服务器上
    如何在Web页面里面使用高拍仪扫描上传图像
    B/S选择文件夹上传
    用java实现文件的断点续传并发下载
  • 原文地址:https://www.cnblogs.com/hankyoon/p/12156826.html
Copyright © 2011-2022 走看看