zl程序教程

您现在的位置是:首页 >  其他

当前栏目

mpstat命令和/proc/stat文件

文件命令 stat proc
2023-09-14 09:01:06 时间

mpstat,top等命令都能显示出当前cpu的平均负载。这里总结一下实现原理。和磁盘容量相同,主要信息依然来自proc文件夹中的文件。

/proc/stat文件

文件中包含了所有cpu活动信息,所有值都是从系统启动开始累计到当前的值。

cat /proc/stat 可以看到:


“cpu”开头的几行给出的是cpu不同状态下时间片(单位:jiffies)。

cpu为总的信息,cpu0,cpu1….cpu n 对应各个cpu的信息。

“cpu”后面的数值是对应(user、nice、system、idle、iowait、irq、softirq、stealstolen、guest)的9元组:

数值对应cpu这行。

urt    用户时间(User time) 从系统启动开始累计到当前时刻,处于用户态的运行时间,不包括nice啥时间。 

net     Nice时间(Nice time)     系统调整进程优先级所花费的时间

smt    系统时间(System time)     从系统启动开始累计到当前时刻,处于核心态的运行时间

iet     空闲时间(Idle time)     系统空闲时间

wgt    等待时间(Waiting time)  从系统启动开始累计到当前时刻,IO等待时间(since 2.5.41)

hdt     硬中断处理时间(Hard Irq time)             从系统启动开始累计到当前时刻,硬中断时间(since 2.6.0-test4)

sqt     丢失时间(Steal  time)        从系统启动开始累计到当前时刻,软中断时间(since 2.6.0-test4)

以下两个参数可能有的系统不存在。

slt       丢失时间(Steal  time)   丢失的时间片,如果系统运行于虚拟机中,则会有时间片用在别的操作系统上。         which is the time spent in other operating systems when running in a virtualized environment(since 2.6.11)

gst     客户时间(guest  time)  系统中运行了虚拟机,会有时间片用于调度虚拟机中的操作系统内核。   which is the time spent running a virtual  CPU  for  guest operating systems under the control of the Linux kernel(since 2.6.24)

“intr”这行给出中断的信息,第一个为自系统启动以来,发生的所有的中断的次数;然后每个数对应一个特定的中断自系统启动以来所发生的次数。
“ctxt”给出了自系统启动以来CPU发生的上下文交换的次数。
“btime”给出了从系统启动到现在为止的时间,单位为秒。(实际查看发现这个值不变,原因未知)
“processes” (total_forks) 自系统启动以来所创建的任务的个数目。
“procs_running”当前运行队列的任务的数目。
“procs_blocked”当前被阻塞的任务的数目。

 

CPU占用率计算公式:

注意这里使用的是一个阶段的差值来计算使用率的,这个使用率是个平均值。

注意最后两个数值(slt,gst)可能有的版本不存在。


rate[gt]=gst/cut*100             #gt — (Guest time)系统中虚拟机使用的CPU占总CPU的百分比
【Linux】之【磁盘】相关的命令及解析[df、du、iostat、iotop] df命令来自于英文词组”Disk Free“的缩写,其功能是用于显示系统上磁盘空间的使用量情况。df命令显示的磁盘使用量情况含可用、已有及使用率等信息,默认单位为Kb,建议使用-h参数进行单位换算。
iostat命令 摘要: 一、介绍 iostat用于监视系统IO以及CPU使用情况。 二、安装 sudo apt-get install sysstat 三、语法和选项、参数 语法:iostat [选项] [参数] 选项: -c:仅显示CPU使用情况 -d:仅显示设备IO情况 -k:显示状态以kb/s为单位 -m:显示状态以