Alibaba Cloud Linux 3で遅延やパケット損失などの複雑なネットワーク状態をシミュレートする場合は、カーネルにsch_netemモジュールが必要です。 このトピックでは、カーネルバージョンが5.10.134-16
より前のAlibaba Cloud Linux 3にsch_netemモジュールが存在しない問題とその解決方法について説明します。
sch_netem
モジュールは、ネットワークの遅延とパケット損失をシミュレートするためにネットワークエミュレーションとテストで使用されるLinuxカーネルモジュールです。 sch_netemモジュールを使用して、ネットワークパフォーマンスをテストし、サービス品質 (QoS) 設定を実行できます。
問題の説明
sch_netemモジュールをロードすると、sch_netemモジュールが見つからないことを示す次のエラーメッセージが表示されます。
# modprobe sch_netem
modprobe: FATAL: Module sch_netem not found in directory /lib/modules/5.10.134-14.al8.x86_64
に見つかりません
原因
Alibaba Cloud Linux 3では、カーネルモジュールは、カーネルコア、カーネルモジュール、カーネルモジュール-エクストラ、カーネルモジュール-内部パッケージなど、複数のRPMパッケージマネージャー (RPM) パッケージに個別に格納されます。 sch_netemモジュールは、kernel-modules-extraパッケージに格納されます。 イメージをビルドまたはカーネルをインストールすると、カーネルコアパッケージとカーネルモジュールパッケージのみがインストールされます。 その結果、システムはsch_netemモジュールを見つけることができません。
解決策
この問題は、カーネル5.10.134-16
以降ですでに解決されています。 uname -r
コマンドを実行して、カーネルのバージョンを表示できます。
以前のカーネルバージョンを使用しているときに問題が発生した場合は、次のコマンドを実行してsch_netemモジュールをインストールし、問題を解決します。
sudo yum install -y kernel-modules-extra-<Kernel version>
特定のモジュールは、kernel-modules-internalパッケージに格納されます。 モジュールの欠落に関する問題を防ぐために、次のコマンドを実行してモジュールをインストールすることを推奨します。
sudo yum install -y kernel-modules-internal-<Kernel version>