包括对proc根目录下stat,uptime,swaps三个文件的解析。

  • /proc/stat

文件包含了系统启动后的一些系统统计信息。

Cat /proc/stat:
cpu 77781 1077 7602 390390 13232 216 100 0 0
cpu0 77781 1077 7602 390390 13232 216 100 0 0
intr 401502 313 2041 0 2 1 0 0 0 3 0 0 0 323410 0 50372 0 0 0 0 0 0 24632 728 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ctxt 4495297
btime 1225100748
processes 6295
procs_running 2
procs_blocked 0

上面是我机子上的文件内容。
第一行的CPU是你所有CPU负载信息的总和。后面的CPUn(n是数字)表示你那个CPU的信息,我这里只有一个CPU,所以是CPU0。也就是说我的前两行信息相同。
其中的每一个数字代表一个相关信息,可以用如下数据结构表示:

struct cpu_info
{
U64 user;
U64 system;
U64 nice;
U64 idle;
U64 iowait;
U64 irq;
U64 softirq;
};

user : 从系统启动开始累计到当前时刻,用户态的CPU时间(单位:jiffies) ,不包含 nice值为负进程。1jiffies=0.01秒
nice: 从系统启动开始累计到当前时刻,nice值为负的进程所占用的CPU时间(单位:jiffies)
system : 从系统启动开始累计到当前时刻,核心时间(单位:jiffies)
idle : 从系统启动开始累计到当前时刻,除硬盘IO等待时间以外其它等待时间(单位:jiffies)
iowait : 从系统启动开始累计到当前时刻,硬盘IO等待时间(单位:jiffies) ,
irq: 从系统启动开始累计到当前时刻,硬中断时间(单位:jiffies)
softirq : 从系统启动开始累计到当前时刻,软中断时间(单位:jiffies)
从2.6.11加了第8列stealstolen time:which is the time spent in other operating systems when running in a virtualized environment
从 2.6.24加了第9列 guest: which is the time spent running a virtual  CPU  for  guest operating systems under the control of the Linux kernel.

intr:这行给出中断的信息,第一个为自系统启动以来,发生的所有的中断的次数;然后每个数对应一个特定的中断自系统启动以来所发生的次数,依次对应的是0号中断发生的次数,1号中断发生的次数……
ctxt:给出了自系统启动以来CPU发生的上下文交换的次数
btime:给出了从系统启动到现在为止的时间,单位为秒
processes:自系统启动以来所创建的任务的个数目
procs_running:当前运行队列的任务的数目
procs_blocked:当前被阻塞的任务的数目
可以从这个文件提取一些数据来计算处理器的使用率。
处理器使用率 :
从/proc/stat中提取四个数据:用户模式(user)、低优先级的用户模式(nice)、内核模式(system)以及空闲的处理器时间(idle)。它们均位于/proc/stat文件的第一行。CPU的利用率使用如下公式来计算。
CPU利用率   =   100   *(user   +   nice   +   system)/(user   +   nice   +   system   +   idle)

  • /proc/uptime

cjf@xiyoulinux-desktop:/proc$ cat uptime
6114.49 5070.61

2个数字的意义,第一个数值代表系统总的启动时间,第二个数值则代表系统空闲的时间,都是用秒来表示的。
由上面的显示来计算,开机1.698469444小时, 0.829277667%的时间都是空闲的。

  • /proc/swaps

这个文件显示的是交换分区的使用情况。例如我的机子上交换分区的情况如下:

cjf@xiyoulinux-desktop:/proc$ cat swaps
Filename Type Size Used Priority
/dev/sda2 partition 996020 37260 -1

看下面的英文解释:
/proc/swaps provides a snapshot of every swap file name(我的是/dev/sda2), the type of swap space(类型是:partition), the total size(我的交换分区总大小996020KB), and the amount of space in use (in kilobytes)(使用了37260KB).
The priority column is useful when multiple swap files are in use. The lower the
priority, the more likely the swap file is to be used.
如果有多个交换分区,如果它的优先级(priority)越小,越容易被使用。

from:http://www.kerneltravel.net/?p=300

