news 2026/7/1 20:04:06

从入门到精通:Ketones内核观察工具的高级使用技巧

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从入门到精通:Ketones内核观察工具的高级使用技巧

从入门到精通:Ketones内核观察工具的高级使用技巧

【免费下载链接】ketonesA kempt eBPF tool for a new environments项目地址: https://gitcode.com/openeuler/ketones

前往项目官网免费下载:https://ar.openeuler.org/ar/

Ketones是一款基于eBPF技术的轻量级内核观察工具,专为新环境设计,能够帮助开发者和系统管理员高效监控、分析和调试内核行为。通过提供丰富的预构建工具集和灵活的扩展能力,Ketones让复杂的内核观测任务变得简单而高效。

为什么选择Ketones内核观察工具?

在现代Linux系统管理和应用开发中,内核级别的性能分析和问题诊断变得越来越重要。Ketones作为一款优秀的eBPF工具,具有以下核心优势:

  • 无需内核修改:基于eBPF技术,无需重新编译内核或加载额外模块
  • 低开销高性能:在内核空间直接运行,减少用户态与内核态切换开销
  • 丰富工具集:内置超过80种专用工具,覆盖网络、存储、进程、内存等多个领域
  • 易于扩展:提供完整的开发框架,支持自定义eBPF程序开发

图:Ketones使用的libbpf库标志,象征其基于现代eBPF技术构建

快速开始:Ketones的安装与基础配置

一键安装步骤

Ketones的安装过程非常简单,只需几个命令即可完成:

# 克隆仓库 git clone https://gitcode.com/openeuler/ketones cd ketones # 编译安装 make sudo make install

验证安装是否成功

安装完成后,可以通过以下命令验证是否安装成功:

# 查看已安装的工具列表 ls -l /usr/local/bin/ | grep -E 'adaptive-readahead|bashreadline|bindsnoop'

如果看到类似adaptive-readaheadbashreadline等工具名称,说明安装成功。

核心工具详解:从基础到高级应用

Ketones提供了丰富的工具集,覆盖系统观测的各个方面。以下是几个最常用工具的高级使用技巧:

网络监控:tcpconnect与tcptop

tcpconnect工具可以追踪系统中所有TCP连接的建立过程:

# 基础用法 tcpconnect # 高级过滤:只显示特定端口的连接 tcpconnect -p 8080 # 输出详细时间戳和进程信息 tcpconnect -t -P

tcptop工具则提供实时TCP流量监控,类似top命令但专注于网络连接:

# 实时监控TCP连接带宽 tcptop # 按接收流量排序,只显示前10个连接 tcptop -r -n 10

这两个工具的源码分别位于src/tcpconnect/和src/tcptop/目录。

文件系统监控:opensnoop与filelife

opensnoop能够追踪系统中所有文件打开操作,对于排查文件访问问题非常有用:

# 基础用法:追踪所有文件打开操作 opensnoop # 高级用法:只追踪特定进程的文件打开 opensnoop -p 1234 # 追踪特定目录下的文件操作 opensnoop -d /var/log

filelife则专注于文件生命周期监控,记录文件的创建和删除时间:

# 监控所有文件的创建和删除 filelife # 只监控特定类型的文件 filelife -x .log

这两个工具的实现代码可以在src/opensnoop/和src/filelife/目录找到。

进程与性能监控:execsnoop与offcputime

execsnoop工具可以追踪系统中所有新进程的执行:

# 基础用法:追踪所有新进程 execsnoop # 显示完整命令行参数 execsnoop -a # 只显示特定用户的进程 execsnoop -u username

offcputime则用于分析进程阻塞原因,找出导致应用程序性能问题的瓶颈:

# 分析所有进程的阻塞情况 offcputime # 只分析特定进程,输出详细调用栈 offcputime -p 1234 -f

这些工具的源代码位于src/execsnoop/和src/offcputime/目录。

高级技巧:自定义eBPF程序开发

对于高级用户,Ketones提供了完整的框架来开发自定义eBPF程序。以下是开发自定义工具的基本步骤:

1. 创建工具目录

cd src mkdir mytool cd mytool

2. 编写eBPF程序和用户态代码

