千家信息网

怎么解析perf报告中的swapper进程

发表于:2025-11-15 作者:千家信息网编辑
千家信息网最后更新 2025年11月15日,小编今天带大家了解怎么解析perf报告中的swapper进程,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编
千家信息网最后更新 2025年11月15日怎么解析perf报告中的swapper进程

小编今天带大家了解怎么解析perf报告中的swapper进程,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习"怎么解析perf报告中的swapper进程"的知识吧。

深入理解perf报告中的swapper进程

一、前言

1、在perf监控进程的系统调用时,会出现大量swapper进程
2、官方描述该进程是当CPU上没有其他任务运行时,就会执行swapper。换句话说swapper意味着CPU啥事也没干,跑去休息去了
3、本文来观察一下swapper在cpu上的表现

二、环境准备

组件版本
OSUbuntu 16.04.4 LTS
systemtapversion 4.2/0.165, commit release-4.1-41-g9cde541d4464

三、准备脚本

祭出我们强有力的工具systemtap,这里需要注意的是,systemtap各版本之间有一定的差异,

root@wilson-ubuntu:/opt/stap# stap -VSystemtap translator/driver (version 4.2/0.165, commit release-4.1-41-g9cde541d4464)Copyright (C) 2005-2019 Red Hat, Inc. and othersThis is free software; see the source for copying conditions.tested kernel versions: 2.6.18 ... 5.1-rc2enabled features: PYTHON3 NLS

确定好版本之后,编写一个脚本,主要用到probe::scheduler.cpu_off,https://sourceware.org/systemtap/tapsets/API-scheduler-cpu-off.html

脚本如下:

probe scheduler.cpu_off{        printf("%20s (%5d) %5s %20s (%5d)  , is idle:%d \n ", task_execname(task_prev),task_pid(task_prev),"==>",task_execname(task_next),task_pid(task_next),idle)}

脚本非常简单,scheduler.cpu_off主要描述了进程离开CPU的状态:
task_prev:即将离开CPU的进程
task_next:即将进入CPU的进程
idle:cpu是否处于空闲,这个变量就是我们关注的重点,如果idle为1,那就证明CPU并没有运行任务

四、运行脚本

由于数据量太大,我们筛选一部分:

root@wilson-ubuntu:/opt/stap# stap switch.stp...            swapper/0 (    0)   ==>               stapio (29159)  , is idle:1               stapio (29159)   ==>            swapper/0 (    0)  , is idle:0            swapper/0 (    0)   ==>            rcu_sched (    7)  , is idle:1            rcu_sched (    7)   ==>            swapper/0 (    0)  , is idle:0            swapper/2 (    0)   ==>       irq/31-iwlwifi (  542)  , is idle:1       irq/31-iwlwifi (  542)   ==>            swapper/2 (    0)  , is idle:0            swapper/2 (    0)   ==>       irq/31-iwlwifi (  542)  , is idle:1       irq/31-iwlwifi (  542)   ==>            swapper/2 (    0)  , is idle:0            swapper/2 (    0)   ==>       irq/31-iwlwifi (  542)  , is idle:1       irq/31-iwlwifi (  542)   ==>            swapper/2 (    0)  , is idle:0            swapper/2 (    0)   ==>       irq/31-iwlwifi (  542)  , is idle:1       irq/31-iwlwifi (  542)   ==>            swapper/2 (    0)  , is idle:0            swapper/0 (    0)   ==>            rcu_sched (    7)  , is idle:1            rcu_sched (    7)   ==>            swapper/0 (    0)  , is idle:0            swapper/2 (    0)   ==>       irq/31-iwlwifi (  542)  , is idle:1       irq/31-iwlwifi (  542)   ==>            swapper/2 (    0)  , is idle:0            swapper/2 (    0)   ==>       irq/31-iwlwifi (  542)  , is idle:1       irq/31-iwlwifi (  542)   ==>            swapper/2 (    0)  , is idle:0            swapper/0 (    0)   ==>            rcu_sched (    7)  , is idle:1            swapper/1 (    0)   ==>               stapio (29159)  , is idle:1...

1、由于是4核的cpu,所以有4个swapper,swapper/n
2、swapper的进程号是0,在系统初始化时创建init进程,之后它就成了一个最低优先级的空闲任务
3、当swapper出现在左边的时候(即将离开cpu的进程),对应最后一个字段idle是1,这时候证明cpu上运行的swapper进程(CPU去闲散去了)
4、由此验证了,当cpu运行swapper进程的时候,实际上cpu是处于闲散的状态,并没有任何真正的任务在上面运行,处于idle状态

感谢大家的阅读,以上就是"怎么解析perf报告中的swapper进程"的全部内容了,学会的朋友赶紧操作起来吧。相信小编一定会给大家带来更优质的文章。谢谢大家对网站的支持!

进程 运行 脚本 报告 任务 朋友 版本 状态 闲散 内容 就是 文章 时候 知识 空闲 系统 跟着 问题 准备 帮助 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 计算机网络技术职业现状分析 零基础学软件开发编程 苏州服务器pdu电源型号 2950服务器 vb程序如何创建数据库 扬州网络安全准入控制系统公司 网络安全研判分析报告 关系之间的关联类型数据库 重庆服务器硬盘经销商 软件开发好后如何打包 三级网络技术成绩 西电应用密码学与网络安全作业 向数据库数据插入自增数 哪些服务器支持atx电源 网络安全监管系统中安全核査包括 派出所召开网络安全保密教育 国家外语数据库 个人云主机搭建个人云端服务器 数据库系统设计电脑销售管理 数据库备份 完整 网络安全模式的作用 永兴学计算机软件开发培训多少钱 faker其他服务器id csgo 服务器命令 怎么删干净数据库2014 新乡市微粒互联网科技有限公司 连云港网络安全管理模式 保险行业有没有统一的数据库 常用的解决网络安全的技术 腾讯人脸验证一直服务器错误
0