图片 8

linux下的top命令参数说明,查看进程消耗内存情况总结

 

%mem 内部存储器使用率
virt 是设想内部存款和储蓄器
res是常驻内部存款和储蓄器
shr是分享内部存款和储蓄器

这是黄金时代篇关于Linux内存measuring的根基教程。除了free之外,我们得以经过/proc获得更加多音信。它们是/proc下的mapssmaps
statm

在Linux中,有那么些命令或工具查看内部存款和储蓄器使用状态,前几日大家来拜见哪些查看进程消耗、占用的内部存款和储蓄器情形,Linux的内部存款和储蓄器管理和连锁概念要比Windows复杂一些。早前,咱们要求通晓一下Linux系统下边关于内部存款和储蓄器的专项使用名词和职业术语概念:

top命令下按f键能够见见详细表达
* A: PID        = Process Id
* E: USER       = User Name
* H: PR         = Priority
* I: NI         = Nice value
* O: VIRT       = Virtual Image (kb)
* Q: RES        = Resident size (kb)
* T: SHR        = Shared Mem size (kb)
* W: S          = Process Status
* K: %CPU       = CPU usage
* N: %MEM       = Memory usage (RES)
* M: TIME+      = CPU Time, hundredths
b: PPID       = Parent Process Pid
c: RUSER      = Real user name
d: UID        = User Id
f: GROUP      = Group Name
g: TTY        = Controlling Tty
j: P          = Last used cpu (SMP)
p: SWAP       = Swapped size (kb)
l: TIME       = CPU Time
r: CODE       = Code size (kb)
s: DATA       = Data+Stack size (kb)
u: nFLT       = Page Fault count
v: nDRT       = Dirty Pages count
y: WCHAN      = Sleeping in Function
z: Flags      = Task Flags <sched.h>
* X: COMMAND    = Command name/line

‘free’ and /proc

 

top命令下要翻看某些顾客运营的长河:先输入u,然后输入客户名,再回车

‘free’
会显示机器上的内部存款和储蓄器使用音信。能实时跟踪整个连串内部存款和储蓄器的应用意况。

 

