Hogs命令使用总结

本文总结了QNX系统下Hogs命令的使用,包括语法格式、参数解读和输出解读。Hogs常用于监测CPU和内存使用情况,特别是CPU数据中的PIDS和SYS列,文中进行了详细对比分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Hogs命令使用总结


在对QNX系统上进行开发时,经常会用到hogs命令来获取和分析性能数据。hogs命令会列出占用CPU的所有进程。下面我们对hogs命令进行分析总结,相信会帮助到很多初识该命令的开发者。

语法格式

hogs [options] [pids ...]
  • options : 命令参数,可以根据需求组合参数得到想要的结果;
  • pids : 进程id,可指定进程号;

参数解读

options作用
-i将输出限制为指定的迭代次数(默认值:无限制)
-m[e][t][p][s]指定要包含在每个进程的内存总量中的内存映射类型: e — MAP_ELF 映射 t — MAP_STACK 映射 s — MAP_SHARED 映射 p — MAP_PRIVATE 映射(默认)您可以连接这些类型;例如,-msp 为共享和私有映射提供内存
-n显示进程名称(hogs 始终显示进程 ID)
-p priority以给定优先级运行 hogs(默认:与父进程相同)
-S [c\m\p]按照CPU\内存\pid排序
-s设置刷新时间间隔吗,默认3秒
-%[num][c\m]只显示CPU\内存超过num%的进程

使用方式示例

# 过滤id为17708的进程,2秒钟刷新一次。
hogs -s 2 17708

# 过滤名为dog的进程,打印三次数据。
hogs -i 3 | grep dog

# 统计shared和private内存映射,并按内存占用排序.
hogs -msp -Sm

# 显示CPU占用超过1%的进程
hogs -%1c

输出解读

输出内容展示

      PID           NAME  MSEC PIDS  SYS       MEMORY
 39379107     MyProcess1   554   1%  18%  17288k   0%
 39358626     MyProcess2   779   2%  25%   7808k   0%
 39379114     MyProcess3   788   2%  26%  15960k   0%
        0         [idle]  2409   6%  80%      0k   0%
        1         [idle]  2976   8%  99%      0k   0%
        2         [idle]  2942   8%  98%      0k   0%
        3         [idle]  3003   8% 100%      0k   0%
        4         [idle]  2993   8%  99%      0k   0%
        5         [idle]  3007   8% 100%      0k   0%
        6         [idle]  3021   8% 100%      0k   0%
        7         [idle]  3013   8% 100%      0k   0%
        8         [idle]  1795   4%  59%      0k   0%
        9         [idle]   974   2%  32%      0k   0%
       10         [idle]  1043   2%  34%      0k   0%
       11         [idle]  3023   8% 100%      0k   0%

字段释义

字段作用
PID进程号
NAME进程名
MSEC距离上次结果的运行时间间隔,单位ms
PIDS本次迭代中,进程运行的时间占所有进程运行时间的百分比
SYS本次迭代中,进程运行的时间占迭代时间的百分比
MEMORY本次迭代中,进程使用的内存大小。包含的映射类型取决于 -m 选项。

在开发过程中,hogs经常被用来作为CPU以及内存使用情况的统一采集方式,在输出的列表里有两列关于CPU的数据PIDS和SYS,相信很多人对这两个数据的区别也是一知半解,下面我来进行详尽的对比分析。

PIDSSYS
含义定义本次迭代中,进程运行的时间占所有其他进程运行时间的百分比;衡量在一个时间段内,某个特定进程消耗的 CPU 时间相对于系统中所有其他进程的总 CPU 时间的百分比。本次迭代中,进程运行时间的占迭代时间的百分比;衡量在每次迭代或特定时间间隔内,某个特定进程消耗的 CPU 时间相对于整个迭代时间的百分比。
计算公式CPU占用率 = 进程的CPU耗时/系统中所有进程总CPU耗时百分比 = 进程的CPU耗时/迭代时间
计算范围进程运行时间占所有其他进程运行时间的百分比 是相对于整个操作系统中所有进程的总 CPU 时间来计算的。进程运行时间的占迭代时间的百分比 是相对于特定迭代或时间间隔来计算的。
实际用途进程运行时间占所有其他进程运行时间的百分比 主要用于评估一个进程在整个系统中的 CPU 占用情况,帮助识别系统中的 CPU 资源瓶颈。进程运行时间的占迭代时间的百分比 更关注某个特定进程在其执行过程中的 CPU 利用率,用于评估该进程在每次迭代中的性能。
举例说明假设进程运行到1000ms时进行CPU测算,当前进程本次耗时10ms。与此同时,系统中全部进程本次调用耗时时间总和为1000m。那么该进程本次获取CPU的占用为1%。假设hogs命令单次调度CPU耗时测算的时间为3000ms,当前进程本次迭代中耗时30ms,那么他的本次CPU耗时占比为10%。

至此,Hogs命令总结结束,欢迎补充。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值