1、CPU



在文件 / proc / stat里面包含了CPU的信息。每次每个CPU的记录文件中使用它。下面的数字的含义是:用户,不错,系统闲置,iowait。内核的一些版本没有iowait。这些值表明在CPU的各个记号是用来从开始到现在。例如:



CPU0 256279030011832528 1637168262



这是CPU0从开机到现在256279030蜱用于用户消费,11832528用于系统的消费。所以如果我们要计算CPU在单位时间内的负荷(例如,1秒),我们只需要计算一次和蜱每秒价值之间的不同。Gkrellm是这样实现的:((200 *(V2 - V1) / cpu_ticks_per_second)+ 1)/ 2





例如,第一个读/程序/数据,256279030是用户价值;第二后一遍,该值为256289030,第二用户消耗的CPU是:((200 *(256289030 - 256279030)/ cpu_ticks_per_second( / 2)+ 1)=(10000 * 200 / 1000000)+ 1)/ 2 = 1%。





2。内存消耗



文件 / proc / meminfo它包含了记忆的信息,以及交换信息。例如:



为猫/ proc /内存信息



总计:使用:免费:共享:缓冲区:缓存:



Mem:105700966485166899 205340672067616768 367820800



交换:214678732816442982 1982357504



MemTotal:1032236 KB



MemFree:200528 KB



memshared:0 KB



hellip;hellip;



然而,从GkrellM源代码,有些版本没有统计信息的前两行,只能收集各种基于以下关键数据:值。





三.磁盘空间



从GkrellM源代码,这是一个非常复杂的数据,磁盘分区的数据可能分布在: / / /安装程序,程序 / / / proc diskstats,分区,等等。如果你想检查一些特定的路径,你需要命令像Mount的帮助下,DF等。为了减少麻烦,这个数据是直接由statfs函数得到。



Int statfs(const char *path,结构statfs * buf);



此函数只需要输入需要检查的路径的名称,并且可以返回路径所在的分区的空间使用情况:



总面积:buf.f_bsize * buf.f_blocks



空闲空间:buf.f_bsize * buf.f_bavail





4、磁盘I/O



磁盘I / O数据也越来越复杂, / proc / diskstats一些版本, / proc /分区的一些版本,一些版本的它我不知道在哪里看到但是你可以看到像CPU的数据版本,从时间到时间价值的需要,这种差异的两个价值流。





5。网络流量



网络流量也不同,但基本上可以得到 / proc /网/ dev.it还需要采取两次取其差流值。