MySQL数据库性能基准测试之sysbench之5—sysbench 内存测试
一、sysbench 内存测试
1、目的和作用
sysbench 的内存测试旨在评估系统的内存性能,主要针对内存的读写速度、传输带宽、延迟等指标进行测试。内存测试的目的和作用包括以下几个方面:
--性能评估:通过内存测试,可以评估系统内存的读写速度、传输带宽等性能指标,帮助了解系统在处理大内存数据时的表现。 --系统稳定性检测:通过对内存进行压力测试,可以检测系统在高负荷下的内存稳定性,发现潜在的内存相关问题或系统缺陷。 --优化调整:内存测试结果可以帮助用户了解系统当前的内存性能状况,有针对性地进行内存优化或调整,以提高系统整体性能。 --硬件比较:通过对不同硬件配置的内存进行测试,可以进行硬件性能的对比,帮助选择适合自身需求的硬件配置。 --软件开发:对于软件开发人员来说,内存测试可以帮助他们评估程序在不同内存环境下的性能表现,优化程序设计和内存管理。
2、语法
[root@mysql161 /]# sysbench --test=memory help WARNING: the --test option is deprecated. You can pass a script name or path on the command line without any options. sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2) memory options: --threads=1 --表示测试时所使用的线程数,默认这里使用了一个线程进行测试 --memory-block-size=SIZE size of memory block for test [1K] --表示每个操作的数据块大小,默认为1KiB。 --memory-total-size=SIZE total size of data to transfer [100G] --表示总共要进行内存性能测试的内存大小,默认为102400MiB(约100GB)。
--memory-scope=STRING memory access scope {global,local} [global] --表示内存性能测试的范围,默认为全局。 --memory-hugetlb[=on|off] allocate memory from HugeTLB pool [off] --memory-oper=STRING type of memory operations {read, write, none} [write] --表示测试的操作类型为读/写入操作。 --memory-access-mode=STRING memory access mode {seq,rnd} [seq]
3、参数值说明
[root@mysql161 /]# sysbench --test=memory 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.20 (using bundled LuaJIT 2.1.0-beta2) 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: 1KiB --测试内存块大小1K total size: 102400MiB --测试总数据量:100G operation: write --测试操作为写 scope: global Initializing worker threads... Threads started! Total operations: 43304364 (4329351.87 per second) -- 表示总共执行的操作次数为43304364次,平均每秒执行4329351.87次操作。 42289.42 MiB transferred (4227.88 MiB/sec) -- 表示总共传输的数据量为42289.42 MiB,平均每秒传输4227.88 MiB的数据量。 General statistics: total time: 10.0001s --表示整个测试的总时长为10.0001秒 total number of events: 43304364 --表示总共发生的事件数为43304364个。(一次一块,和操作块数相同) Latency (ms): min: 0.00 --最小延迟 avg: 0.00 --平均延迟 max: 0.12 --最大延迟 95th percentile: 0.00 --95%的事件延迟时间 sum: 3895.49 --总延迟时间 Threads fairness: --这部分指标包含了关于线程公平性的数据,展示了平均每个线程的事件量和执行时间的平均值和标准偏差 events (avg/stddev): 43304364.0000/0.00 --平均每个线程的事件量 execution time (avg/stddev): 3.8955/0.00 --执行时间的平均值和标准偏差
4、测试比较
要在 sysbench 中执行内存测试,你可以使用以下语句:
sysbench memory --threads=1 --memory-block-size=1k --memory-total-size=100G --memory-oper=write run (默认参数值)等于sysbench memory run
sysbench memory --threads=1 --memory-block-size=4k --memory-total-size=100G --memory-oper=write run
sysbench memory --threads=1 --memory-block-size=8k --memory-total-size=100G --memory-oper=write run
sysbench memory --threads=1 --memory-block-size=16k --memory-total-size=100G --memory-oper=write run
sysbench memory --threads=2 --memory-block-size=16k --memory-total-size=100G --memory-oper=write run
sysbench memory --threads=1 --memory-block-size=1k --memory-total-size=100G --memory-oper=read run
sysbench memory --threads=1 --memory-block-size=4k --memory-total-size=100G --memory-oper=read run
sysbench memory --threads=1 --memory-block-size=8k --memory-total-size=100G --memory-oper=read run
sysbench memory --threads=1 --memory-block-size=16k --memory-total-size=100G --memory-oper=read run
输入 | 输出 | ||||||||||||
threads | block_size | total_size | operation | Total operations | operations/per second | MiB/sec | total time(s) | total number of events: | max(ms) | events | execution time | events (avg/stddev) | execution time (avg/stddev) |
1 | 1k | 100G | write | 43304364 | 4329351.87 | 4227.88 | 10.0001 | 43304364 | 0.12 | 0 | 0 | 43304364.0000/0.00 | 3.8955/0.00 |
1 | 4k | 100G | write | 24432914 | 2442655.29 | 9541.62 | 10.0001 | 24432914 | 0.06 | 0 | 0 | 24432914.0000/0.00 | 6.5974/0.00 |
1 | 8k | 100G | write | 13107200 | 1474009.55 | 11515.7 | 8.8859 | 13107200 | 0.13 | 0 | 0 | 13107200.0000/0.00 | 6.9217/0.00 |
1 | 16k | 100G | write | 6553600 | 795489.5 | 795489.5 | 8.232 | 6553600 | 0.41 | 0 | 0 | 6553600.0000/0.00 | 7.1467/0.00 |
2 | 16k | 100G | write | 6553600 | 746968.5 | 11671.38 | 8.7671 | 6553600 | 0.21 | 0 | 0 | 3276800.0000/0.00 | 8.0960/0.10 |
1 | 1k | 100G | read | 40548633 | 4053042.71 | 3958.05 | 10.0001 | 40548633 | 0.21 | 0 | 0 | 40548633.0000/0.00 | 3.9405/0.00 |
1 | 4k | 100G | read | 22756124 | 2274041.8 | 8882.98 | 10.0002 | 22756124 | 0.57 | 0 | 0 | 22756124.0000/0.00 | 6.6137/0.00 |
1 | 8k | 100G | read | 6553600 | 831013.57 | 12984.59 | 7.8805 | 6553600 | 0.12 | 0 | 0 | 6553600.0000/0.00 | 6.8411/0.00 |
1 | 16k | 100G | read | 13107200 | 1506156.27 | 11766.85 | 8.7 | 13107200 | 0.11 | 0 | 0 | 6553600.0000/0.00 | 6.8411/0.00 |