UOS系统执行资源调度任务失败
现象描述
UOS系统执行资源调度任务失败;异常信息显示:任务采集失败,系统内核版本低于4.19,建议使用4.19及以上版本。
可能原因
BPF参数未配置,需重新编译内核。
确认Tracers配置
- 查看当前系统内核版本。
uname –r
图1 内核版本 - 在kernel.org下载对应版本源码。图2 源码下载
- 解压源码包并进去源码目录。
tar -xvf linux-4.19.274.tar.xz cd linux-4.19.274.tar.xz
- 将当前内核编译配置文件拷贝至解压后的源码目录。
将拷贝的配置文件重命名为.config的隐藏文件。
cp /boot/config-4.19-90-2201.4.0.0135.up1.uel20.aarch64 ./.config
图3 拷贝配置文件 - 配置内核。
使用make menuconfig命令,开启文本界面的编译选项菜单窗口,可以对内核加载的模块编译选项进行调整,如修改编译后的内核名称、新添加之前系统缺少的模块等。
- 查看Tracers选项。
进入文本界面编译选项菜单界面,并选择kernel hacking。
图4 编译选项菜单可见Tracers选择,即未编译到系统配置中,所以perf无法支持sched事件采集。
图5 Tracers配置
配置Tracers并编译内核
- 配置Tracer内置选项。
选中Tracer,按Enter键进入内层选中Scheduling Latency Tracer后保存退出到上级。
图6 选择Scheduling Latency Tracer选项选择save后弹窗会提示输入保存文件名,默认即可,选择<ok>。
图7 保存 - 选中Tracers并保存。图8 保存Tracers选项
配置修改完成后双击Esc。
- 编译内核。
切换至源码目录,命令中128为CPU核数,请根据实际配置修改。
make -j 128
图9 编译 - 安装模块。
编译完成后安装编译模块。
make modules_install
图10 安装编译模块 - 安装内核核心文件。
make install
图11 安装内核核心文件 - 重启系统。
reboot
- 确认内核版本。
uname –r
查看内核版本,已经变为更新后的版本。
图12 确认
父主题: FAQ