在基於Alibaba Cloud Linux 3系統中類比網路延遲或丟包等複雜的網路環境時,需要核心支援sch_netem。本文介紹如何解決在核心版本低於5.10.134-16
的Alibaba Cloud Linux 3系統上sch_netem模組缺失的問題。
說明
sch_netem
模組是Linux核心中的一個網路延時和丟包類比模組,常用於網路模擬和測試,尤其適用於網路效能測試和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中,核心的各個模組被拆分存放在kernel-core、kernel-modules、kernel-modules-extra、kernel-modules-internal等多個rpm包中,而sch_netem模組位於kernel-modules-extra包中。由於在構建鏡像或安裝核心時,僅會安裝kernel-core、kernel-modules兩個rpm包,從而導致系統不到sch_netem模組。
解決方案
該問題已在5.10.134-16
版本上修複,您可以通過uname -r
命令查看您的核心版本。
如果您在使用低於此版本的核心時遇到該問題,請運行以下命令安裝sch_netem核心模組來解決。
sudo yum install -y kernel-modules-extra-<核心版本>
說明
還有一部分模組存放於kernel-modules-internal包中,為避免您後續遇到其他模組缺失的問題,建議運行以下命令一起安裝。
sudo yum install -y kernel-modules-internal-<核心版本>