linux中cpu使用率文件:/proc/stat 详解

转载

原文地址:https://www.cnblogs.com/mgzc-1508873480/p/7839800.html

参考文档 http://www.linuxhowtos.org/System/procstat.htm
在Linux系统中,可以用/proc/stat文件来计算cpu的利用率。这个文件包含了所有CPU活动的信息,该文件中的所有值都是从系统启动开始累计到当前时刻。
cat /proc/stat
cpu 65376847 362756 2405159 10834971593 3765180 93399 2395097 0
cpu0 7680302 5263 111909 1355640955 47680 0 185343 0
cpu1 6527638 2261 327795 1356540189 249151 1 24242 0
cpu2 6239465 47114 200809 1354709532 2153662 3610 317002 0
cpu3 7009912 36126 257576 1356116663 162851 1068 87068 0
cpu4 6028713 1692 197911 1356919175 300788 6821 216076 0
cpu5 7110575 1479 124474 1356297947 92620 4248 39901 0
cpu6 7206763 241427 247384 1355030525 691206 11642 242214 0
cpu7 17573475 27390 937298 1343716603 67218 66006 1283248 0
intr 2466653411 753885765 3 0 4 4 0 0 0 1 0 0 0 4 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 52 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 148466005 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 1553671397 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 10630155 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 21 0 0 0 0 0
ctxt 2905526438
btime 1260187150
processes 4266007
procs_running 5
procs_blocked 0
输出解释
CPU 以及CPU0、CPU1、CPU2、CPU3、CPU4、CPU5、CPU6、每行的每个参数意思(以第一行为例)为:

参数 解释
user (65376847) 从系统启动开始累计到当前时刻,用户态的CPU时间(单位:jiffies) ,不包含 nice值为负进程。1jiffies=0.01秒
nice (362756) 从系统启动开始累计到当前时刻,nice值为负的进程所占用的CPU时间(单位:jiffies)
system (2405159) 从系统启动开始累计到当前时刻,核心时间(单位:jiffies)
idle (10834971593) 从系统启动开始累计到当前时刻,除硬盘IO等待时间以外其它等待时间(单位:jiffies)
iowait (3765180) 从系统启动开始累计到当前时刻,硬盘IO等待时间(单位:jiffies) ,
irq (93399) 从系统启动开始累计到当前时刻,硬中断时间(单位:jiffies)
softirq (2395097) 从系统启动开始累计到当前时刻,软中断时间(单位:jiffies)

CPU时间=user+system+nice+idle+iowait+irq+softirq

“intr”这行给出中断的信息,第一个为自系统启动以来,发生的所有的中断的次数;然后每个数对应一个特定的中断自系统启动以来所发生的次数。
“ctxt”给出了自系统启动以来CPU发生的上下文交换的次数。
“btime”给出了从系统启动到现在为止的时间,单位为秒。
“processes (total_forks) 自系统启动以来所创建的任务的个数目。
“procs_running”:当前运行队列的任务的数目。
“procs_blocked”:当前被阻塞的任务的数目。
那么CPU利用率可以使用以下两个方法。先取两个采样点,然后计算其差值:
cpu usage=(idle2-idle1)/(cpu2-cpu1)*100
cpu usage=[(user_2 +sys_2+nice_2) - (user_1 + sys_1+nice_1)]/(total_2 - total_1)*100

 

相关推荐:

strings能提取什么字符串

在大多数编程语言里,strings通常指**从二进制文件或数据中提取“可打印字符串”**的工具或功能。下面分几种常见情况说明它能“提取什么字符串”。 一、Linux/Unix下的strings命令 能提取什么 从二进制文件、可执行文件、内存转储、磁盘镜像等中提取: ✅连续的、可打印的字符序列 ✅默认...

linux strings有哪些参数

strings是Linux下非常常用的一个命令,用来从二进制文件、数据文件等中提取可打印的字符串。下面是常用参数和说明(以GNUstrings为准,不同版本略有差异)。 基本用法 strings[选项]文件... 常用参数 1️⃣字符串长度相关 参数 说明 -n 指定最小字符串长度(默认一般是4) ...

Linux日志文件存放在哪

在Linux系统中,日志文件通常存放在/var/log目录下,这是最常见、也是标准的位置。 一、常见日志文件位置 日志文件 说明 /var/log/messages 系统通用日志(部分发行版) /var/log/syslog 系统日志(Debian/Ubuntu常见) /var/log/dmesg ...

为什么要用strings命令

strings命令主要用于从一个二进制文件(或其他非文本文件)中提取可打印的字符串。它常用于逆向工程、调试、取证分析、排查问题等场景。下面从“为什么要用”和“适合用在什么情况”来说明。 一、为什么要用strings 1.查看二进制文件里“藏了什么文字” 二进制文件(如可执行程序、动态库、核心转储)里...

怎样分析Linux错误日志

分析Linux错误日志是系统运维和故障排查的核心技能。在Linux系统中,日志是诊断问题的“黑匣子”,记录了系统、应用程序和服务的运行状态。 以下是分析Linux错误日志的系统化指南,从基础命令到高级排查思路。 一、Linux日志体系概览 1.传统日志位置(Syslog) 大多数日志集中在/var/...

strings能分析二进制文件吗

strings可以分析二进制文件,而且这是它最常见的用途之一。 什么是strings strings是一个命令行工具,用来从非文本文件(如可执行文件、库文件、coredump、固件、图片等)中提取可打印的字符串。 能做什么 分析ELF/PE/Mach-O等可执行文件 查看二进制中是否包含: 文件路径...

linux strings输出如何过滤

strings命令用于从二进制文件或数据中提取可打印字符串。如果你想要过滤输出,常见做法是用管道+文本处理工具。下面按使用场景给你一些实用示例。 一、基本用法 stringsfile 二、按字符串长度过滤(最常用) 只显示长度≥N的字符串 strings-n8file 只输出至少8个字符的字符串 三...

如何清理Linux历史日志

清理Linux历史日志(如系统日志、用户操作历史、应用日志等)需要根据日志类型和系统发行版选择对应方法。以下是常见场景的详细操作指南,操作前建议备份重要日志(如需要审计时)。 一、清理系统日志(rsyslog/journald) Linux系统日志主要由rsyslog(传统日志服务)或systemd...