Linux リアルタイム カーネル - 機能の理解 - 直接スコア 1 - リソース内のスクリプト

1. 未使用のカーネル バージョン パッケージ (デフォルト カーネル、リアルタイム カーネル パッケージ) を準備します。
2. カーネル バージョン パッケージを変更し、バージョン比較表示を確認します。表示するには uname -r コマンドを使用します。
3. テストには cyclictest ツールを使用します
( 1) git clone git: //git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git //rt-tests ファイルをダウンロード
(2)cd rt-tests //フォルダーに入る
(3) git checkoutsteady/v1.0 (オプション、またはデフォルト)//これは安定したブランチであり、ユーザーは必要に応じて最新の devel ブランチに切り替えることもできます。このステップには注意が必要です: (ubuntu バージョンをインストールする必要があります: yum install
build -essential および libuma-dev 依存パッケージ centos バージョンをインストールする必要があります: yum install umactl-devel)
cyclictest コンパイルは前のパッケージに依存します
(4) コンパイルして
make all
make install
(5) 実行して
rt-tests ディレクトリに入ります、./cyclictest コマンドを実行して、インストールが成功したことを示す次の図を表示します (MAX Delay パラメーター)
ここに画像の説明を挿入
(6) CPU メモリを 80% 以上に圧迫し、24 時間実行して結果セットを表示します
(7) ) gnuplot (オプション。テスト結果出力の png イメージを視覚的に表示できます)
ここに画像の説明を挿入
ターミナルで gnuplot コマンドを入力してソフトウェアを起動し、続行します set term を入力してサポートされている形式を表示します (主に結果の出力には png 形式を使用します) (3
ここに画像の説明を挿入
) インストール後cyclictest、テストの実行で権限の問題が発生しました
このツールキットをダウンロードするとコンパイルが完了し、./cyclictest を実行してプログラムを実行すると、Hyperserver システム バージョンで root 権限の問題が報告されます。他の centos8.3 システムや ubuntu システムでコンパイルして実行することが解決策として考えられます。 : sysctl
-w kernel.sched_rt_runtime_us=-1 このコマンドを実行して設定します。
ここに画像の説明を挿入
(4) cyclictest を使用して、
シミュレートされたマシン負荷をテストします。 (ホストに負荷がかかっているという前提でテストするには時間がかかります。負荷は80%、時間は 1H である必要があります。それより長い時間が利用可能です。正式な時間は 24H です。現在は結果を取得するために 1H テストを使用しています) 短期間の cyclictest の実行結果は無意味であり、cyslictest の実行によって得られる
遅延テスト システムに適切な負荷がかからなければ、統計も無意味になります。

#!/bin/bash
#8 つの CPU で実行すると、CPU が 100% になり、1MHZ タイマー割り込みが生成され、バックグラウンドで 24 時間実行され続けます。
ストレス-ng -c 8 --cpu-method fft --timerfd-freq 1000000 -t 24h
ストレス-ng --cpu 8 --cpu-method all --io 4 --vm 2 --vm-bytes 128M --フォーク 4 -- タイムアウト 60 秒

#メモリ負荷をシミュレートし、4 つのプロセスを実行します。各プロセスは 2g のメモリを割り当て、バックグラウンドで 24 時間継続的に実行します。
tress-ng --vm 4 --vm-bytes 2g --vm-method all --vm-keep -v -t 24h
またはtress-ng --vm 8 --vm-bytes 80% -t 24h

#du を使用した I/O 負荷の生成 du を使用して IO 負荷を生成します (
true; do taskset -c 3 /bin/du / ;ned & ortress
-ng -i 6 --hdd 1 --timeout 24h
このコマンドは 1 を開きます)ワーカーは一時ファイルの読み取りと書き込みを継続的に行い、同時に 6 つのワーカーを起動して同期システム コールを継続的に呼び出してキャッシュを送信します。テスト スクリプトは次のとおりです
:
https://www.osadl.org/Create-a-latency-このスクリプトは、
最終的に、plot.png という名前のヒストグラムを生成し、400 マイクロ秒未満の遅延で統計を出力します (数値 400 は変更できます)。続いて -h 400、対応する変更セット xrange [0:400]\n\ ここでは 400)、縦軸は横軸よりも小さい遅延の数です #!
/bin/bash

1. cyclictest を実行する

#出力をファイルにリダイレクトします。output
cyclictest -S -p 95 -i 1000 -h400 -D 24h -m -q >output #24 時間実行して結果を出力します。

公式テストスクリプトで指定されたテストコマンド

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/qq_41196999/article/details/131698301