Linux system benchmark testing

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

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

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:

  1. 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 像素
---

正文内容...
  1. In your Hugo theme, locate or create the corresponding single-page template file (e.g., INLINE_CODE_0)

  2. 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

Licensed under CC BY-NC-SA 4.0
Last updated on May 28, 2025 09:47
A financial IT programmer's tinkering and daily life musings
Built with Hugo
Theme Stack designed by Jimmy