精华内容
下载资源
问答
  • 写一个脚本计算一下linux系统所有进程占用内存大小的和。 核心要点 PS命令用法 for循环 加法运算 代码块 #!/bin/bash sum=0 for n in `ps aux |grep -v 'TIME COMMAND'|awk '{print $6}'` do sum=$[$sum+$n] done...

    题目要求

    写一个脚本计算一下linux系统所有进程占用内存大小的和。

    核心要点

    • PS命令用法
    • for循环
    • 加法运算

    代码块

    #!/bin/bash
    sum=0
    for n in `ps aux |grep -v 'TIME COMMAND'|awk '{print $6}'`
    do
        sum=$[$sum+$n]
    done
    echo $sum
    

    成果展示

    在这里插入图片描述

    展开全文
  • 现在想要查询该进程占用的内存大小linux命令行 下有很多的工具进行查看,现总结常见的几种方式: 通过进程的 status [root@web3_u ~]# cat /proc/25282/status Name: php-cgi State: S (sleeping) Tgid: 25282 ...

    linux下查询进程占用的内存方法总结

    假设现在有一个「php-cgi」的进程 ,进程id为「25282」。现在想要查询该进程占用的内存大小。linux命令行
    下有很多的工具进行查看,现总结常见的几种方式:

    通过进程的 status

    [root@web3_u ~]# cat /proc/25282/status
    Name:    php-cgi
    State:    S (sleeping)
    Tgid:    25282
    Pid:    25282
    PPid:    27187
    TracerPid:    0
    Uid:    99    99    99    99
    Gid:    99    99    99    99
    Utrace:    0
    FDSize:    256
    Groups:    99
    VmPeak:      496388 kB
    VmSize:      438284 kB
    VmLck:           0 kB
    VmHWM:      125468 kB
    VmRSS:      113612 kB
    VmData:       92588 kB
    VmStk:         100 kB
    VmExe:        6736 kB
    VmLib:       18760 kB
    VmPTE:         528 kB
    VmSwap:           0 kB
    Threads:    1
    SigQ:    0/46155
    SigPnd:    0000000000000000
    ShdPnd:    0000000000000000
    SigBlk:    0000000000000000
    SigIgn:    0000000000001000
    SigCgt:    0000000184000004
    CapInh:    0000000000000000
    CapPrm:    0000000000000000
    CapEff:    0000000000000000
    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:    68245
    nonvoluntary_ctxt_switches:    15751

    VmRSS: 113612 kB 表示占用的物理内存

    通过 pmap

    
    [root@web3_u ~]# pmap -x 25282
    25282:   /usr/local/php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/php-fpm.conf
    Address           Kbytes     RSS   Dirty Mode   Mapping
    0000000000400000    6736    2692       0 r-x--  php-cgi
    0000000000c93000     264     196     120 rw---  php-cgi
    0000000000cd5000      60      48      48 rw---    [ anon ]
    . . .
    00007fd6226bc000       4       4       4 rw---  ld-2.12.so
    00007fd6226bd000       4       4       4 rw---    [ anon ]
    00007fff84b02000      96      96      96 rw---    [ stack ]
    00007fff84bff000       4       4       0 r-x--    [ anon ]
    ffffffffff600000       4       0       0 r-x--    [ anon ]
    ----------------  ------  ------  ------
    total kB          438284  113612  107960

    关键信息点

    • 进程ID

    • 启动命令「/usr/local/php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/php-fpm.conf」

    • RSS :占用的物理内存 113612KB

    通过 smaps

    [root@web3_u ~]# cat /proc/25282/smaps | grep '^Rss:' \
    | awk '{sum +=$2} END{print sum}'
    113612

    求和得到实际占用物理内存为 113612

    通过 ps 命令

    [root@web3_u ~]#  ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid'  \
    | awk '$1 ~ /25282/'
    25282 php-cgi         /usr/local/php/bin/php-cgi   0.0 113612 438284 Oct09 nobody     99

    awk 过滤 25282 进程号,得到第5列「rsz」的内存大小为「113612」

    输出php-cgi进程占用的物理内存,并从高到低进行排序

    [root@web3_u ~]# ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid'  \
    | grep php-cgi | sort -k5nr

    输出结果

    23946 php-cgi         /usr/local/php/bin/php-cgi   0.0 129540 440000 Oct06 nobody     99
    24418 php-cgi         /usr/local/php/bin/php-cgi   0.0 129336 437684 Oct06 nobody     99
    18973 php-cgi         /usr/local/php/bin/php-cgi   0.0 129268 440176 Oct06 nobody     99
    17219 php-cgi         /usr/local/php/bin/php-cgi   0.0 126588 439840 Oct06 nobody     99
     6996 php-cgi         /usr/local/php/bin/php-cgi   0.0 124876 438104 Oct09 nobody     99
    23850 php-cgi         /usr/local/php/bin/php-cgi   0.0 122984 440036 Oct09 nobody     99
    28310 php-cgi         /usr/local/php/bin/php-cgi   0.0 122920 436456 Oct09 nobody     99

    其中rsz为实际内存,上例实现按内存排序,由大到小

    TOP 命令输出的列

    PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
    25282 nobody    20   0  428m 110m  93m S  0.0  1.9   0:34.42 php-cgi
    

    输出列信息

    • PID 25282

    • 用户 nobody

    • 虚拟内存 428M

    • 物理内存 110M 110*1024= 112640 「和前面计算出来的值基本一致」

    • 共享内存 93M

    • 进程使用的物理内存和总内存的百分比 1.9 %

    PID:进程的ID
    USER:进程所有者
    PR:进程的优先级别,越小越优先被执行
    NInice:值
    VIRT:进程占用的虚拟内存
    RES:进程占用的物理内存
    SHR:进程使用的共享内存
    S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
    %CPU:进程占用CPU的使用率
    %MEM:进程使用的物理内存和总内存的百分比
    TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
    COMMAND:进程启动命令名称

    按P

    PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
    16036 root      20   0 8902m 8.6g  480 R 100.0 36.6   0:33.15 redis-server
    12934 root      20   0 8902m 8.6g 1072 S  5.5 36.6 285:37.81 redis-server
    969 root      20   0     0    0    0 D  4.2  0.0 277:14.85 flush-252:16
    1304 root      23   3 1689m  50m 3264 S  4.2  0.2   1445:03 xs-searchd
    1294 root      20   0 14928  928  584 S  3.5  0.0 635:05.31 xs-indexd
    1287 nobody    20   0 12884  772  576 S  2.8  0.0 833:11.42 dnsmasq
    1302 root      23   3 1113m  39m 3244 S  0.7  0.2   1437:57 xs-searchd
    4444 www       20   0  280m  43m  884 S  0.7  0.2  27:43.92 nginx
      1 root      20   0 19232 1160  868 S  0.0  0.0   0:06.75 init

    按 P .表示按cpu排序,默认也是按cpu排序

    按M

    PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
    12934 root      20   0 8902m 8.6g 1072 S  6.0 36.6 285:39.77 redis-server
    16036 root      20   0 8902m 8.6g  480 R 100.0 36.6   1:11.42 redis-server
    1236 www       20   0 1053m 209m 6556 S  0.0  0.9   4:40.70 php-cgi
    1231 www       20   0 1034m 146m 6536 S  0.0  0.6   4:20.82 php-cgi
    1184 www       20   0 1043m 119m 6584 S  0.0  0.5   4:21.85 php-cgi

    按M 。 表示按占用内存排序。 第一列 redis服务器占用了8.6G的内存 。 这个内存和redis info

    [root@img1_u ~]# redis-cli info memory
    # Memory
    used_memory_human:8.32G

    基本相同。

    [root@img1_u ~]# top -u www
    top - 22:09:01 up 67 days, 14:16,  1 user,  load average: 0.61, 0.90, 0.98
    Tasks: 283 total,   2 running, 281 sleeping,   0 stopped,   0 zombie
    Cpu(s):  3.9%us,  1.0%sy,  0.5%ni, 89.7%id,  4.6%wa,  0.0%hi,  0.3%si,  0.0%st
    Mem:  24542176k total, 21130060k used,  3412116k free,  1750652k buffers
    Swap:   524280k total,        0k used,   524280k free,  4039732k cached
    
      PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
      681 www       20   0  855m  25m 5796 S  0.0  0.1   0:47.00 php-cgi
     1181 www       20   0  887m  57m 6484 S  0.0  0.2   4:41.66 php-cgi
     1183 www       20   0  864m  34m 6320 S  0.0  0.1   3:52.39 php-cgi
     1184 www       20   0 1043m 119m 6584 S  0.0  0.5   4:21.85 php-cgi
     1185 www       20   0  869m  39m 6376 S  0.0  0.2   3:57.84 php-cgi
     1186 www       20   0  886m  56m 6244 S  0.0  0.2   3:44.75 php-cgi
     1187 www       20   0  926m  66m 6480 S  0.0  0.3   4:16.12 php-cgi
     1188 www       20   0  890m  60m 6288 S  0.0  0.3   4:13.35 php-cgi
     1189 www       20   0  892m  62m 6408 S  0.0  0.3   4:06.60 php-cgi

    -u 指定用户。 php-cgi占用的内存在60M左右

    按进程消耗内存多少排序的方法

    通过 ps 命令

    第一种方法

    ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | sort -k5nr

    第二种方法

    ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' --sort -rsz

    输出结果

    [root@web3_u ~]# ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user' | sort -k5nr
    23946 php-cgi         /usr/local/php/bin/php-cgi   0.0 129540 440000 Oct06 nobody
    24418 php-cgi         /usr/local/php/bin/php-cgi   0.0 129336 437684 Oct06 nobody
    18973 php-cgi         /usr/local/php/bin/php-cgi   0.0 129268 440176 Oct06 nobody
    17219 php-cgi         /usr/local/php/bin/php-cgi   0.0 126588 439840 Oct06 nobody
     6996 php-cgi         /usr/local/php/bin/php-cgi   0.0 125056 438104 Oct09 nobody
    23850 php-cgi         /usr/local/php/bin/php-cgi   0.0 122984 440036 Oct09 nobody

    参数解析:

    • -e 显示所有进程

    • -o 定制显示信息

    • pid 进程ID

    • comm 进程名

    • args 启动命令

    • pcpu 占用CPU 百分比

    • rsz 占用物理内存大小

    • vsz 占用虚拟内存大小

    • stime 进程启动时间

    • user 启动用户

    以第一行为例

    • 进程ID 23946

    • 进程名 php-cgi

    • 启动命令 /usr/local/php/bin/php-cgi

    • 占用CPU 0

    • 占用物理内存 129540

    • 占用虚拟内存 440000

    • 启动时间 Oct06

    • 启动用户 nobody

    ps 命令

    通过 top 命令

    top命令默认是以CPU排序输出的,按字母「M」,可以按内存占用大小进行排序显示

    PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
    23946 nobody    20   0  429m 126m 107m S  0.0  2.2   1:15.01 php-cgi
    24418 nobody    20   0  427m 126m 109m S  0.0  2.2   1:19.56 php-cgi
    18973 nobody    20   0  429m 126m 107m S  0.0  2.2   1:20.18 php-cgi
    17219 nobody    20   0  429m 123m 104m S  0.0  2.1   1:23.60 php-cgi
    6996 nobody    20   0  427m 122m 105m S  0.0  2.1   1:05.27 php-cgi
    23850 nobody    20   0  429m 120m 101m S  0.0  2.1   1:02.43 php-cgi

    输出参数介绍

    • PID:进程的ID

    • USER:进程所有者

    • VIRT:进程占用的虚拟内存

    • RES:进程占用的物理内存

    • SHR:进程使用的共享内存

    • S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数

    • %CPU:进程占用CPU的使用率

    • %MEM:进程使用的物理内存和总内存的百分比

    • TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。

    •  
    展开全文
  • 方法一:top命令 top -b -n 1 |grep opera|awk '{print "cpu:"$9"%","mem:"$10"%"}' ...RSS-------------进程实际占用物理内存大小; VSZ--------------任务虚拟地址空间大小 方法三:cat /proc/pid/sta

    方法一:top命令

    top -b -n 1 |grep opera|awk '{print "cpu:"$9"%","mem:"$10"%"}'
    cpu:0.0% mem:26.4%

    方法二: ps -aux

    其中:

    RSS-------------进程实际占用物理内存大小;

    VSZ--------------任务虚拟地址空间的大小

    方法三:cat /proc/pid/status

    [root@localhost ~]# cat /proc/self/status
    Name: cat
    State: R (running)
    SleepAVG: 88%
    Tgid: 5783
    Pid: 5783
    PPid: 5742
    TracerPid: 0
    Uid: 0 0 0 0
    Gid: 0 0 0 0
    FDSize: 256
    Groups: 0 1 2 3 4 6 10
    VmSize: 6588 kB
    VmLck: 0 kB
    VmRSS: 400 kB
    VmData: 144 kB
    VmStk: 2040 kB
    VmExe: 14 kB
    VmLib: 1250 kB
    StaBrk: 0804e000 kB
    Brk: 088df000 kB
    StaStk: bfe03270 kB
    ExecLim: 0804c000
    Threads: 1
    SigPnd: 0000000000000000
    ShdPnd: 0000000000000000
    SigBlk: 0000000000000000
    SigIgn: 0000000000000000
    SigCgt: 0000000000000000
    CapInh: 0000000000000000
    CapPrm: 00000000fffffeff
    CapEff: 00000000fffffeff


    输出解释
    参数 解释
    Name 应用程序或命令的名字
    State 任务的状态,运行/睡眠/僵死/
    SleepAVG 任务的平均等待时间(以nanosecond为单位),交互式任务因为休眠次数多、时间长,它们的 sleep_avg也会相应地更大一些,所以计算出来的优先级也会相应高一些。
    Tgid 线程组号
    Pid 任务ID
    Ppid 父进程ID
    TracerPid 接收跟踪该进程信息的进程的ID号
    Uid Uid euid suid fsuid
    Gid Gid egid sgid fsgid
    FDSize 文件描述符的最大个数,file->fds
    Groups
    VmSize(KB) 任务虚拟地址空间的大小
    (total_vm-reserved_vm),其中total_vm为进程的地址空间的大小,reserved_vm:进程在预留或特殊的内存间的物理页
    VmLck(KB) 任务已经锁住的物理内存的大小。锁住的物理内存不能交换到硬盘 (locked_vm)
    VmRSS(KB) 应用程序正在使用的物理内存的大小,就是用ps命令的参数rss的值 (rss)
    VmData(KB) 程序数据段的大小(所占虚拟内存的大小),存放初始化了的数据;
    (total_vm-shared_vm-stack_vm)
    VmStk(KB) 任务在用户态的栈的大小 (stack_vm)
    VmExe(KB) 程序所拥有的可执行虚拟内存的大小,代码段,不包括任务使用的库 (end_code-start_code)
    VmLib(KB) 被映像到任务的虚拟内存空间的库的大小 (exec_lib)
    VmPTE 该进程的所有页表的大小,单位:kb
    Threads 共享使用该信号描述符的任务的个数,在POSIX多线程序应用程序中,线程组中的所有线程使用同一个信号描述符。
    SigQ 待处理信号的个数
    SigPnd 屏蔽位,存储了该线程的待处理信号
    ShdPnd 屏蔽位,存储了该线程组的待处理信号
    SigBlk 存放被阻塞的信号
    SigIgn 存放被忽略的信号
    SigCgt 存放被俘获到的信号
    CapInh Inheritable,能被当前进程执行的程序的继承的能力
    CapPrm
    Permitted,进程能够使用的能力,可以包含CapEff中没有的能力,这些能力是被进程自己临时放弃的,CapEff是CapPrm的一个子集,进程放弃没有必要的能力有利于提高安全性
    CapEff Effective,进程的有效能力


    范例 1
    可以看出该应用程序的正文段(1KB)很小,说明代码很少,是依靠库(1251KB)来执行。栈(138KB)适中,说明 没有太多许多嵌套函数或特别多的临时变量。VmLck为0说明进程没有锁住任何页。VmRSS表示当前进程使用的物理内存为2956KB。当进程开始使用 已经申请的但还没有用的内存时,VmRSS的值开始增大,但是VmSize保持不变。
    [root@localhost 1]# cat /proc/4668/status
    Name: gam_server
    State: S (sleeping)
    SleepAVG: 88%
    Tgid: 31999
    Pid: 31999
    PPid: 1
    TracerPid: 0
    Uid: 0 0 0 0
    Gid: 0 0 0 0
    FDSize: 256
    Groups: 0 1 2 3 4 6 10
    VmSize: 2136 kB
    VmLck: 0 kB
    VmRSS: 920 kB
    VmData: 148 kB
    VmStk: 88 kB
    VmExe: 44 kB
    VmLib: 1820 kB
    VmPTE: 20 kB
    Threads: 1
    SigQ: 1/2047
    SigPnd: 0000000000000000
    ShdPnd: 0000000000000000
    SigBlk: 0000000000000000
    SigIgn: 0000000000001006
    SigCgt: 0000000210000800
    CapInh: 0000000000000000
    CapPrm: 00000000fffffeff
    CapEff: 00000000fffffeff
    [root@localhost 31999]#4 /proc//statm
    包含了所有CPU活跃的信息,该文件中的所有值都是从系统启动开始累计到当前时刻。

    [root@localhost ~]# cat /proc/self/statm
    654 57 44 0 0 334 0

    以下是我自己的理解:

    从上面可以看出VmRSS才是我们最关心的内存大小,即

    正在使用的物理内存的大小;

    而VmSize是进程所拥有的虚拟空间的大小;

    “当进程开始使用 已经申请的但还没有用的内存时,

    VmRSS的值开始增大,但是VmSize保持不变。”

    我们之所以看到许多内存的值的大小超过了内存的总的大小

    是因为这里显示的都是虚拟内存的大小,而不是实际的占用的大小;



    这是其它的地方的解释

    From cat /proc/4743/statm
    611450 185001 883 18 0 593431 0

    1. size :- total program size (611450 X 4096/1024 = 2445800kB = 2388M)
    2. resident :- resident set size (185001 X 4096/1024 = 740004kB = 722M)
    3. share :- shared pages (883 X 4096 = 3532)
    4. trs :- text (code) (18 X 4096/1024 = 72kB = VmExe )
    5. drs :- data/stack
    6. lrs :- library (593431 X 4096/1024 = 2373724kB = VmData +VmStk)
    7. dt :- dirty pages


    从这里可以看出第一项是进程的可执行的大小,X4就等于VmSize

    而第二项的值X4就等于VmRSS

    展开全文
  • 1.top ...RSS-------------进程实际占用物理内存大小; VSZ--------------任务虚拟地址空间大小 3./proc/pid/status [root@localhost ~]# cat /proc/self/status Name: cat State: R (running...

    1.top
     top -b -n 1 |grep opera|awk '{print "cpu:"$9"%","mem:"$10"%"}'
        cpu:0.0% mem:26.4%
    2. ps aux
    其中:

    RSS-------------进程实际占用物理内存大小;

    VSZ--------------任务虚拟地址空间的大小
    3./proc/pid/status
    [root@localhost ~]# cat /proc/self/status
    Name: cat
    State: R (running)
    SleepAVG: 88%
    Tgid: 5783
    Pid: 5783
    PPid: 5742
    TracerPid: 0
    Uid: 0 0 0 0
    Gid: 0 0 0 0
    FDSize: 256
    Groups: 0 1 2 3 4 6 10
    VmSize: 6588 kB
    VmLck: 0 kB
    VmRSS: 400 kB
    VmData: 144 kB
    VmStk: 2040 kB
    VmExe: 14 kB
    VmLib: 1250 kB
    StaBrk: 0804e000 kB
    Brk: 088df000 kB
    StaStk: bfe03270 kB
    ExecLim: 0804c000
    Threads: 1
    SigPnd: 0000000000000000
    ShdPnd: 0000000000000000
    SigBlk: 0000000000000000
    SigIgn: 0000000000000000
    SigCgt: 0000000000000000
    CapInh: 0000000000000000
    CapPrm: 00000000fffffeff
    CapEff: 00000000fffffeff


    输出解释
    参数 解释
    Name 应用程序或命令的名字
    State 任务的状态,运行/睡眠/僵死/
    SleepAVG 任务的平均等待时间(以nanosecond为单位),交互式任务因为休眠次数多、时间长,它们的 sleep_avg
    也会相应地更大一些,所以计算出来的优先级也会相应高一些。
    Tgid 线程组号
    Pid 任务ID
    Ppid 父进程ID
    TracerPid 接收跟踪该进程信息的进程的ID号
    Uid Uid euid suid fsuid
    Gid Gid egid sgid fsgid
    FDSize 文件描述符的最大个数,file->fds
    Groups
    VmSize(KB) 任务虚拟地址空间的大小
    (total_vm-reserved_vm),其中total_vm为进程的地址空间的大小,reserved_vm:进程在预留或特殊的内存间的物理页
    VmLck(KB) 任务已经锁住的物理内存的大小。锁住的物理内存不能交换到硬盘 (locked_vm)
    VmRSS(KB) 应用程序正在使用的物理内存的大小,就是用ps命令的参数rss的值 (rss)
    VmData(KB) 程序数据段的大小(所占虚拟内存的大小),存放初始化了的数据;
    (total_vm-shared_vm-stack_vm)
    VmStk(KB) 任务在用户态的栈的大小 (stack_vm)
    VmExe(KB) 程序所拥有的可执行虚拟内存的大小,代码段,不包括任务使用的库 (end_code-start_code)
    VmLib(KB) 被映像到任务的虚拟内存空间的库的大小 (exec_lib)
    VmPTE 该进程的所有页表的大小,单位:kb
    Threads 共享使用该信号描述符的任务的个数,在POSIX多线程序应用程序中,线程组中的所有线程使用同一个信号描述符。
    SigQ 待处理信号的个数
    SigPnd 屏蔽位,存储了该线程的待处理信号
    ShdPnd 屏蔽位,存储了该线程组的待处理信号
    SigBlk 存放被阻塞的信号
    SigIgn 存放被忽略的信号
    SigCgt 存放被俘获到的信号
    CapInh Inheritable,能被当前进程执行的程序的继承的能力
    CapPrm
    Permitted,进程能够使用的能力,可以包含CapEff中没有的能力,这些能力是被进程自己临时放弃的,CapEff是CapPrm的一个子集,进程放弃没有必要的能力有利于提高安全性
    CapEff Effective,进程的有效能力


    范例 1
    可以看出该应用程序的正文段(1KB)很小,说明代码很少,是依靠库(1251KB)来执行。栈(138KB)适中,说明 没有太多许多嵌套函数或特别多的临时变量。VmLck为0说明进程没有锁住任何页。VmRSS表示当前进程使用的物理内存为2956KB。当进程开始使用 已经申请的但还没有用的内存时,VmRSS的值开始增大,但是VmSize保持不变。
    [root@localhost 1]# cat /proc/4668/status
    Name: gam_server
    State: S (sleeping)
    SleepAVG: 88%
    Tgid: 31999
    Pid: 31999
    PPid: 1
    TracerPid: 0
    Uid: 0 0 0 0
    Gid: 0 0 0 0
    FDSize: 256
    Groups: 0 1 2 3 4 6 10
    VmSize: 2136 kB
    VmLck: 0 kB
    VmRSS: 920 kB
    VmData: 148 kB
    VmStk: 88 kB
    VmExe: 44 kB
    VmLib: 1820 kB
    VmPTE: 20 kB
    Threads: 1
    SigQ: 1/2047
    SigPnd: 0000000000000000
    ShdPnd: 0000000000000000
    SigBlk: 0000000000000000
    SigIgn: 0000000000001006
    SigCgt: 0000000210000800
    CapInh: 0000000000000000
    CapPrm: 00000000fffffeff
    CapEff: 00000000fffffeff
    [root@localhost 31999]#4 /proc//statm
    包含了所有CPU活跃的信息,该文件中的所有值都是从系统启动开始累计到当前时刻。

    [root@localhost ~]# cat /proc/self/statm
    654 57 44 0 0 334 0

    以下是我自己的理解:

    从上面可以看出VmRSS才是我们最关心的内存大小,即

    正在使用的物理内存的大小;

    而VmSize是进程所拥有的虚拟空间的大小;

    “当进程开始使用 已经申请的但还没有用的内存时,

    VmRSS的值开始增大,但是VmSize保持不变。”

    我们之所以看到许多内存的值的大小超过了内存的总的大小

    是因为这里显示的都是虚拟内存的大小,而不是实际的占用的大小;

    这是其它的地方的解释

    From cat /proc/4743/statm
    611450 185001 883 18 0 593431 0

    1. size :- total program size (611450 X 4096/1024 = 2445800kB = 2388M)
    2. resident :- resident set size (185001 X 4096/1024 = 740004kB = 722M)
    3. share :- shared pages (883 X 4096 = 3532)
    4. trs :- text (code) (18 X 4096/1024 = 72kB = VmExe )
    5. drs :- data/stack
    6. lrs :- library (593431 X 4096/1024 = 2373724kB = VmData +VmStk)
    7. dt :- dirty pages


    从这里可以看出第一项是进程的可执行的大小,X4就等于VmSize

    而第二项的值X4就等于VmRSS
    ————————————————
    版权声明:本文为CSDN博主「quanshuiwuxiang」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/quanshuiwuxiang/article/details/7423167

    展开全文
  • 想必在linux上写过程序同学都有分析进程占用多少内存的经历,或者被问到这样问题——你程序在运行时占用了多少内存(物理内存)?通常我们可以通过top命令查看进程占用了多少内存。这里我们可以看到VIRT、RES...
  • Linux中查看进程占用内存的情况

    万次阅读 2019-07-08 16:07:22
    Linux中查看某个进程占用内存的情况,执行如下命令即可,将其中[pid]替换成相应进程PID号: cat /proc/pid/status 说明 /proc/[pid]/status中所保存信息除了内存信息,还包括进程IDs、信号等信息,此处暂时只...
  • 1.top  top -b -n 1 |grep opera|awk '{print "cpu:"$9"%","mem:"$10"%"}' ...RSS-------------进程实际占用物理内存大小; VSZ--------------任务虚拟地址空间大小 3./proc/pid/status [r
  • 1.命令行输入top回车,然后按下大写M按照memory排序,按下大写P按照CPU排序。 2. ps -ef | grep "进程名" ps -e -o 'pid,comm,args,pcpu,rsz,vsz,s...
  • 那么如何按占用内存大小查看Linux的进程呢?ps常用参数-A 所有进程均显示出来 -a 不与terminal有关所有进程 -u 有效使用者相关的进程 -x 通常与a一起用,可列出较完整信息按内存大小排序ps -aux
  • Linux中查看某个进程占用内存的情况,执行如下命令即可,将其中[pid]替换成相应进程PID号: cat /proc/[pid]/status回到顶部 说明 /proc/[pid]/status中所保存信息除了内存信息,还包括进程IDs、信号等信息,...
  • 现在想要查询该进程占用的内存大小linux命令行下有很多的工具进行查看,现总结常见的几种方式。 通过进程的 status [root@web3_u~]#cat/proc/25282/status Name:php-cgi State:S(sleeping...
  • size:表示该段占用的虚拟内存大小 Rss:表示该段实际占用的物理内存大小 Pss:如果此段是共享库的代码段,那么会跟别的进程共享,平摊下来的物理内存 Shared_Clean:跟别的进程共享的,干净的页面,一般是共享...
  • 写一个脚本计算一下linux系统所有进程占用内存大小的和。 核心要点 ps命令用法 for循环 加法运算 参考答案 #!/bin/bash sum=0 for n in `ps aux |grep -v 'TIME COMMAND'|awk '{print $6}'` do sum=$[$sum+$n] ...
  • 2、查询进程占用内存情况 参数说明: 字段 说明 VmPeak 进程所使用虚拟内存的峰值 VmSize 进程当前使用虚拟内存的大小 VmLck 已经锁住物理内存的大小(锁住物理内存不能交换到硬盘) ...
  • 一 ps详解 # ps axu | head -n 10 ...1)USER: 行程拥有者2)PID: 进程的ID3)%CPU: 占用的 CPU 使用率4)%MEM: 占用的记忆体使用率5)VSZ: 占用的虚拟记忆体大小6)RSS: 占用的记忆体大小7)TTY: 终端的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 603
精华内容 241
关键字:

linux进程占用的内存大小

linux 订阅