2025年【QNX】Hogs命令使用总结

【QNX】Hogs命令使用总结本文总结了 QNX 系统下 Hogs 命令的使用 包括语法格式 参数解读和输出解读

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,相信很多人对这两个数据的区别也是一知半解,下面我来进行详尽的对比分析。

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

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

编程小号
上一篇 2025-02-27 15:57
下一篇 2025-03-03 13:46

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/101968.html