Windows 平台有个鲁大师(娱乐大师),不能说数据很准,单总归有个参考,当然也有其他的专业跑分软件,到了 Linux 系统,好像一直没遇到特别合适的跑分软件。

Sysbench 是一款多功能的基准测试工具,可用于测试CPU、内存、文件I/O、线程性能等。您可以使用 sysbench 来执行各种性能测试任务。

手头上刚好有三台机器用于测试:机械师 mini 本地小主机、阿里云 dev 开发云服务器、华为云开发服务器。

安装Sysbench

在大多数Linux发行版中,您可以使用包管理工具来安装Sysbench。例如,在CentOS 8上,可以使用以下命令进行安装

sudo dnf install sysbench

Sysbench的使用示例

  • 测试CPU性能:sysbench --test=cpu run
  • 测试内存读取性能:sysbench --test=memory run
  • 测试文件I/O性能:
sysbench --test=fileio --file-test-mode=rndrw prepare
sysbench --test=fileio --file-test-mode=rndrw run
sysbench --test=fileio --file-test-mode=rndrw cleanup
  • 测试多线程性能: sysbench --test=threads --num-threads=4 run
  • 测试MySQL数据库性能(需调整数据库最大连接数):
sysbench --test=oltp --db-driver=mysql --mysql-db=test --mysql-user=yourusername --mysql-password=yourpassword --oltp-table-size=1000000 prepare
sysbench --test=oltp --db-driver=mysql --mysql-db=test --mysql-user=yourusername --mysql-password=yourpassword --max-time=60 --oltp-read-only=off --oltp-test-mode=complex --max-requests=0 run
sysbench --test=oltp --db-driver=mysql --mysql-db=test --mysql-user=yourusername --mysql-password=yourpassword cleanup

跑分数据报告

ABCD
1
本地机械师阿里云华为云
2
系统配置System Information
Operating System Ubuntu 23.04
Kernel Linux 6.2.0-36-generic x86_64
Model Machenike Machenike DT Computer
Motherboard Machenike Machenike DT Computer
BIOS American Megatrends International, LLC.
DB19V012

CPU Information
Name Intel Core i7-12650H
Topology 1 Processor, 10 Cores, 16 Threads
Identifier GenuineIntel Family 6 Model 154 Stepping 3
Base Frequency 4.60 GHz
L1 Instruction Cache 32.0 KB x 8
L1 Data Cache 48.0 KB x 8
L2 Cache 1.25 MB x 2
L3 Cache 24.0 MB

Memory Information
Size 62.6 GB
System Information
Operating System CentOS Stream 8
Kernel Linux 4.18.0-513.el8.x86_64 x86_64
Model Alibaba Cloud Alibaba Cloud ECS
Motherboard N/A
BIOS SeaBIOS 449e491

CPU Information
Name Intel(R) Xeon(R) Platinum
Topology 1 Processor, 1 Core, 2 Threads
Identifier GenuineIntel Family 6 Model 85 Stepping 4
Base Frequency 2.50 GHz
L1 Instruction Cache 32.0 KB
L1 Data Cache 32.0 KB
L2 Cache 1.00 MB
L3 Cache 33.0 MB

Memory Information
Size 1.65 GB
System Information
Operating System Ubuntu 22.04.1 LTS
Kernel Linux 5.15.0-60-generic x86_64
Model OpenStack Foundation OpenStack Nova
Motherboard N/A
BIOS SeaBIOS
rel-1.10.2-0-g5f4c7b1-20181220_000000-szxrtosci10000

CPU Information
Name Intel(R) Xeon(R) Gold 6278C CPU @ 2.60GHz
Topology 1 Processor, 1 Core, 2 Threads
Identifier GenuineIntel Family 6 Model 85 Stepping 7
Base Frequency 2.60 GHz
L1 Instruction Cache 32.0 KB
L1 Data Cache 32.0 KB
L2 Cache 1.00 MB
L3 Cache 35.8 MB

