CPU与内存

本节主要介绍linux下CPU与内存的监控命令

top命令

top - 09:24:20 up 23:49,  1 user,  load average: 0.02, 0.05, 0.00
Tasks: 132 total,   1 running,  61 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.2 us,  0.5 sy,  0.0 ni, 99.0 id,  0.3 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  4016436 total,  2045928 free,  1296152 used,   674356 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  2349904 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                          
   736 root      20   0  127156  51588  23972 S   2.0  1.3  21:44.65 kube-controller                                                                                  
  1009 root      20   0  324196 188688  31260 S   1.0  4.7  16:43.87 kube-apiserver                                                                                   
   737 root      20   0   43032  22640  13396 S   0.7  0.6   6:41.29 kube-scheduler

第一行

见 Reference [3]

第三行

  • us:user,用户进程占用的cpu百分比

  • sy:system,系统进程占用的cpu百分比

  • ni:

  • id:idle,cpu空闲百分比

  • wa:wait,io等待占用的cpu百分比

  • hi:hard interupt,硬中断占用的cpu百分比

  • si:soft interupt,软中断占用的cpu百分比

第四行

见free命令

第七行

  • PID :进程ID

  • USER :进程所属用户

  • PR :priority,进程优先级,值越大优先级越高

  • NI :nice值,正值表示低优先级,负值表示高优先级

  • VIRT :virtual,进程使用的虚拟内存总量,单位Ki。VIRT=SWAP+RES

  • RES :resident,进程的常驻内存总量,即进程使用的、未被换出的内存大小,单位Ki。RES=CODE+DATA

  • SHR :shared,进程使用的共享内存大小,单位Ki

  • S :status,进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程

  • CPU% :上次更新到现在,进程使用的CPU使用百分比

  • MEM% :上次更新到现在,进程使用的物理内存百分比,MEM%=RES/total

  • TIME+ :系统启动后,进程使用的CPU时间总计。格式为:hour:min:second

  • COMMAND:进程命令

free命令

$ free -w -b
              total        used        free      shared     buffers       cache   available
Mem:     4112830464  1353334784  2061275136    17530880           0   698220544  2380181504
Swap:             0           0           0
  • total:系统物理内存大小

  • used:已使用的物理内存大小(包含了shared)

  • free:空闲的物理内存大小(不包括buffer与cache)

  • shared:已使用的共享内存大小

  • buffers:缓冲区大小(可被系统回收给应用程序用)

  • cache:缓存大小(可被系统回收给应用程序用)

  • available:应用程序可用的内存大小,一般我们说主机还有多少内存可用指的是这个值

几种关系如下:

total = used + free + buffer + cache
available <= free + buffer + cache              # 因为系统的部分page或buffer是无法回收的

使用指南

top -p pid   # 查看某个进程的物理内存使用量(RES那一列,单位为Ki)或百分比(MEM%那一列)

Reference

[1] http://www.cnblogs.com/peida/archive/2012/12/24/2831353.html

[2] http://www.voidcn.com/article/p-mqeigfuz-bqu.html

[3] http://www.ruanyifeng.com/blog/2011/07/linux_load_average_explained.html

Last updated