讲师中心 微信公众号
AI工具推荐 视频效率加速

Linux怎么查看内核函数调用频率走势

风涛小哥_4220

风涛小哥_4220

发布时间:2026-09-02 11:18:59

|

455人浏览过

|

来源于php中文网

原创

ftrace可追踪内核函数调用频次变化趋势,需启用function tracer、限定目标函数、开启tracing并按时间戳切片统计,适合开箱即用的持续采样与时间序列分析。

linux怎么查看内核函数调用频率走势

用ftrace看内核函数调用频次变化趋势

ftrace是内核自带、开箱即用的方案,不需要额外安装,适合观察一段时间内某函数被调用的「次数走势」,比如sched_setaffinity或__do_page_fault是否在某个负载阶段突然飙升。

关键不是看单次快照,而是持续采样并导出时间序列数据。操作分三步:

  • 启用function tracer:echo function > /sys/kernel/debug/tracing/current_tracer
  • 限定目标函数(避免日志爆炸):echo sched_setaffinity > /sys/kernel/debug/tracing/set_ftrace_filter
  • 开启 tracing 并运行一段时间(比如10秒):echo 1 > /sys/kernel/debug/tracing/tracing_on;之后echo 0 > /sys/kernel/debug/tracing/tracing_on停止

注意:/sys/kernel/debug/tracing/trace里每行是一个调用事件,不是聚合计数——你要自己按时间戳(第一列)切片统计。建议用awk '{print $1}' | sort | uniq -c粗略估算单位时间调用数,再绘图。别直接 cat 大量 trace 文件,容易卡死终端。

用perf record -e cpu/event=xx/统计函数入口频次

perf更适合量化「单位时间调用次数」,尤其当你需要对比不同负载下的频率差异时。它不记录每次调用上下文,但采样稳定、开销低,且支持按时间窗口导出频次直方图。

例如统计tcp_v4_rcv每秒被调用多少次:

sudo perf record -e 'syscalls:sys_enter_recvfrom' -g --call-graph dwarf -a sleep 5

但注意:这不是直接统计函数本身,而是靠关联系统调用事件间接反映。真正统计内核函数需用perf probe先加探针:

Computer Use Linux
Computer Use Linux

顶级 Linux 计算机使用技能,配套独立自举运行时,无需本地 Claude 安装、私有原生模块等。

下载
  • 查函数符号:sudo perf probe -F | grep tcp_v4_rcv
  • 加动态探针:sudo perf probe tcp_v4_rcv
  • 采样:sudo perf record -e probe:tcp_v4_rcv -a sleep 10
  • 导出频次:sudo perf script | awk '{print $3}' | sort | uniq -c | sort -nr

缺点是probe添加后需重启perf record,不能热更新;且某些inline函数或编译优化过的函数可能probe失败,报No symbol found。

用bpftrace实时画调用频次折线图(需eBPF环境)

如果你需要真正的「实时走势」——比如每秒刷新一次当前调用次数,并输出到终端或管道绘图,bpftrace是最灵活的选择。它能在内核态完成计数+时间分桶,用户态只收聚合结果。

示例脚本,每秒输出do_sys_open调用次数:

sudo bpftrace -e '
kprobe:do_sys_open {
  @count = count();
}
interval:s:1 {
  printf("do_sys_open calls/sec: %d\n", @count);
  @count = 0;
}'

常见坑:

  • 函数名必须是内核符号名,不是头文件里的声明名(比如sys_open通常不存在,要用do_sys_open或__x64_sys_open)
  • 某些函数被static或inline修饰,bpftrace无法挂kprobe,会提示invalid probe
  • 默认只统计进入,不区分返回;如需匹配成对事件(比如open+close),得用map存PID+计数器,逻辑变复杂

为什么不能只看/proc/kallsyms或dmesg

/proc/kallsyms只列出符号地址和类型,没有调用计数;dmesg是内核日志缓冲区,除非你提前在代码里加printk,否则它不记录函数执行频次。这两者都属于静态信息源,无法反映「频率走势」这个动态指标。

真正能体现「走势」的,必须满足两个条件:带时间戳的连续采样 + 可分时段聚合。ftrace、perf、bpftrace都满足,但方式不同:ftrace原始但可控,perf适合离线分析,bpftrace适合实时监控。选哪个,取决于你手头环境有没有eBPF支持、要不要图形化、以及能否接受probe侵入式修改。

热门AI工具

更多
音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

3710

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

3233

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2293

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

5530

2023.07.05

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

5202

2023.07.06

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

3093

2023.07.20

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2605

2023.07.20

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2819

2023.07.25

PixTV AI视频生成与无限画布创作
PixTV AI视频生成与无限画布创作

PixTV专题整理AI视频与视觉内容创作相关功能使用教程,涵盖AI生图、视频生成、无限画布、多模型创作、素材管理、声音音乐及视频剪辑等功能,帮助用户快速掌握PixTV从创意到成片的完整制作方法。

0

2026.09.29

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn