• ps 和 top 的cpu的区别


    cpu的计算

    一、ps命令中%CPU字段的含义
    1、"man ps"中的解释
    CPU usage is currently expressed as the percentage of time spent running during the entire lifetime of a process.
    This is not ideal,and it does not conform to the standards that ps otherwise conforms to.CPU usage is unlikely to add up to exactly 100%.


    2、计算模型
    %CPU=(进程的生命周期中占用CPU的时间)*100/(进程的生命周期代表的时间长度)
    比如一个进程的生命周期的时间长度是1000s,然后在这1000s内占用CPU的时间是500s,那么
    %CPU=500*100/1000=50
    即最后的结果表示50%


    3、具体计算过程
    1)获取数据
    主要是从/proc/uptime文件和/proc/[PID]/stat文件获取相关数据
    2)计算
    主要根据“2、计算模型”的思路利用获得的数据进行计算

    二、top命令中%CPU字段的含义
    根据"man top"中的解释:
    "The task's share of the elapsed CPU time since the last screen update, expressed as a percentage of total CPU time."


    top命令中的%CPU字段的含义跟ps命令中的%CPU字段的含义不一样
    top命令中的%CPU字段表示:在一个固定的间隔时间内,某个进程使用的CPU时间占总CPU时间(即这段间隔时间)的比值。[在Window操作系统下的资源管理器中的CPU字段含义也是如此]


    三、手动计算top命令中的%CPU字段
    1、利用ps
    确定一个间隔时间,在间隔时间的开始处,执行ps命令,获取某个进程在开始处已经使用的CPU时间;在间隔时间的结束处,执行ps命令,获取某个进程在结束处已经使用的CPU时间。
    间隔时间内进程使用的CPU时间=结束处使用的CPU时间-开始处使用的CPU时间
    %CPU=间隔时间内进程使用的CPU时间*100/CPU总时间(即间隔时间长度)


    2、利用/proc下的数据
    其实ps命令的数据来自于/proc目录下的文件,因而如果直接使用/proc下的数据也是可以实现“手动计算top命令中的%CPU字段”的目标的


    参考文献:
    [1]http://unix.stackexchange.com/questions/58539/top-and-ps-not-showing-the-same-cpu-result
    接!

  • 相关阅读:
    [Android Pro] Fragment中使用SurfaceView切换时闪一下黑屏的解决办法
    [Android Pro] 监听Blutooth打开广播
    [Android Pro] 监听WIFI 打开广播
    [Android Pro] RecyclerView实现瀑布流效果(二)
    特征选择方法
    python pandas 计算相关系数
    dataframe 合并(append, merge, concat)
    屏幕截图
    Python 中的 sys.argv 用法
    CTPN
  • 原文地址:https://www.cnblogs.com/saryli/p/9925916.html
Copyright © 2020-2023  润新知