千家信息网

如何进行Linux CPU中的Kernel space分析

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,如何进行Linux CPU中的Kernel space分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。简单说,Kernel space
千家信息网最后更新 2024年09月22日如何进行Linux CPU中的Kernel space分析

如何进行Linux CPU中的Kernel space分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

简单说,Kernel space 是 Linux 内核的运行空间,User space 是用户程序的运行空间。为了安全,它们是隔离的,即使用户的程序崩溃了,内核也不受影响。

Kernel space 可以执行任意命令,调用系统的一切资源;User space 只能执行简单的运算,不能直接调用系统资源,必须通过系统接口(又称 system call),才能向内核发出指令。

str = "my string" // 用户空间x = x + 2file.write(str) // 切换到内核空间y = x + 4 // 切换回用户空间

上面代码中,第一行和第二行都是简单的赋值运算,在 User space 执行。第三行需要写入文件,就要切换到 Kernel space,因为用户不能直接写文件,必须通过内核安排。第四行又是赋值运算,就切换回 User space。

查看 CPU 时间在 User space 与 Kernel Space 之间的分配情况,可以使用top命令。它的第三行输出就是 CPU 时间分配统计。

这一行有 8 项统计指标。

其中,第一项24.8 us(user 的缩写)就是 CPU 消耗在 User space 的时间百分比,第二项0.5 sy(system 的缩写)是消耗在 Kernel space 的时间百分比。

随便也说一下其他 6 个指标的含义。

  • ni:niceness 的缩写,CPU 消耗在 nice 进程(低优先级)的时间百分比

  • id:idle 的缩写,CPU 消耗在闲置进程的时间百分比,这个值越低,表示 CPU 越忙

  • wa:wait 的缩写,CPU 等待外部 I/O 的时间百分比,这段时间 CPU 不能干其他事,但是也没有执行运算,这个值太高就说明外部设备有问题

  • hi:hardware interrupt 的缩写,CPU 响应硬件中断请求的时间百分比

  • si:software interrupt 的缩写,CPU 响应软件中断请求的时间百分比

  • st:stole time 的缩写,该项指标只对虚拟机有效,表示分配给当前虚拟机的 CPU 时间之中,被同一台物理机上的其他虚拟机偷走的时间百分比

如果想查看单个程序的耗时,一般使用time命令。

程序名之前加上time命令,会在程序执行完毕以后,默认显示三行统计。

  • real:程序从开始运行到结束的全部时间,这是用户能感知到的时间,包括 CPU 切换去执行其他任务的时间。

  • user:程序在 User space 执行的时间

  • sys:程序在 Kernel space 执行的时间

usersys之和,一般情况下,应该小于real。但如果是多核 CPU,这两个指标反映的是所有 CPU 的总耗时,所以它们之和可能大于real

[参考链接]

  • User space vs kernel space

  • Using the Linux Top Command

  • Understanding Linux CPU stats

  • What do 'real', 'user' and 'sys' mean in the output of time(1)?

引用自:https://note.youdao.com/share/?id=799c86ffc9de49ff383b639d155a446e&type=note#/

首先我简单解释一下客户所看到的问题。如下图第三行,top统计Cpu总体使用情况,使用了八个指标。这八个指标分别是:用户空间进程(us)、内核空间进程(sy)、高nice值的用户空间进程(ni)、空闲(id)、空闲等待io(wa)、中断上半部(hi)、中断下半部(si)、以及steal时间(st)。理论上来讲这八个指标之和应该是100%。这八个指标当中,id和wa是Cpu空闲时间的统计,这两个值之和越小,说明Cpu越忙碌。客户这台服务器的id与wa之和是0,所以这台服务器的Cpu使用率是100%,其中占比最大的是ni。

除了第三行Cpu总体统计指标之外,top会对Cpu的使用率,从进程维度上进行统计,也就是CPU这一列。因为这台服务器是16核的,所以每个进程(多线程)的Cpu使用率可以超过100%,同时所有进程Cpu使用率之和不能超过上线1600%(平均到每个核是100%)。

看完上述内容,你们掌握如何进行Linux CPU中的Kernel space分析的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

时间 指标 用户 百分 百分比 程序 空间 缩写 进程 统计 之和 内核 三行 切换 使用率 命令 问题 消耗 运算 情况 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 华为服务器启动u盘怎么做 晨曦软件开发 社区网络安全领域主要的风险挑战 搭建网络安全虚拟实验环境 软件开发怎么转管理岗 db2数据库节点数量 网站可以挂在服务器上吗 用代理服务器会变卡吗 假期网络安全注意事项 南京林业大学园林特色数据库 宣城电力软件开发公司哪家好 消费者数据库 零售户 赤峰定制软件开发创新服务 党员管理系统无法连接服务器 关于数据库课程设计论文 pubg主播一般都玩什么服务器 打游戏网络安全 上海服务器机柜批发厂家 机甲和塔式服务器哪个更便宜 三个月学会软件开发 元气骑士如何双持其他服务器 值班表软件开发需求分析 银行服务器工程师好不好 饥荒专用服务器为什么突然重置了 青少年对于网络安全的看法 数据库能做到动态管理 网络安全责任宣传普及 4g网络技术支持下的应用有哪些 下载视频服务器 网络安全检查记录
0