Linux CPU、内存、磁盘、使用率计算

Linux CPU、内存、磁盘、使用率计算

原创作品,转载请标明出处。

命令方式查看:

cpu使用率:

如果发现多个进程cpu使用率加起来高于100%,或者单个进程(可能开多个线程导致)使用率高于100%,说明该top工具版本比较旧,使用单核cpu方式计算的使用率。

解决办法:
  1. 更新top工具或者使用其他工具(经测试busybox-1.29.3中的top命令是准确的)。
  2. 手动计算,用 使用率 除以 cpu核数 = 真实的cpu使用率。
[root@agent ~]# top
1548244028619.png

memory使用率:

计算方式:used / total * 100% = 内存使用率
[root@agent ~]# free
1548244619967.png

disk使用率:

[root@agent ~]# df
1548244755982.png

解析proc文件获取:

cpu使用率:

proc文件:/proc/stat
字段解释:只看行首以cpu开头的行,每列字段含义为:
  • name 设备名
  • user 从系统启动开始累计到当前时刻,处于用户态的运行时间,不包含 nice值为负进程。
  • nice 从系统启动开始累计到当前时刻,nice值为负的进程所占用的CPU时间。
  • system 从系统启动开始累计到当前时刻,处于核心态的运行时间。
  • idle 从系统启动开始累计到当前时刻,除IO等待时间以外的其它等待时间。
  • iowait 从系统启动开始累计到当前时刻,IO等待时间。
  • irq 从系统启动开始累计到当前时刻,硬中断时间。
  • softirq 从系统启动开始累计到当前时刻,软中断时间。
  • stealstolen 从系统启动开始累积到当前时刻,在虚拟环境运行时花费在其他操作系统的时间。
  • guest 从系统启动开始累积到当前时刻,在Linux内核控制下的操作系统虚拟cpu花费的时间。
  • guest_nice 从系统启动开始累积到当前时刻,在Linux内核控制下的操作系统虚拟cpu花费在nice进程上的时间。
cpu每核时间:
  • 第一行name为cpu,描述的是总的cpu时间分配。
  • cpu[0 1 2 3 ...],指的是cpu单核的时间分配。
单位:jiffies

jiffies 是内核中的一个全局变量,用来记录系统启动以来产生的节拍数,在 Linux 中,一个节拍大致可以理解为操作系统进程调度的最小时间片,不同的 Linux 系统内核这个值可能不同,通常在 1ms 到 10ms 之间。

计算方式:
  • cpu总时间 = user + nice + system + idle + iowait + irq + softirq + stealstolen + guest + guest_nice
  • cpu使用率计算
    1. 请在一段时间内(推荐:必须大于0s,小于等于1s),获取两次cpu时间分配信息。
    2. 计算两次的cpu总时间:total_2 - total_1
    3. 计算两次的cpu剩余时间:idle_2 - idle_1
    4. 计算两次的cpu使用时间:used = (total_2 - total_1) - (idle_2 - idle_1)
    5. cpu使用率 = 使用时间 / 总时间 * 100% = used / total * 100%
[root@agent ~]# cat /proc/stat
1548244985880.png

memory使用率

proc文件:/proc/meminfo
字段解释:
  • MemTotal 可用的总内存--总物理内存减去kernel 代码/数据段占用再减去保留的内存区,mem_init_print_info里面有具体计算方式。
  • MemFree 完全未用到的物理内存 LowFree + HighFree。
  • MemAvailable MemFree+Active(file)+Inactive(file) - (watermark+min(watermark,Active(file)+Inactive(file)/2)) file占用的内存是可以释放的,但是释放的过多,会导致swap发生。
  • Buffers block device 文件读写用到的page 。
  • Cached 普通文件占用的缓冲,所有缓冲页(page cache)的总和,包括:
    cached+buffer+swap cache swap cache中包含的是被确定要swapping换页、但是尚未写入物理交换区的匿名内存页(匿名指的是未关联任何具体文件)
  • SwapCached 内存足够的情况下,这个值一般为0,那些匿名内存页,比如用户进程通过malloc()申请的内存页是没有关联任何文件的(有别于backing storage基于磁盘文件的内存页),如果发生swapping换页,这类内存页会被写入交换区。从一个匿名内存页被确定要被换页开始,它就被计入了swap cache,但是不一定会被立刻写入物理交换区,因为Linux的原则是除非绝对必要,尽量避免I/O。所以swap cache中包含的是被确定要swapping换页、但是尚未写入物理交换区的匿名内存页。
  • Active (pages[LRU_ACTIVE_ANON] + pages[LRU_ACTIVE_FILE]),ACTIVE_ANON和ACTIVE_FILE,分别表示anonymous pages和mapped pages。用户进程的内存页分为两种:与文件关联的内存(比如程序文件、数据文件所对应的内存页)和与文件无关的内存(比如进程的堆栈,用malloc申请的内存),前者称为file pages或mapped pages,后者称为anonymous pages。
  • Inactive pages[LRU_INACTIVE_ANON] + pages[LRU_INACTIVE_FILE],这部分具体可以参考LRU 内存管理算法。
  • SwapTotal 可用的swap空间的总的大小。
  • SwapFree 剩余swap空间的大小。
  • Dirty 需要写入磁盘的内存区大小。
  • Writeback 正在被写回磁盘的大小。
  • AnonPages 未映射页的内存大小。
  • Mapped 设备和文件等映射的大小。
  • Slab 内核数据结构slab的大小,可以减少申请和释放内存带来的消耗。
  • 其他字段请自行百度参考。
计算方式
  • 内存使用率 = (MemTotal - MemAvailable) / MemTotal * 100%
[root@agent ~]# cat /proc/meminfo
1548246581741.png

disk使用率

目前没有最准确的方式(没有精力去百度翻资料)来获取,后续补上。。。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容