Linuxシステムベンチマークテスト

Windows プラットフォームには魯大师(ユーエンターマスター)というベンチマークソフトがあり、データが正確とは言えないまでも、ある程度の参考になる。もちろん他のプロフェッショナルなベンチマークソフトもあるが、Linux システムでは特によく合うものがなかなか見つからない。

Sysbenchは、CPU、メモリ、ファイルI/O、スレッドパフォーマンスなどをテストできる多機能なベンチマークツールです。様々なパフォーマンステストタスクにsysbenchを使用できます。

テスト用にちょうど3台の機械があります:メカニストミニローカルホスト、アリババクラウド開発雲サーバー、ファーウェイクラウド開発サーバー。

Sysbenchのインストール

ほとんどのLinuxディストリビューションでは、パッケージマネージャーを使用してSysbenchをインストールできます。例えば、CentOS 8では、以下のコマンドでインストールできます。

sudo dnf install sysbench

Sysbench の使用例

  • CPU性能テスト:INLINE_CODE_0
  • メモリ読み出し性能テスト:INLINE_CODE_0
  • テストファイル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
  • マルチスレッドパフォーマンスのテスト: INLINE_CODE_0
  • 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

追記

完全にレイアウトできず、表形式にできない場合、表示効果が著しく悪くなる。カスタムテーマによるページ幅の制限があり、ページの構成を調整し、幅をパーセント指定に変更した。

  • シンプルな方法としては、TablesGeneratorのようなオンラインツールでHTMLテーブルを生成する(複雑な内容は向いていない)。
  • またはGoogleドキュメントで作成し、HTMLとしてダウンロードしてブログにコピーする。(簡単で最終的に採用)

設定でunsafeオプションが有効になっていることを確認し、ページごとに幅を設定してください。

Hugoにおいて、ページごとに幅を設定できます。これは、ページのFront Matterにカスタムパラメータを追加することで実現可能です。以下はその例です。

  1. Markdown ページの前マター(通常はファイルの先頭部分)に、例えば INLINE_CODE_0 のようなカスタムパラメータを追加してください。
---
title: "我的页面"
date: 2024-01-09
custom_width: "800px"  # 设置宽度为 800 像素
---

正文内容...
  1. あなたのHugoテーマで、対応するシングルページテンプレートファイルを見つけてください(例:INLINE_CODE_0)。

  2. シングルページテンプレートにおいて、Front Matterに custom_widthBOLD_2div が存在するか確認してください。

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

この例では、インラインスタイル(__INLINE_CODE_0__属性)为 __INLINE_CODE_1__BOLD_7max-widthBOLD_8custom_width 参数时,宽度默认为100%。margin: 0 auto; 用于将 INLINE_CODE_5)の要素を中心に配置しています。

実際の応用では、テーマ構造やCSSスタイルの詳細に応じて、上記の例を調整する必要があるかもしれません。スタイルを調整する際は、テーマの一貫性と可読性を保つようにしてください。

有効化されたテーマが若干異なるため、サイトのカスタム設定のCSS構成を最終調整しました。

Licensed under CC BY-NC-SA 4.0
最終更新 2025年05月28日 09:47
金融ITプログラマーのいじくり回しと日常のつぶやき
Hugo で構築されています。
テーマ StackJimmy によって設計されています。