性能分析与调优: Linux 安装基于BPF的bcc-tools系统性能工具库

发布时间:2024年01月07日

目录

?一、实验

1.环境

2.agent服务器安装使用ELRepo安装依赖包

3.agent服务器安装基于BPF的bcc-tools系统性能工具库

二、问题

1.安装bcc-tools后执行命令报错


?一、实验

1.环境

(1)主机

表1-1 主机

主机架构组件IP备注
prometheus

监测

系统

prometheus、node_exporter?192.168.204.18
grafana监测GUIgrafana192.168.204.19
agent?

监测

主机

node_exporter192.168.204.20

(2)ELRepo官网地址

ELRepo | HomePage

2.agent服务器安装使用ELRepo安装依赖包

(1)查看当前系统的内核版本

uname -rs

(2)查看已安装的内核依赖包

rpm -qa | grep kernel-lt

(3)查看当前可用的内核发行版本

yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

(3)安装依赖包

yum --enablerepo=elrepo-kernel install kernel-lt-devel  \
kernel-lt-headers \
kernel-lt-tools \
kernel-lt-tools-libs 

?(4)再次查看已安装的内核依赖包

rpm -qa | grep kernel-lt

3.agent服务器安装基于BPF的bcc-tools系统性能工具库

(1)安装bcc-tools(内核必须升级到4.x版本以上,才可以使用。)

yum install -y bcc-tools

(2)添加环境变量

export PATH=$PATH:/usr/share/bcc/tools

(3)测试

二、问题

1.安装bcc-tools后执行命令报错

(1)报错

执行cachestat命令报错

(2)原因分析

① 原因一

如果kernel-devel 版本不一致导致的,建议下载跟操作系统内核版本对齐。

#可以yum安装
yum install "kernel-devel-$(uname -r)"
# 或者下载对应内核版本rpm包安装

# 下载地址:http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/
rpm -ivh kernel-lt-devel-5.4.265-1.el7.elrepo.x86_64.rpm

② 原因二

另一个原因是是由于内核版本的原因,kernel-5.4.X之后才会出现该问题。内核头文件中用 asm 替换 asm_inline即可,具体参考如下的BCC官网。Missing support for asm_inline in Linux 5.4 · Issue #2546 · iovisor/bcc · GitHub

(3)解决方法

1)配置文件
vim /lib/modules/5.4.265-1.el7.elrepo.x86_64/build/arch/x86/include/asm/segment.h 

2)在最上新增如下配置
#ifdef asm_inline
#undef asm_inline
#define asm_inline asm
#endif

修改前:

修改后:

成功:

文章来源:https://blog.csdn.net/cronaldo91/article/details/135436809
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。