[Study] top是如何实现的?

Posted carlsplace

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Study] top是如何实现的?相关的知识,希望对你有一定的参考价值。

Linux中的top命令是如何实现的?

初探

top是procs的一部分, 常用来查看系统的负载情况. procs中除了top外, 还包括ps, free, w, uptime, watch, sysctl等常用的命令. 了解top命令除了直接在terminal使用之外, 就是top的官方文档源代码了.
不过在此之前, 我们可以用strace top看下运行top命令时到底做了什么?

  1. 首先会读取一系列以依赖文件
    技术图片
  2. 然后会读取一些系统配置信息
    技术图片
  3. 最后就是从/proc目录下读取进程的statm信息
    技术图片

/proc/xxx/statm

[cal@manjaro-nuc10i7fnh ~]$ cat /proc/self/statm
2126 130 114 6 0 112 0

2126 a)进程占用的总的内存
130 b)进程当前时刻占用的物理内存
114 c)同其它进程共享的内存
6 d)进程的代码段
0 e)共享库(从2.6版本起,这个值为0)
112 f)进程的堆栈
0 g)dirty pages(从2.6版本起,这个值为0)

源代码实现

挖坑, 先记个参考资料 https://blog.csdn.net/ubuntu2016/article/details/79439658

以上是关于[Study] top是如何实现的?的主要内容,如果未能解决你的问题,请参考以下文章

几条jQuery代码片段助力Web开发效率提升

Unix Study之--AIX系统监控工具tops

[Python Study Notes]psutil模块

[Python Study Notes] psutil模块

如何实现具有不同片段/布局的 ViewPager

ASP.net MVC 代码片段问题中的 Jqgrid 实现