The Windows platform has “Ruluzishi” (Entertainment Master), which isn’t entirely accurate but provides a reference. There are also other professional benchmarking tools, but suitable ones are lacking on the Linux system.
Sysbench is a versatile benchmarking tool that can be used to test CPU, memory, file I/O, and thread performance. You can use Sysbench to perform various performance testing tasks.
I currently have three machines available for testing: Mecha-Debug Mini local host, Alibaba Cloud Dev development cloud server, and Huawei Cloud development server
Installing Sysbench
In most Linux distributions, you can use a package management tool to install Sysbench. For example, on CentOS 8, you can use the following command for installation.
sudo dnf install sysbench
Sysbench Usage Examples
- Testing CPU performance:
- Testing memory read performance: INLINE_CODE_0
- Testing file I/O performance:
sysbench --test=fileio --file-test-mode=rndrw prepare
sysbench --test=fileio --file-test-mode=rndrw run
sysbench --test=fileio --file-test-mode=rndrw cleanup
- Testing multi-threaded performance: INLINE_CODE_0
- Testing MySQL database performance (requires adjusting the maximum number of connections)
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
Performance Data Report
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 |
Afterword
Without proper formatting, the display will be very poor. The custom theme limits the maximum page width, and I’ve adjusted the page configuration to use percentage-based width restrictions.
- Simple methods include using online tools like TablesGenerator to create HTML tables (unsuitable for complex content)
- Or use Google Docs, write there, then download as an HTML document and directly copy it into your blog (simple and direct, this is our final approach)
Ensure the config is enabled with the unsafe option, and configure the width separately for each page
In Hugo, you can set the width for individual pages. This can be achieved by adding a custom parameter in the page’s Front Matter. Here’s an example:
- Add a custom parameter, such as INLINE_CODE_0, in the Front Matter section of your Markdown page (typically at the beginning of the file)
---
title: "我的页面"
date: 2024-01-09
custom_width: "800px" # 设置宽度为 800 像素
---
正文内容...
-
In your Hugo theme, locate or create the corresponding single-page template file (e.g., INLINE_CODE_0)
-
Check if the page’s Front Matter contains
custom_width
参数,并将其应用到相应的 HTML 元素上,例如div
in single-page templates:
{{ define "main" }}
<div style="max-width: {{ with .Params.custom_width }}{{ . }}{{ else }}100%{{ end }}; margin: 0 auto;">
{{ .Content }}
</div>
{{ end }}
In this example, we used inline styles to center the elements
Please note that in practical applications, you may need to adjust the above examples according to your theme structure and CSS styles. Ensure consistency and readability when adjusting styles.
The site’s custom INLINE_CODE_0 configuration was adjusted due to slight differences in the enabled theme