发布于2026-08-19 阅读(0)
扫一扫,手机访问
在麒麟系统里,我们能够借助ps、top、taskset和pidstat这四类命令,精准地确定进程与CPU核心的对应关系。其中,ps可依据psr字段实时呈现进程当前运行的核心;top通过切换1键,能够查看每个核心的负载情况,并且启用P列来显示进程最近被调度到的核心;taskset用于验证进程亲和性掩码的范围;pidstat则可按照核心进行聚合,统计线程级别的CPU耗时分布。

在麒麟系统中精准掌握每个CPU核心上运行了哪些进程,是排查负载不均、定位NUMA调度异常或验证绑核效果的关键操作。仅看整体CPU使用率无法发现单核过载而其余核心空闲的问题。
该方法直接利用ps内置的psr字段(processor number),无需安装额外工具,结果实时准确,适用于所有麒麟OS版本(V10 SP1~SP3、桌面版与服务器版)。
执行命令:ps -eo pid,ppid,user,%cpu,psr,args --sort=psr
输出中psr列即为进程当前运行所在的逻辑CPU编号(从0开始),例如psr=3表示该进程正在CPU 3上执行;注意此值是采样时刻的瞬时绑定状态,非永久亲和性设置。
若需聚焦某一个核心(如CPU 2),加管道过滤:ps -eo pid,user,%cpu,psr,args | awk '$4==2'
top默认以整体CPU汇总显示,但可切换为每核视图并关联进程列表,适合动态追踪短时爆发型任务。
第一步:终端中运行top,进入交互界面。
第二步:按下1键——立即展开为每个逻辑CPU的独立利用率曲线,顶部显示cpu0、cpu1、cpu2…的实时占用率。
第三步:按下f键进入字段管理,用方向键选中P = Last used CPU,按空格启用,再按q退出字段菜单。
此时进程列表新增一列“P”,数值即为该进程最后一次被调度到的CPU编号;【注意:该列不反映当前持续运行位置,仅记录最近一次调度节点】。
当某个进程被显式绑核(如通过taskset启动),其调度范围受限于设定掩码,此时psr值可能跳变但始终不出掩码范围——这是验证是否真被绑核的唯一可靠方式。
方法一:查询指定PID的亲和性掩码
操作:taskset -p PID(将PID替换为实际的进程号),其输出类似pid 12345's current affinity mask: 0x00000003。把十六进制的掩码转换为二进制后,第n位要是为1,那就意味着该进程允许在CPU n上运行。例如,0x00000003转换为二进制是11,这就表示该进程只能在CPU 0和CPU 1上运行。
方法二:批量检查某用户所有进程的绑定状态
执行:pgrep -u username | xargs -r -n1 taskset -p 2>/dev/null | grep -v "no pid specified"
这一步会逐个打印该用户每个进程的亲和性掩码,跳过无权限访问的系统进程。
pidstat来自sysstat包,提供按时间维度、按核心维度的聚合统计能力,适合生成报告或监控脚本调用。
安装(如未预装):sudo apt install sysstat(Kylin V10 桌面版)或 sudo yum install sysstat(服务器版)。
执行:pidstat -t -u 1 3,其中-t显示线程级信息,-u采集CPU使用,1表示每秒刷新,3表示共采样3次。
输出中“CPU”列即为该线程所属CPU编号,配合“%CPU”列可识别出哪个核心上哪个线程长期占满;【关键点:此命令显示的是采样周期内该线程在各核心上的累计耗时分布,比psr更反映真实负载倾向】。
下一篇:银河麒麟怎么清理系统缓存垃圾
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9