在基于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-<內核版本>
文檔內容是否對您有幫助?