proc文件系统探索 之 根目录下的文件[二]的更多相关文章

  1. proc文件系统探索 之 根目录下的文件[三]

    包括对proc根目录下meminfo文件的解析. > cat /proc/meminfo   读出的内核信息进行解释,下篇文章会简单对读出该信息的代码进行简单的分析. MemTotal: 507 ...

  2. proc文件系统探索 之 根目录下的文件[1]

    2.1根目录下的文件2.1.1lock文件内核锁,记录与被打开的文件有关的锁信息. 该文件显示当前被内核锁定的文件.该文件包含的内容是内核调试数据,根据使用的系统的这些数据会变化很大.一个/proc/ ...

  3. Linux系统根目录下各文件夹介绍

    参考自:[1]Linux 系统根目录下各个文件夹的作用 https://www.cnblogs.com/jiangfeilong/p/10538795.html[2]了解Linux根目录"/ ...

  4. asp.net在网站根目录下创建文件夹

    假设要在asp.net网站的根目录下建立文件夹hovertree,C#代码如下: string m_keleyiFolderName = Server.MapPath("/hovertree ...

  5. 【转】忙里偷闲写的小例子---读取android根目录下的文件或文件夹

    原文网址:http://www.cnblogs.com/wenjiang/p/3140055.html 最近几天真的是各种意义上的忙,忙着考试,还要忙着课程设计,手上又有外包的项目,另一边学校的项目还 ...

  6. 【转】读取android根目录下的文件或文件夹

    原文网址:http://my.oschina.net/Ccx371161810/blog/287823 读取android根目录下的文件或文件夹 SDK的操作 读取android根目录下的文件或文件夹 ...

  7. 用java写一个servlet,可以将放在tomcat项目根目录下的文件进行下载

    用java写一个servlet,可以将放在tomcat项目根目录下的文件进行下载,将一个完整的项目进行展示,主要有以下几个部分: 1.servlet部分   Export 2.工具类:TxtFileU ...

  8. 忙里偷闲写的小例子---读取android根目录下的文件或文件夹

    最近几天真的是各种意义上的忙,忙着考试,还要忙着课程设计,手上又有外包的项目,另一边学校的项目还要搞,自己的东西还在文档阶段,真的是让人想死啊!! 近半个月来,C#这方面的编码比较多,android和 ...

  9. proc文件系统探索 之 以数字命名的目录

    在proc根目录下,以数字命名的目录表示当前一个运行的进程,目录名即为进程的pid.其内的目录和文件给出了一些关于该进程的信息. niutao@niutao-desktop:/proc/6584$ l ...

随机推荐

  1. 基于vue2.0的一个系统

    前言 这是一个用vue做的单页面管理系统,这里只是介绍架子搭建思路 前端架构 沿用Vue全家桶系列开发,主要技术栈:vue2.x+vue-router+vuex+element-ui1.x+axios ...

  2. Goldwell平台官网简介-欢迎咨询经理罗琪

    Goldwell平台官网简介-欢迎咨询经理罗琪1: Goldwell官网是一家国际衍生品的经纪公司.它对柬埔寨金融市场和客户绝对的承诺,在SECC的监管和保护下,提供了更加多元化的金融交易工具. Go ...

  3. 妙用 scale 与 transfrom-origin,精准控制动画方向

    上次发完 不可思议的纯 CSS 导航栏下划线跟随效果 这篇文章之后,很多朋友找我讨论,感叹 CSS 的奇妙. 然后昨天,群里一位朋友问到了一个和这个效果比较类似的效果,问如何 将下面这个动画的下划线效 ...

  4. [LeetCode] Erect the Fence 竖立栅栏

    There are some trees, where each tree is represented by (x,y) coordinate in a two-dimensional garden ...

  5. [LeetCode] Average of Levels in Binary Tree 二叉树的层平均值

    Given a non-empty binary tree, return the average value of the nodes on each level in the form of an ...

  6. [LeetCode] Lonely Pixel II 孤独的像素之二

    Given a picture consisting of black and white pixels, and a positive integer N, find the number of b ...

  7. orabbix插件监控oracle表空间问题

    我们安装好orabbix插件后,查看Tablespaces监控项是发项值为none,第一反应是没监控成功,其实不然. 1.我们打开orabbix监控项参数的路径,下面为Tablespaces的sql代 ...

  8. SpringIOC学习二

    Spring的IOC容器通过依赖注入DI(dependency injection)来实现程序之间的依赖关系,达到解耦的方式依赖的方式:a.基于xml文件配置的注入    * 构造函数注入    * ...

  9. 以技术面试官的经验分享毕业生和初级程序员通过面试的技巧(Java后端方向)

    本来想分享毕业生和初级程序员如何进大公司的经验,但后来一想,人各有志,有程序员或许想进成长型或创业型公司或其它类型的公司,所以就干脆来分享些提升技能和通过面试的技巧,技巧我讲,公司你选,两厢便利. 毕 ...

  10. 十大面试难题解惑,看完秒杀一切 HR 面。程序员必读!

    最能体现求职者能力的就是面试,能不能拿到Offer,取决于你面试时的表现,只有有准备才能在面试过程中游刃有余. 小编收集了10个面试官最爱提的问题,虽然题目千变万化,但是万变不离其宗,只要掌握了答题的 ...