sysbench测试总结

Sysbench 是一个用于评估和测试系统性能的多功能基准测试工具,主要用于测量 CPU、内存、磁盘 I/O、数据库(如 MySQL)等子系统的性能。它可以帮助你评估硬件或系统的表现,找到潜在的瓶颈。

一、sysbench安装

在大多数 Linux 发行版中,sysbench 可以通过包管理器安装。

在 Ubuntu/Debian:

sudo apt update
sudo apt install sysbench

在 CentOS/RHEL:

sudo yum install epel-release
sudo yum install sysbench

二、测试类型

sysbench 支持以下几种性能测试类型:
CPU 性能测试
内存性能测试
磁盘 I/O 性能测试
数据库(如 MySQL)性能测试

三、测试过程

1、cpu性能测试

此测试会执行一系列计算操作,模拟CPU的计算性能

sysbench cpu --cpu-max-prime=20000 --threads=4 run
  • –cpu-max-prime=20000:表示最大素数计算为 20000,增加这个值可以增加测试的负载。
  • –threads=4:表示使用 4 个线程,模拟多核 CPU 的工作负载。

还可以通过–time选项来设置测试运行的最长时间,例如让测试运行60秒

sysbench cpu --cpu-max-prime=20000 --threads=4 --time=60 run

测试结果将显示 CPU 在一定时间内完成的计算数量
测试结果示例如下:

Threads started!

CPU speed:
    events per second:  1381.25

General statistics:
    total time:                          10.0005s
    total number of events:              13819

Latency (ms):
         min:                                    0.72
         avg:                                    0.72
         max:                                    0.81
         95th percentile:                        0.73
         sum:                                 9996.75

Threads fairness:
    events (avg/stddev):           13819.0000/0.00
    execution time (avg/stddev):   9.9967/0.00

  • 每秒事件数(events per second)
    events per second: 1381.25,表示在测试运行期间,系统每秒处理的事件数为1381.25
  • 总执行时间(total time):
    表示整个测试所花费的时间。total time: 10.0005s,表示总共耗时10.0005秒
  • 每个线程的执行时间(execution time)
    在多线程测试中,每个线程都有自己的执行时间,通常会显示平均值和标准差。execution time (avg/stddev): 9.9967/0.00,表示每个线程的平均执行时间为9.9967秒,标准差为0秒

关键性能指标总结:
执行时间是sysbench测试输出的关键部分,显示了测试运行的总时长和每个线程的执行时间,在多线程测试中,sysbench还会显示每秒处理的事件数和每次请求的延迟。

2、内存性能测试

该测试用于评估内存的读写速度

sysbench memory --memory-block-size=1M --memory-total-size=10G --threads=4 run
  • –memory-block-size=1M 表示每次内存操作的块大小为1MB
  • –memory-total-size=10G 表示测试总共将写入或读取10GB的数据
  • –threads=4:表示使用 4 个线程,模拟多核 CPU 的工作负载。

测试结果示例如下:

Threads started!

Total operations: 10240 (15972.08 per second)

10240.00 MiB transferred (15972.08 MiB/sec)


General statistics:
    total time:                          0.6371s
    total number of events:              10240

Latency (ms):
         min:                                    0.06
         avg:                                    0.06
         max:                                    0.08
         95th percentile:                        0.06
         sum:                                  632.48

Threads fairness:
    events (avg/stddev):           10240.0000/0.00
    execution time (avg/stddev):   0.6325/0.00
  • 操作次数(Total operations)
    Total operations: 10240 (15972.08 per second),表示测试中总共进行了10240次内存操作,平均每秒执行了15972.08次操作
    这个值越高,表示系统的内存读写性能越好

  • 数据传输量(MiB transferred)
    10240.00 MiB transferred (15972.08 MiB/sec),显示总共传输了10240MB(10GB)的数据,传输速度为15972.08 MB/s
    代表系统每秒可以处理15972MB的内存数据,这个指标显示了内存的额吞吐量,通常越高越好

  • 总时间(total time)
    total time: 0.6371s,表示整个测试花费的时间为0.6371秒

  • 延迟(Latency)
    延迟是指每次内存操作的响应时间。
    min: 0.06 (最小延迟)
    avg: 0.06 (平均延迟)
    max: 0.08 (最大延迟)
    95th percentile: 0.06 (95%百分位延迟)
    sum: 632.48 (总延迟)
    延迟越低,内存性能越好,一般来说,内存的延迟越小,应用程序处理数据的响应时间就越快

  • 线程公平性(Threads fairness)
    这部分展示了在多线程测试中,每个线程的执行时间和处理的事件数
    events (avg/stddev):10240.0000/0.00,表示每个线程平均处理了1024次内存从哦啊做,标准差为0。表明线程之间的负载分布相对均衡
    execution time (avg/stddev): 0.6325/0.00,表示每个线程的平均执行时间为0.6325,标准差为0

关键性能指标总结:

  1. 内存吞吐量(MB/sec)
    这是内存读写的关键性能指标,显示每秒可以传输的数据量
  2. 操作次数(ops/sec)
    这表示系统每秒能够处理多少次内存操作
  3. 延迟(latency)
    表示系统处理每次内存请求的速度

3、磁盘I/O性能测试

此测试用于评估磁盘读写速度
准备磁盘测试文件

sysbench fileio --file-total-size=5G prepare

运行随机读写测试

sysbench fileio --file-total-size=5G --file-test-mode=rndrw --max-time=60 --max-requests=0 --threads=4 run

清理测试文件

sysbench fileio --file-total-size=5G cleanup
  • –file-total-size=5G:生成的测试文件大小为5GB
  • –file-test-mode-rndrw:进行随机读写操作
  • –max-time=60:测试运行时间为60秒
  • –max-requests=0:表示不限请求次数,以时间为准
  • –threads=4:表示使用 4 个线程,模拟多核 CPU 的工作负载

测试结果示例如下:

Threads started!


File operations:
    reads/s:                      640.02
    writes/s:                     426.68
    fsyncs/s:                     1367.10

Throughput:
    read, MiB/s:                  10.00
    written, MiB/s:               6.67

General statistics:
    total time:                          60.0842s
    total number of events:              146124

Latency (ms):
         min:                                    0.00
         avg:                                    0.41
         max:                                   53.42
         95th percentile:                        0.97
         sum:                                59905.41

Threads fairness:
    events (avg/stddev):           146124.0000/0.00
    execution time (avg/stddev):   59.9054/0.00
  • 吞吐量(Throughput)
    read 10.00Mib/s,表示系统每秒可以处理约10Mib的数据读
    越高的吞吐量表示磁盘的读写速度越快,通过固态硬盘(SSD)的吞吐量会远高于传统机械硬盘(HDD)

4、mysql数据库性能测试

在进行数据库性能测试之前,首先需要准备好mysql数据库,并创建测试表
准备数据库表

sysbench oltp_read_write --db-driver=mysql --mysql-db=test --mysql-user=root --mysql-password=yourpassword --tables=10 --table-size=1000000 prepare

运行测试

sysbench oltp_read_write --db-driver=mysql --mysql-db=test --mysql-user=root --mysql-password=yourpassword --tables=10 --table-size=1000000 --threads=8 --time=60 run

清理数据库

sysbench oltp_read_write --db-driver=mysql --mysql-db=test --mysql-user=root --mysql-password=yourpassword cleanup

 - --tables=10:表示创建10个测试表
 - --table-size=1000000 :表示包含1000000行数据
 - --threads=8:使用8个线程
 - --time=60:测试时间为60秒

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值