inux系统查看一个进程占用的CPU和内存

Linux系统查看一个进程占用的CPU和内存
top命令
top -p pid

top -p 7746 # 查看进程的信息

top - 10:33:32 up 247 days, 22:26,  1 user,  load average: 0.22, 0.08, 0.02
Tasks:   1 total,   0 running,   1 sleeping,   0 stopped,   0 zombie
Cpu(s): 10.7%us,  1.2%sy,  0.0%ni, 87.9%id,  0.0%wa,  0.0%hi,  0.2%si,  0.0%st
Mem:  16334568k total, 15955136k used,   379432k free,   524960k buffers
Swap: 16383992k total,   558004k used, 15825988k free,  9008916k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+ COMMAND                                                   
 7746 root      20   0 11.2g 3.9g  90m S 43.6 25.3 765:41.49 java   
 

1
2
3
4
5
6
7
8
9
10
11
12
分析说明:
PID :进程pid
USER: root , OS系统用户
NI: 进程执行的系统有限级
VIRT:kb为单位, virtual memory usage,虚拟内存的使用量. 如果申请了100M,而实际使用了不到100M,则实际申请的为100M。 则最大的值分配,而实际可能并没有使用这么多的虚拟内存的量。 具体实际使用了多少,则需要进一步分析。
RES:kb为单位, resident memory usage,常驻内存。也就是当前进程使用的内存,不包括swap out. 。 同上述使用的VIRT分配机制相反,当申请使用100M,而实际使用的是10M,则此值只分配10M。 而关于库占用内存的情况,它只统计加载的库文件所占内存大小。包含当前进程占用的共享内存。
SHR:kb为单位, 共享内存的占用情况。除了自身占用的共享内存,也包含其它进程占用的共享内存(也就是linux类似so库加载的共享内存)。
所以,当前进程占用的实际物理内存为(独有):RES-SHR
%CPU : 上次更新到现在的CPU时间占用百分比. 这里是显示的是多个cpu占用率的总和。 如果操作系统的cpu是8个,则最大可以达到800%。 而整体的cpu使用率,可看首三行来确定。
%MEM:占用物理内存的百分比,整体的。机器总内存 *%MEM 约等于RES
TIME+: 进程运行的时间
COMMAND: 运行的具体内存

注: linux内存分配机制原理?待进一步整理。

通过/proc目录进程统计信息看
linux查看进程运行时信息
目录/proc/进程号/status

cat /proc/7746/status
运行结果 :
Name:   java
State:  S (sleeping)
Tgid:   7746
Pid:    7746
PPid:   3289
TracerPid:      0
Uid:    0       0       0       0
Gid:    0       0       0       0
Utrace: 0
FDSize: 1024
Groups: 0 490 
VmPeak: 11947528 kB
VmSize: 11881992 kB
VmLck:         0 kB
VmHWM:   4219428 kB
VmRSS:   4218912 kB
VmData: 11604424 kB
VmStk:        96 kB
VmExe:         4 kB
VmLib:     17608 kB
VmPTE:      8728 kB
VmSwap:        0 kB
Threads:        232
SigQ:   3/127458
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000301000
SigCgt: 20000001800044ff
CapInh: 0000000000000000
CapPrm: ffffffffffffffff
CapEff: ffffffffffffffff
CapBnd: ffffffffffffffff
Cpus_allowed:   f
Cpus_allowed_list:      0-3
Mems_allowed:   00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000001
Mems_allowed_list:      0
voluntary_ctxt_switches:        3
nonvoluntary_ctxt_switches:     1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
其中:
VmRSS: 4218912 kB 当前进程运行的内战的内存。

通过ps aux查看进程使用量
ps aux : 列出进程所有的信息
通过awk过滤显示具体进程信息

命令行: ps aux|awk 'BEGIN{print "USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND"}{if($2==7746){print}}'
显示结果:
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root      7746 11.4 25.8 11881992 4219584 ?    Sl   Aug18 782:54 /app/IBM/WebSphere/AppServer/java_1.7_64/bin/java
1
2
3
4
RSS:为当前进程占用的内存数据
%CPU:占用的总的CPU的百分比

注:按内存使用%MEM 从到小排序 ps aux|sort -k4nr |head -n 10 以第四个fields排序,并显示。
————————————————
版权声明:本文为CSDN博主「Martin201609」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Martin201609/article/details/100032528

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值