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

2024-01-07 11:52

本文主要是介绍性能分析与调优: 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

修改前:

修改后:

成功:

这篇关于性能分析与调优: Linux 安装基于BPF的bcc-tools系统性能工具库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/579826

相关文章

Python使用FFmpeg实现高效音频格式转换工具

《Python使用FFmpeg实现高效音频格式转换工具》在数字音频处理领域,音频格式转换是一项基础但至关重要的功能,本文主要为大家介绍了Python如何使用FFmpeg实现强大功能的图形化音频转换工具... 目录概述功能详解软件效果展示主界面布局转换过程截图完成提示开发步骤详解1. 环境准备2. 项目功能结

Apache 高级配置实战之从连接保持到日志分析的完整指南

《Apache高级配置实战之从连接保持到日志分析的完整指南》本文带你从连接保持优化开始,一路走到访问控制和日志管理,最后用AWStats来分析网站数据,对Apache配置日志分析相关知识感兴趣的朋友... 目录Apache 高级配置实战:从连接保持到日志分析的完整指南前言 一、Apache 连接保持 - 性

Linux CPU飙升排查五步法解读

《LinuxCPU飙升排查五步法解读》:本文主要介绍LinuxCPU飙升排查五步法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录排查思路-五步法1. top命令定位应用进程pid2.php top-Hp[pid]定位应用进程对应的线程tid3. printf"%

Linux下安装Anaconda3全过程

《Linux下安装Anaconda3全过程》:本文主要介绍Linux下安装Anaconda3全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录简介环境下载安装一、找到下载好的文件名为Anaconda3-2018.12-linux-x86_64的安装包二、或者通

MySQL 安装配置超完整教程

《MySQL安装配置超完整教程》MySQL是一款广泛使用的开源关系型数据库管理系统(RDBMS),由瑞典MySQLAB公司开发,目前属于Oracle公司旗下产品,:本文主要介绍MySQL安装配置... 目录一、mysql 简介二、下载 MySQL三、安装 MySQL四、配置环境变量五、配置 MySQL5.1

使用Python实现Windows系统垃圾清理

《使用Python实现Windows系统垃圾清理》Windows自带的磁盘清理工具功能有限,无法深度清理各类垃圾文件,所以本文为大家介绍了如何使用Python+PyQt5开发一个Windows系统垃圾... 目录一、开发背景与工具概述1.1 为什么需要专业清理工具1.2 工具设计理念二、工具核心功能解析2.

Linux系统之stress-ng测压工具的使用

《Linux系统之stress-ng测压工具的使用》:本文主要介绍Linux系统之stress-ng测压工具的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、理论1.stress工具简介与安装2.语法及参数3.具体安装二、实验1.运行8 cpu, 4 fo

Maven项目中集成数据库文档生成工具的操作步骤

《Maven项目中集成数据库文档生成工具的操作步骤》在Maven项目中,可以通过集成数据库文档生成工具来自动生成数据库文档,本文为大家整理了使用screw-maven-plugin(推荐)的完... 目录1. 添加插件配置到 pom.XML2. 配置数据库信息3. 执行生成命令4. 高级配置选项5. 注意事

Mybatis Plus JSqlParser解析sql语句及JSqlParser安装步骤

《MybatisPlusJSqlParser解析sql语句及JSqlParser安装步骤》JSqlParser是一个用于解析SQL语句的Java库,它可以将SQL语句解析为一个Java对象树,允许... 目录【一】jsqlParser 是什么【二】JSqlParser 的安装步骤【三】使用场景【1】sql语

Java使用MethodHandle来替代反射,提高性能问题

《Java使用MethodHandle来替代反射,提高性能问题》:本文主要介绍Java使用MethodHandle来替代反射,提高性能问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录一、认识MethodHandle1、简介2、使用方式3、与反射的区别二、示例1、基本使用2、(重要)