VIRT:virtual memory usage。Virtual那么些词很神,常常解释是:virtual
adj.虚的, 实质的, [物]卓有成效的,
事实上的。到底是虚的照旧实的?让Google给Define之后,将就掌握某个,便是那东西依然非物质的,但是有功力的,不发生在真实世界的,发生在软
件世界的等等。那几个内部存款和储蓄器使用正是二个用到据有之处空间,只是要应用程序必要的,就全算在那地,而不管它真的用了从未。写程序怕出错,又无视占用的时
候,多开点内部存款和储蓄器也是很平常的。
RES:resident memory
usage。常驻内部存储器。这些值正是该应用程序真的采纳的内部存款和储蓄器,但还有五个小意思,一是不怎么东西可能位于沟通盘上了(SWAP卡塔 尔(英语:State of Qatar),二是稍稍内部存款和储蓄器或者是分享的。
SHR:shared
memory。分享内部存款和储蓄器。便是说这一块内部存款和储蓄器空间有相当大恐怕也被别的应用程序使用着;而Virt
- Shr就像正是其生机勃勃顺序所必要的同一时间没有分享的内部存款和储蓄器空间。
DATA:数据占用的内部存款和储蓄器。倘诺top没有显示,按f键能够展现出来。这一块是当真的该程序须求的数额空间,是真正在运转中要动用的。

$ free

             total       used       free     shared    buffers     cached

Mem:        507564     481560      26004          0      68888     185220

-/+ buffers/cache:     227452     280112

Swap:      2136604     105168    2031436

概略内部存款和储蓄器和虚构内部存款和储蓄器

============================================

除此之外free命令之外,/proc/meminfo能够提供越多的新闻。以下便是贰个事例:
512 Mb RAM, 运维在 Linux 2.6.3:

 

top里面描述进度内部存款和储蓄器使用量的数额出自/proc/$pid/statm这么些文件。通过观察kernel的代码就会弄清楚SHEvoque,VIRT和RES这几个数值的切切实实意思。

$ cat /proc/meminfo

MemTotal:       507564 kB

MemFree:         26004 kB

Buffers:         68888 kB

Cached:         185220 kB

SwapCached:      29348 kB

Active:         342488 kB

Inactive:        32092 kB

HighTotal:           0 kB

HighFree:            0 kB

LowTotal:       507564 kB

LowFree:         26004 kB

SwapTotal:     2136604 kB

SwapFree:      2031436 kB

Dirty:              88 kB

Writeback:           0 kB

Mapped:         165648 kB

Slab:            73212 kB

Committed_AS:   343172 kB

PageTables:       2644 kB

VmallocTotal:   524212 kB

VmallocUsed:      7692 kB

VmallocChunk:   516328 kB

物理内部存款和储蓄器:正是系统硬件提供的内部存储器大小,是确实的内部存款和储蓄器,平日叫做内部存款和储蓄器条。也叫随机存取存款和储蓄器(random
access memory,RAM卡塔 尔(英语:State of Qatar)又称为“随机存款和储蓄器”,是与CPU直接调换数据的里边存款和储蓄器,也叫主存(内部存款和储蓄器)。

Linux通过一个称为 task_statm 的函数来回到进程的内部存款和储蓄器使用情形

度量客户进度的内存使用:

 

int task_statm(struct mm_struct *mm, int *shared, int *text,
               int *data, int *resident)
{
        *shared = get_mm_counter(mm, file_rss);
        *text = (PAGE_ALIGN(mm->end_code) – (mm->start_code &
PAGE_MASK))
                                                           >>
PAGE_SHIFT;
        *data = mm->total_vm – mm->shared_vm;
        *resident = *shared + get_mm_counter(mm, anon_rss);
        return mm->total_vm;
}
上边的代码中shared正是page
cache里面其实运用了的轮廓内部存款和储蓄器的页数,text是代码所占用的页
数,data是总设想内部存款和储蓄器页数减去分享的伪造内部存款和储蓄器页数,resident是独具在使用的物理内部存款和储蓄器的页
数。最终回到的mm->total_vm是经过虚构内部存款和储蓄器的寻址空间尺寸。

‘ps’ 关于内部存款和储蓄器新闻表达

 ‘ps’
能够提供内存音信景况。比方:

虚构内部存款和储蓄器:相对于物理内部存款和储蓄器,在Linux下还应该有七个虚构内部存款和储蓄器的概念,虚构内部存款和储蓄器便是为了知足物理内部存款和储蓄器的欠缺而提议的政策,它是选择磁盘空间虚构出的一块逻辑内存,用作设想内部存储器的磁盘空间被称为调换空间(Swap
Space卡塔 尔(阿拉伯语:قطر‎。Linux会在大体内部存款和储蓄器不足时,使用虚构内部存款和储蓄器,内核会把目前不要的内存块音讯写到设想内部存款和储蓄器,那样大意内部存款和储蓄器就获得了自由,那块儿内部存款和储蓄器就足以用来此外目标,而须求用到那么些内容的时候,那些音信就能够被重复从设想内部存款和储蓄器读入物理内部存款和储蓄器。

函数get_mm_counter并不会做什么划算,它的效果是确定保障数值读取的原子性。

 BJATCA01sta1:/proc/3105(8)#ps -p 3129 -o pid,rss,vsz,comm

  
PID  
RSS   VSZ COMMAND

  3129
23100 213664 GAM

·        
 %Mem – 内存使用比例

·        
VSZ – Virtual Size

·        
RSS – Resident Set Size

·        
SIZE – Equivalent to VSZ

 

地点的数值最终会通过 procfs输出
到/proc/$pid/statm中去。他们与top显示的数值对应提到如下。

‘top’ 显示消息可参见 ‘man top’:

·        
 %MEM — Memory usage (RES)   
       
进度近年来采纳的情理内部存款和储蓄器。

·        
VIRT — Virtual Image (kb)          进程整个virtual
memory空间,
VIRT = SWAP + RES

·        
SWAP — Swapped size (kb)    virtual
memory调换成disk只怕未有加载到大要内部存款和储蓄器里的上空。

·        
RES — Resident size (kb) 
进度驻留在内部存储器里面包车型大巴内部存款和储蓄器大小, 
RES = CODE + DATA.

·        
CODE — Code size (kb)          
加载到内部存款和储蓄器里面包车型客车可执行文件代码

·        
DATA — Data+Stack size (kb) 加载到内部存款和储蓄器里面包车型地铁数码和栈

·        
SH中华V — Shared Mem size (kb) 分享内部存储器大小

·        
nDRT — Dirty Pages count      
页面已经改善只是还从未保留到disk的数码。

/proc info

越多音信能够动用命令:’man
proc’

 

SHR: shared
RES: resident
VIRT: mm->total_vm
CODE: code
DATA: data

/proc/<pid>/statm

/proc/<pid>/statm
fields: columns are (in pages):

total program size|

resident set size|

shared pages|

text (code) |

data/stack |

library |

dirty pages |

Here an
example: 693 406 586 158 0 535 0

Linux的buffers与cached

=======================================

/proc/<pid>/status

/proc/<pid>/status
fields:

·                    
Vm Size: 2772 kB

·                    
Vm Lck: 0 kB – ???

·                    
Vm RSS: 1624 kB

·                    
Vm Data: 404 kB

·                    
Vm Stk: 24 kB

·                    
Vm Exe: 608 kB

·                    
Vm Lib: 1440 kB

 

o: VIRT (Virtual Image) – 进程使用的总设想内部存款和储蓄器 (virtual memory)
大小,蕴涵经过的程序码、资料和共享程序库再加上被置换 (swap out)
的空中。VIRT = SWAP + RES
p: SWAP (Swapped size) – 进程被换成的虚构内存空间大小。
q: RES (Resident size) – 进程非被换到的实体内部存款和储蓄器大小。RES = CODE + DATA
r: CODE’ (Code size) – 进度的程序码在实体内部存款和储蓄器佔用空间尺寸,亦叫作 text
resident set (TENCORES)。
s: DATA (Data+Stack size) – 进程佔用实体内部存款和储蓄器中的非程序码部份大小,亦叫作
data resident set (D福特ExplorerS)。
t: SHLX570 (Shared Mem size) –
进度使用的分享内存大小,即能够和其他进程分享的内部存款和储蓄器空间。
n: %MEM (Memory usage) –
进度佔用实体内部存款和储蓄器大小对系统总实体内部存款和储蓄器大小的比例,以百分比呈现。

/proc/<pid>/maps

maps展现全部分享库映射到进程地址空间的详情。Example:

$ cat /proc/25042/maps

08048000-080e0000 r-xp 00000000 03:05 196610     /bin/bash

080e0000-080e6000 rw-p 00097000 03:05 196610     /bin/bash

080e6000-08148000 rwxp 00000000 00:00 0

40000000-40016000 r-xp 00000000 03:05 147471     /lib/ld-2.3.3.so

40016000-40017000 rw-p 00015000 03:05 147471     /lib/ld-2.3.3.so

40017000-40018000 rw-p 00000000 00:00 0

40018000-40019000 r--p 00000000 03:05 184090     /usr/share/locale/en_US/LC_IDENTIFICATION

40019000-4001a000 r--p 00000000 03:05 184089     /usr/share/locale/en_US/LC_MEASUREMENT

4001a000-4001b000 r--p 00000000 03:05 184083     /usr/share/locale/en_US/LC_TELEPHONE

4001b000-4001c000 r--p 00000000 03:05 184091     /usr/share/locale/en_US/LC_ADDRESS

4001c000-4001d000 r--p 00000000 03:05 184086     /usr/share/locale/en_US/LC_NAME

4001d000-4001e000 r--p 00000000 03:05 184084     /usr/share/locale/en_US/LC_PAPER

4001e000-4001f000 r--p 00000000 03:05 184088     /usr/share/locale/en_US/LC_MESSAGES/SYS_LC_MESSAGES

4001f000-40020000 r--p 00000000 03:05 184087     /usr/share/locale/en_US/LC_MONETARY

40020000-40026000 r--p 00000000 03:05 183689     /usr/share/locale/ISO-8859-1/LC_COLLATE

40026000-40027000 r--p 00000000 03:05 184082     /usr/share/locale/en_US/LC_TIME

40027000-4002a000 r-xp 00000000 03:05 147459     /lib/libtermcap.so.2.0.8

4002a000-4002b000 rw-p 00002000 03:05 147459     /lib/libtermcap.so.2.0.8

4002b000-4002c000 rw-p 00000000 00:00 0

4002c000-4002e000 r-xp 00000000 03:05 147482     /lib/libdl-2.3.3.so

4002e000-4002f000 rw-p 00001000 03:05 147482     /lib/libdl-2.3.3.so

4002f000-40171000 r-xp 00000000 03:05 147511     /lib/tls/libc-2.3.3.so

40171000-40174000 rw-p 00142000 03:05 147511     /lib/tls/libc-2.3.3.so

40174000-40177000 rw-p 00000000 00:00 0

40177000-40178000 r--p 00000000 03:05 184085     /usr/share/locale/en_US/LC_NUMERIC

40178000-401a4000 r--p 00000000 03:05 183688     /usr/share/locale/ISO-8859-1/LC_CTYPE

401a4000-401a5000 r-xp 00000000 03:05 180462     /usr/lib/gconv/ISO8859-1.so

401a5000-401a6000 rw-p 00001000 03:05 180462     /usr/lib/gconv/ISO8859-1.so

401b3000-401bd000 r-xp 00000000 03:05 147492     /lib/libnss_files-2.3.3.so

401bd000-401be000 rw-p 00009000 03:05 147492     /lib/libnss_files-2.3.3.so

bfffa000-c0000000 rwxp ffffb000 00:00 0

ffffe000-fffff000 ---p 00000000 00:00 0

图片 1

在Linux中经常开采没事的内部存款和储蓄器少之甚少,就如有所的内部存款和储蓄器都被消耗殆尽了,表面上看是内部存款和储蓄器远远不足用了,相当多生手见到内部存款和储蓄器被“消耗殆尽”极度紧张,其实这么些是因为Linux系统将空闲的内存用来做磁盘文件数量的缓存。这几个导致您的种类看起来处于内存特别热切的景观。不过并非这么。这么些区别于Windows的内部存款和储蓄器管理。Linux会利用空暇的内存来做cached
& buffers。

 

 

buffers是指用来给块设备做的缓冲大小(块设备的读写缓冲区卡塔尔,它只记录文件系统的metadata以及tracking in-flight pages.

 

Buffers
are associated with a specific block device, and cover caching of
filesystem metadata as well as tracking in-flight pages. The cache only
contains parked file data. That is, the buffers remember what’s in
directories, what file permissions are, and keep track of what memory is
being written from or read to for a particular block device. The cache
only contains the contents of the files themselves.

 

  

cached是作为page
cache的内部存款和储蓄器,
文件系统的cache。你读写文件的时候,Linux内核为了进步读写质量与进度,会将文件在内部存款和储蓄器中开展缓存,那意气风发部分内部存款和储蓄器正是Cache
Memory(缓存内存)。就算你的程序运行甘休后,Cache
Memory也不会自动释放。那就能引致你在Linux系统中程序往往读写文件后,你会意识可用物理内部存款和储蓄器会比超级少。其实那缓存内部存款和储蓄器(Cache
Memory)在你必要利用内部存储器的时候会活动释放,所以您不用担忧没有内部存款和储蓄器可用

 

Cached
is the size of the page cache. Buffers is the size of in-memory block
I/O buffers. Cached matters; Buffers is largely irrelevant.

 

Cached
is the size of the Linux page cache, minus the memory in the swap cache,
which is represented by SwapCached (thus the total page cache size is
Cached + SwapCached). Linux performs all file I/O through the page
cache. Writes are implemented as simply marking as dirty the
corresponding pages in the page cache; the flusher threads then
periodically write back to disk any dirty pages. Reads are implemented
by returning the data from the page cache; if the data is not yet in the
cache, it is first populated. On a modern Linux system, Cached can
easily be several gigabytes. It will shrink only in response to memory
pressure. The system will purge the page cache along with swapping data
out to disk to make available more memory as needed.

Buffers
are in-memory block I/O buffers. They are relatively short-lived. Prior
to Linux kernel version 2.4, Linux had separate page and buffer caches.
Since 2.4, the page and buffer cache are unified and Buffers is raw disk
blocks not represented in the page cache—i.e., not file data. The
Buffers metric is thus of minimal importance. On most systems, Buffers
is often only tens of megabytes.

 

 

Linux分享内部存款和储蓄器

 

分享内存是进程间通讯中最简易的措施之风度翩翩。分享内部存款和储蓄器允许七个或越来越多进程访谈同一块内部存款和储蓄器,就好似malloc()
函数向不一样进度重返了指向同四个大意内部存款和储蓄器区域的指针。当多个进度改良了那块地方中的内容的时候,别的进程都会发觉到这些。其实所谓分享内部存款和储蓄器,正是四个进度间一块地选用同豆蔻梢头段物理内部存款和储蓄器空间,它是通过将相通段物理内部存款和储蓄器映射到不一致进度的设想空间来贯彻的。由于映射到不一致进度的诬捏空间中,差异进度能够一贯运用,无需像音信队列那样实行理并答复制,所以分享内部存款和储蓄器的频率非常高。分享内存能够经过mmap()映射普通文书编写制定来贯彻,也能够System
V分享内部存款和储蓄器机制来落到实处,System
V是由此炫人眼目特殊文件系统shm中的文件贯彻进度间的分享内部存款和储蓄器通讯,也便是说每种分享内部存款和储蓄器区域对应优秀文件系统shm中的一个文件。

 

 

此外,大家还必得精通RAV4SS、PSS、USS等有关概念:

 

     VSS

Virtual Set Size 设想耗用内部存款和储蓄器(包括分享库占用的内部存款和储蓄器卡塔 尔(阿拉伯语:قطر‎

     

TiggoSS –
Resident Set Size 其举办使物理内存(满含分享库占用的内部存储器卡塔尔国

     

PSS –
Proportional Set Size
实际采纳的情理内存(比例抽成分享库占用的内部存款和储蓄器卡塔 尔(英语:State of Qatar)

     

USS –
Unique Set Size 进度独自占用的物理内部存款和储蓄器(不包括分享库占用的内部存款和储蓄器卡塔尔国

 

MuranoSS(Resident
set
size卡塔 尔(阿拉伯语:قطر‎,使用top命令能够查询到,是最常用的内部存款和储蓄器指标,表示经过占用的大意内部存款和储蓄器大小。可是,将各进程的讴歌ZDXSS值相加,平常会压倒整个系统的内部存储器消耗,那是因为瑞鹰SS中带有了各进程间分享的内部存款和储蓄器。

 

PSS(Proportional
set
size卡塔尔国全体应用某分享库的次序均分该分享库占用的内部存款和储蓄器时,每一个进度占用的内部存款和储蓄器。明显所有进度的PSS之和便是系统的内部存储器使用量。它会更可信赖一些,它将分享内部存款和储蓄器的轻重进行平均后,再分摊到各进度上去。

 

USS(Unique
set size
)进度独自占用的内部存款和储蓄器,它是PSS中友好的有的,它只计算了经过独自占用的内部存款和储蓄器大小,不分包其余分享的局地。

     

          

所以上面介绍的一声令下,有个别查看进程的设想内部存款和储蓄器使用,有个别是翻开进程的福睿斯SS或实际物理内部存款和储蓄器。在汇报的时候,大家会标记那些信息。

 

 

 

top命令查看

 

实行top命令后,实践SHIFT
+F ,可以接受按某列排序,举例采用n后,就能够按字段%MEM排序

 

图片 2

 

 

本来也能够动用shift+m
或大写键M
让top命令按字段%MEM来排序,当然你也足以按VIRT(设想内部存款和储蓄器卡塔 尔(英语:State of Qatar)、SWAP(进程使用的SWAP空间卡塔 尔(阿拉伯语:قطر‎、RES(实际接收物理内部存款和储蓄器,当然这里由于涉及分享内部存款和储蓄器缘故,你看看的莫过于内部存款和储蓄器相当大)

 

 

%MEM
— Memory usage (RES)

 

     A task’s currently
used share of available physical memory

     

VIRT
— virtual memory 

   

    The  total  amount  of virtual memory
used by the task. 
It includes all code, data and shared libraries plus pages that
have been swapped out. (Note: you can define the STATSIZE=1 environment
variable and the VIRT will be calculated from the /proc/#/state VmSize
field.)

 

    VIRT = SWAP +
RES

 

SWAP  —  Swapped size
(kb)

 

   The swapped out
portion of a task’s
total virtual memory image.

 

RES  —  Resident size
(kb)

       

    RES = CODE +
DATA.

 

         

 

是或不是有人会认为意外,为何%MEM这一列的值加起来会超过100啊?
那一个是因为这里计算的时候包括了分享内部存款和储蓄器的由来,此外是因为分享内部存款和储蓄器的由来,你看来进度使用VIRT或RES都丰盛高。由于一大半的大意内部存款和储蓄器日常在多个应用程序之间分享,名字为实在使用物理内部存储器(中华VSS,对应top命令里面包车型地铁RES卡塔 尔(英语:State of Qatar)的那些标准的内部存款和储蓄器耗用权衡目的会大大高估内部存款和储蓄器耗用状态。

 

图片 3

 

 

 

ps命令查看

 

 

 

利用ps命令找寻占用内存财富最多的十多少个经过(数量得以随便设置卡塔 尔(英语:State of Qatar)

 

 

# ps aux | head -1;ps aux |grep -v PID |sort -rn -k +4 | head -20

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

oracle   32147 11.0 51.2 13252080 12666320 ?   Rs   Aug24 163:16 ora_s000_SCM2

oracle   32149 14.2 50.9 13250344 12594264 ?   Ss   Aug24 210:41 ora_s001_SCM2

oracle   32153  4.2 49.6 13250820 12279432 ?   Ss   Aug24  62:27 ora_s003_SCM2

oracle   32155  2.5 48.6 13250268 12040732 ?   Ss   Aug24  38:21 ora_s004_SCM2

oracle   32157  1.2 44.5 13250296 11011708 ?   Ss   Aug24  18:31 ora_s005_SCM2

oracle   32151  2.7 39.7 13350436 9829944 ?    Ss   Aug24  41:18 ora_s002_SCM2

oracle   32159  0.5 38.9 13250704 9625764 ?    Ss   Aug24   8:18 ora_s006_SCM2

oracle   32161  0.2 26.3 13250668 6507244 ?    Ss   Aug24   3:38 ora_s007_SCM2

oracle   32129  0.0 25.5 13299084 6324644 ?    Ss   Aug24   1:25 ora_dbw0_SCM2

oracle   32181  0.0 15.8 13250152 3913260 ?    Ss   Aug24   0:56 ora_s017_SCM2

oracle   32145  2.7 15.3 13255256 3786456 ?    Ss   Aug24  40:11 ora_d000_SCM2

oracle   32127  0.0 15.2 13248996 3762860 ?    Ss   Aug24   0:05 ora_mman_SCM2

oracle   32163  0.0 14.2 13250108 3525160 ?    Ss   Aug24   1:04 ora_s008_SCM2

oracle   32165  0.0  8.1 13250172 2007704 ?    Ss   Aug24   0:37 ora_s009_SCM2

oracle   32169  0.0  6.6 13250060 1656864 ?    Ss   Aug24   0:08 ora_s011_SCM2

oracle   32177  0.0  6.0 13250148 1498760 ?    Ss   Aug24   0:12 ora_s015_SCM2

oracle   32187  0.0  5.1 13250084 1267384 ?    Ss   Aug24   0:06 ora_s020_SCM2

oracle   32179  0.0  5.1 13250584 1280156 ?    Ss   Aug24   0:05 ora_s016_SCM2

oracle   32167  0.0  5.0 13250060 1248668 ?    Ss   Aug24   0:08 ora_s010_SCM2

oracle   32175  0.0  3.4 13250596 857380 ?     Ss   Aug24   0:03 ora_s014_SCM2

 

 

#ps
-eo pmem,pcpu,rss,vsize,args | sort -k 1 -n -r | less

 

查看进程占用的莫过于物理内部存款和储蓄器(与smem见到实际物理内部存款和储蓄器大小有出入,这里解释一下:SIZE:
进程使用的地址空间, 若是进度映射了100M的内部存款和储蓄器,
进程的地点空间将告诉为100M内存. 事实上,
这一个尺寸不是一个前后相继实际运用的内部存款和储蓄器数.
所以这里看见的内部存款和储蓄器跟smem见到的大大小小有出入卡塔 尔(阿拉伯语:قطر‎

 

ps -eo size,pid,user,command --sort -size | awk '{ hr=$1/1024 ; printf("%13.2f Mb ",hr) } { for ( x=4 ; x<=NF ; x++ ) { printf("%s ",$x) } print "" }' |cut -d "" -f2 | cut -d "-" -f1

 

图片 4

 

 

ps
aux  | awk
‘{print $6/1024 ” MBtt” $11}’  | sort -n

 

 

 

 

smem命令查看

 

 

至于smem命令,这里不做牵线,直接参考链接Linux监察和控制工具介绍种类——smem

 

 

#smem
-rs pss

 

图片 5

** 

** 

** 

** 

pmap命令查看

 

 

#
ps -ef | grep tomcat

#
pmap 32341

 

图片 6

 

# pmap -x  32341

 

The
-x option can be used to provide information about the memory allocation
and mapping types per mapping. The amount of resident, non-shared
anonymous, and locked memory is shown for each mapping。

 

图片 7

 

 

 

 

python脚本查看

 

 

互连网有个python脚本总结程序或进程的内部存款和储蓄器使用意况,地址位于

 

python
ps_mem.py

 

图片 8

 

 

[root@mylnx03 ~]# python ps_mem.py -h

Usage: ps_mem [OPTION]...

Show program core memory usage

 

  -h, -help                   Show this help

  -p <pid>[,pid2,...pidN]     Only show memory usage PIDs in the specified list

  -s, --split-args            Show and separate by, all command line arguments

  -t, --total                 Show only the total value

  -d, --discriminate-by-pid   Show by process rather than by program

  -S, --swap                  Show swap information

  -w <N>                      Measure and show process memory every N seconds

[root@mylnx03 ~]# python ps_mem.py  -p 32341

 Private  +   Shared  =  RAM used       Program

 

411.2 MiB + 184.0 KiB = 411.4 MiB       java

---------------------------------

                        411.4 MiB

=================================

 

参考资料:

 

 

发表评论