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

目录

 一、实验

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

修改前:

修改后:

成功:

  • 22
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值