Memory Information
Size 3.64 GB
3
CPUsysbench 1.0.20 (using system 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: 4032.48

General statistics:
total time: 10.0004s
total number of events: 40330

Latency (ms):
min: 0.25
avg: 0.25
max: 0.73
95th percentile: 0.25
sum: 9997.55

Threads fairness:
events (avg/stddev): 40330.0000/0.00
execution time (avg/stddev): 9.9975/0.00
sysbench 1.0.20 (using system 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: 1062.51

General statistics:
total time: 10.0008s
total number of events: 10628

Latency (ms):
min: 0.91
avg: 0.94
max: 22.84
95th percentile: 1.06
sum: 9993.46

Threads fairness:
events (avg/stddev): 10628.0000/0.00
execution time (avg/stddev): 9.9935/0.00
sysbench 1.0.20 (using system 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: 1125.56

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

Latency (ms):
min: 0.86
avg: 0.89
max: 1.70
95th percentile: 0.99
sum: 9995.40

Threads fairness:
events (avg/stddev): 11258.0000/0.00
execution time (avg/stddev): 9.9954/0.00
4
内存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
total size: 102400MiB
operation: write
scope: global

Initializing worker threads...

Threads started!

Total operations: 101993199 (10198146.52 per second)

99602.73 MiB transferred (9959.13 MiB/sec)


General statistics:
total time: 10.0001s
total number of events: 101993199

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

Threads fairness:
events (avg/stddev): 101993199.0000/0.00
execution time (avg/stddev): 4.0595/0.00
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
total size: 102400MiB
operation: write
scope: global

Initializing worker threads...

Threads started!

Total operations: 48418803 (4841004.79 per second)

47283.99 MiB transferred (4727.54 MiB/sec)


General statistics:
total time: 10.0001s
total number of events: 48418803

Latency (ms):
min: 0.00
avg: 0.00
max: 25.26
95th percentile: 0.00
sum: 4578.95

Threads fairness:
events (avg/stddev): 48418803.0000/0.00
execution time (avg/stddev): 4.5789/0.00
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
total size: 102400MiB
operation: write
scope: global

Initializing worker threads...

Threads started!

Total operations: 57056904 (5704765.11 per second)

55719.63 MiB transferred (5571.06 MiB/sec)


General statistics:
total time: 10.0001s
total number of events: 57056904

Latency (ms):
min: 0.00
avg: 0.00
max: 0.06
95th percentile: 0.00
sum: 4556.06

Threads fairness:
events (avg/stddev): 57056904.0000/0.00
execution time (avg/stddev): 4.5561/0.00
5
硬盘2147483648 bytes written in 1.81 seconds (1129.59 MiB/sec).

Running the test with following options:
Number of threads: 1
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
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: 3373.41
writes/s: 2248.94
fsyncs/s: 7201.80

Throughput:
read, MiB/s: 52.71
written, MiB/s: 35.14

General statistics:
total time: 10.0127s
total number of events: 128288

Latency (ms):
min: 0.00
avg: 0.08
max: 5.14
95th percentile: 0.34
sum: 9977.78

Threads fairness:
events (avg/stddev): 128288.0000/0.00
execution time (avg/stddev): 9.9778/0.00
2147483648 bytes written in 19.29 seconds (106.16 MiB/sec).

Running the test with following options:
Number of threads: 1
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
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: 1593.12
writes/s: 1062.08
fsyncs/s: 3406.64

Throughput:
read, MiB/s: 24.89
written, MiB/s: 16.60

General statistics:
total time: 10.0164s
total number of events: 60600

Latency (ms):
min: 0.00
avg: 0.16
max: 31.32
95th percentile: 0.54
sum: 9956.30

Threads fairness:
events (avg/stddev): 60600.0000/0.00
execution time (avg/stddev): 9.9563/0.00
2147483648 bytes written in 18.29 seconds (111.98 MiB/sec).

Running the test with following options:
Number of threads: 1
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
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: 1665.88
writes/s: 1110.59
fsyncs/s: 3563.77

Throughput:
read, MiB/s: 26.03
written, MiB/s: 17.35

General statistics:
total time: 10.0112s
total number of events: 63355

Latency (ms):
min: 0.00
avg: 0.16
max: 205.01
95th percentile: 0.78
sum: 9972.64

Threads fairness:
events (avg/stddev): 63355.0000/0.00
execution time (avg/stddev): 9.9726/0.00
6
多线程Running the test with following options:
Number of threads: 4
Initializing random number generator from current time


Initializing worker threads...

Threads started!


General statistics:
total time: 10.0002s
total number of events: 197956

Latency (ms):
min: 0.16
avg: 0.20
max: 0.34
95th percentile: 0.21
sum: 39970.47

Threads fairness:
events (avg/stddev): 49489.0000/5.70
execution time (avg/stddev): 9.9926/0.00
Running the test with following options:
Number of threads: 4
Initializing random number generator from current time


Initializing worker threads...

Threads started!


General statistics:
total time: 10.0174s
total number of events: 18360

Latency (ms):
min: 0.57
avg: 2.18
max: 32.77
95th percentile: 2.61
sum: 40050.41

Threads fairness:
events (avg/stddev): 4590.0000/94.36
execution time (avg/stddev): 10.0126/0.00
Running the test with following options:
Number of threads: 4
Initializing random number generator from current time


Initializing worker threads...

Threads started!


General statistics:
total time: 10.0004s
total number of events: 28536

Latency (ms):
min: 0.23
avg: 1.40
max: 3.56
95th percentile: 1.47
sum: 39975.16

Threads fairness:
events (avg/stddev): 7134.0000/39.87
execution time (avg/stddev): 9.9938/0.01

后记

ChatGPT 还是个好东西,上面的表格,按照以前掌握的Markdown完全无法编排,不做成表格,展示的效果就会很差,自定义主题限制了页面最大宽度,同步调整了一波页面的配置,宽度改为百分比限制。

  • 简单的方法,使用TablesGenerator等在线工具生成HTML表格(内容复杂不合适)
  • 或者使用谷歌在线文档编写,然后下载保存为HTML文档,直接复制到博客(简单直接,最终采用)

确保 config 配置开启了 unsafe 配置项,单独给页面配置宽度

在 Hugo 中,你可以为页面单独设置宽度。这可以通过在页面的 Front Matter 中添加自定义参数来实现。以下是一个示例:

  1. 在你的 Markdown 页面的 Front Matter 部分(通常在文件的开头部分)添加一个自定义参数,例如 custom_width
---
title: "我的页面"
date: 2024-01-09
custom_width: "800px"  # 设置宽度为 800 像素
---

正文内容...
  1. 在你的 Hugo 主题中,找到或创建对应的单页面模板文件(例如,layouts/_default/single.html)。

  2. 在单页面模板中,检查页面的 Front Matter 中是否有 custom_width 参数,并将其应用到相应的 HTML 元素上,例如 div

{{ define "main" }}
  <div style="max-width: {{ with .Params.custom_width }}{{ . }}{{ else }}100%{{ end }}; margin: 0 auto;">
    {{ .Content }}
  </div>
{{ end }}

这个示例中,我们使用了内联样式(style属性)为 div 元素设置了 max-width 属性,使其在没有指定 custom_width 参数时,宽度默认为100%。margin: 0 auto; 用于将 div 元素居中。

请注意,实际应用中,你可能需要根据你的主题结构和CSS样式的细节来调整上述示例。确保在调整样式时保持主题的一致性和可读性。

由于启用的主题稍微有些不同,最后调整了站点自定义的CSS配置。