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
跑分数据报告
A | B | C | D | |
---|---|---|---|---|
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 | CPU | 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: 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 中添加自定义参数来实现。以下是一个示例:
- 在你的 Markdown 页面的 Front Matter 部分(通常在文件的开头部分)添加一个自定义参数,例如
custom_width
:
---
title: "我的页面"
date: 2024-01-09
custom_width: "800px" # 设置宽度为 800 像素
---
正文内容...
-
在你的 Hugo 主题中,找到或创建对应的单页面模板文件(例如,
layouts/_default/single.html
)。 -
在单页面模板中,检查页面的 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
配置。