创建mytool.bpf.c文件编写eBPF程序,创建mytool.c文件编写用户态代码。可以参考现有工具如src/tcpconnect/tcpconnect.bpf.c和src/tcpconnect/tcpconnect.c的结构。

3. 创建Makefile

创建Makefile文件,参考其他工具的Makefile格式:

include ../../common.mk BPF_SRCS := mytool.bpf.c USER_SRCS := mytool.c include ../../common_user.mk

4. 编译和测试

make ./mytool

性能优化:让Ketones工具运行得更快

使用Ketones时,可以通过以下技巧优化性能:

减少不必要的事件收集

大多数工具都支持过滤功能,只收集关心的数据:

# 只追踪特定进程的系统调用 syscount -p 1234 # 只监控特定IP的网络连接 tcpconnect -d 192.168.1.1

调整采样频率

对于性能敏感的系统,可以降低采样频率:

# 降低采样频率,减少开销 profile -F 99 # 每秒采样99次,默认为499次

使用环形缓冲区

对于高吞吐量的工具,使用环形缓冲区减少数据传输开销:

# 使用环形缓冲区模式 biotop -R

常见问题解决与最佳实践

权限问题

Ketones工具需要root权限才能运行,确保使用sudo执行:

sudo tcpconnect

内核版本兼容性

Ketones需要Linux内核4.15或更高版本。如果遇到兼容性问题,可以查看libbpf/docs/libbpf_overview.rst文档了解详细的内核支持情况。

工具输出解读

每个工具都提供了详细的帮助信息,可以通过-h参数查看:

tcpconnect -h

总结:掌握Ketones,提升系统观测能力

通过本文介绍的技巧和方法,您应该能够从入门到精通地使用Ketones内核观察工具。无论是日常系统监控、性能分析还是复杂问题诊断,Ketones都能提供强大的支持。

Ketones的强大之处在于其基于eBPF技术的设计,结合了高性能、低开销和易用性。随着您对Ketones的深入使用,您将能够发现更多隐藏在内核中的系统行为,为系统优化和问题解决提供有力的数据支持。

开始您的Ketones之旅吧,探索Linux内核的奥秘,让系统观测变得前所未有的简单高效!

【免费下载链接】ketonesA kempt eBPF tool for a new environments项目地址: https://gitcode.com/openeuler/ketones

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/1 20:00:22

终极openEuler ISO镜像构建教程:制作自定义操作系统的完整指南

终极openEuler ISO镜像构建教程:制作自定义操作系统的完整指南 【免费下载链接】openeuler-os-build A tool for build openeuler os 项目地址: https://gitcode.com/openeuler/openeuler-os-build 前往项目官网免费下载:https://ar.openeuler.or…

作者头像 李华
网站建设 2026/7/1 19:57:46

openeuler/skills部署指南:零基础也能搭建的AI协议开发环境

openeuler/skills部署指南:零基础也能搭建的AI协议开发环境 【免费下载链接】skills With the rapid advancement of AI, standard protocols for AI agents—such as MCP and Skill—are continuously emerging. This repository is established to accommodate cu…

作者头像 李华
网站建设 2026/7/1 19:55:59

解决90%的开发难题!openEuler/hi-mpu系统编译运行常见FAQ大全

解决90%的开发难题!openEuler/hi-mpu系统编译运行常见FAQ大全 【免费下载链接】hi-mpu hi-mpu is the open source repository for the mpu chip driver package. This repository provides the source code for the chip driver, driver dependencies, and build p…

作者头像 李华
网站建设 2026/7/1 19:54:00

OECP嵌入式兼容性认证:3步完成openEuler Embedded系统认证

OECP嵌入式兼容性认证:3步完成openEuler Embedded系统认证 【免费下载链接】oecp One for OSV as an certification tool 项目地址: https://gitcode.com/openeuler/oecp 前往项目官网免费下载:https://ar.openeuler.org/ar/ 在openEuler生态系统…

作者头像 李华
网站建设 2026/7/1 19:52:49

如何快速上手Kiran会话管理器:5分钟入门教程

如何快速上手Kiran会话管理器:5分钟入门教程 【免费下载链接】kiran-session-manager The session manager will load all necessary applications for a full-featured user session. 项目地址: https://gitcode.com/openeuler/kiran-session-manager 前往项…

作者头像 李华