查看进程占用内存 linux,下怎么查看一个进程占用内存大小

精选笔记 bchgfjyf56547 2024-04-16 16:56 8 0

一、linux怎么查看每个进程占用的内存

1、top

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器

可以直接使用top命令后,查看%MEM的内容。可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令:

$ top-u oracle

内容解释:

PID:进程的ID

USER:进程所有者

PR:进程的优先级别,越小越优先被执行

NInice:值

VIRT:进程占用的虚拟内存

RES:进程占用的物理内存

SHR:进程使用的共享内存

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

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

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

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

COMMAND:进程启动命令名称

常用的命令:

P:按%CPU使用率排行

T:按MITE+排行

M:按%MEM排行

2、pmap

可以根据进程查看进程相关信息占用的内存情况,(进程号可以通过ps查看)如下所示:

$ pmap-d 14596

3、ps

如下例所示:

$ ps-e-o'pid,comm,args,pcpu,rsz,vsz,stime,user,uid'其中rsz是是实际内存

$ ps-e-o'pid,comm,args,pcpu,rsz,vsz,stime,user,uid'| grep oracle| sort-nrk5

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

二、CentOS下查看进程用了多少内存命令Pmap

Pmap提供了进程的内存映射,pmap命令用于显示一个或多个进程的内存状态。其报告进程的地址空间和内存状态信息。Pmap实际上是一个Sun OS上的命令,linux仅支持其有限的功能。但是它还是对查看完整的进程地址空间很有帮助。我们需要PID或者运行的进程的唯一进程ID来查看进程内存状态,我们可以通过/proc或者常规命令比如top或ps得到它。

语法或用法

#pmap PID

或者

#pmap [options] PID

在输出中它显示全部的地址,kbytes,mode还有mapping。

选项

-x extended显示扩展格式

-d device显示设备格式

-q quiet不显示header/footer行

-V显示版本信息

单一进程内存状态

[root@info~]# pmap 1013

1013:/usr/sbin/sshd

00110000 1480K r-x-/usr/lib/libcrypto.so.1.0.0

00282000 80K rw--/usr/lib/libcrypto.so.1.0.0

00296000 12K rw-- [ anon ]

00299000 36K r-x-/lib/libkrb5support.so.0.1

002a2000 4K rw--/lib/libkrb5support.so.0.1

002a3000 16K r-x-/lib/libplc4.so

002a7000 4K rw--/lib/libplc4.so

002ab000 88K r-x-/lib/libaudit.so.1.0.0

002c1000 4K r--/lib/libaudit.so.1.0.0

002c2000 4K rw--/lib/libaudit.so.1.0.0

002c3000 216K r-x-/lib/libgssapi_krb5.so.2.2

002f9000 4K rw--/lib/libgssapi_krb5.so.2.2

002fa000 808K r-x-/lib/libkrb5.so.3.3

003c4000 24K rw--/lib/libkrb5.so.3.3

003ca000 152K r-x-/lib/libk5crypto.so.3.1

003f0000 4K rw--/lib/libk5crypto.so.3.1

003f1000 92K r-x-/usr/lib/libnssutil3.so

00738000 4K r---/lib/libresolv-2.12.so

00739000 4K rw--/lib/libresolv-2.12.so

0073a000 8K rw-- [ anon ]

00825000 120K r-x-/lib/ld-2.12.so

00843000 4K r---/lib/ld-2.12.so

00844000 4K rw--/lib/ld-2.12.so

0090d000 32K r-x-/lib/libwrap.so.0.7.6

00915000 4K rw--/lib/libwrap.so.0.7.6

00948000 484K r-x-/usr/sbin/sshd

009c1000 8K rw--/usr/sbin/sshd

009c3000 20K rw-- [ anon ]

009e0000 92K r-x-/lib/libpthread-2.12.so

009f7000 4K r---/lib/libpthread-2.12.so

total 8232K

多进程内存状态

我们可以检查多进程内存通过插入多个PID。加入多个PID中间使用空格分隔。

pmap 1013 1217 1118

扩展进程内存

[root@info~]# pmap-x 1013

1013:/usr/sbin/sshd

Address Kbytes RSS Dirty Mode Mapping

00110000 1480 92 0 r-x- libcrypto.so.1.0.0

00282000 80 80 80 rw-- libcrypto.so.1.0.0

00296000 12 8 4 rw-- [ anon ]

00299000 36 0 0 r-x- libkrb5support.so.0.1

002a2000 4 4 4 rw-- libkrb5support.so.0.1

002a3000 16 0 0 r-x- libplc4.so

002a7000 4 4 4 rw-- libplc4.so

002ab000 88 4 0 r-x- libaudit.so.1.0.0

002c1000 4 4 4 r--- libaudit.so.1.0.0

002c2000 4 4 4 rw-- libaudit.so.1.0.0

002c3000 216 4 0 r-x- libgssapi_krb5.so.2.2

002f9000 4 4 4 rw-- libgssapi_krb5.so.2.2

002fa000 808 4 0 r-x- libkrb5.so.3.3

003c4000 24 24 24 rw-- libkrb5.so.3.3

003ca000 152 4 0 r-x- libk5crypto.so.3.1

003f0000 4 4 4 rw-- libk5crypto.so.3.1

003f1000 92 0 0 r-x- libnssutil3.so

00408000 12 12 12 rw-- libnssutil3.so

0040b000 12 0 0 r-x- libplds4.so

0040e000 4 4 4 rw-- libplds4.so

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

total kB 8232---

这里的Address,Kbyte,Dirty,RSS,mode还有mapping的说明如下

扩展和设备格式区域

Address:内存开始地址

Kbytes:占用内存的字节数(KB)

RSS:保留内存的字节数(KB)

Dirty:脏页的字节数(包括共享和私有的)(KB)

Mode:内存的权限:read、write、execute、shared、private(写时复制)

Mapping:占用内存的文件、或[anon](分配的内存)、或[stack](堆栈)

Offset:文件偏移

Device:设备名(major:minor)

三、Linux如何查看内存使用状况

1)查看RAM使用情况最简单的方法是通过/proc/meminfo。这个动态更新的虚拟文件实际上是许多其他内存相关工具(如:free/ps/top)等的组合显示。/proc/meminfo列出了所有你想了解的内存的使用情况。

$ cat/proc/meminfo

2)free命令是一个快速查看内存使用情况的方法,它是对/proc/meminfo收集到的信息的一个概述。

3)ps命令可以显示各个进程的内存使用情况、以及更详细的物理内存使用情况和虚拟内存使用情况。你可以使用“–sort”选项对进程进行排序,例如按RSS进行排序:

$ ps aux--sort-rss

4)top命令显示了每个进程的内存实时使用率。它提供了所有进程的常驻内存大小、程序总内存大小、共享库大小等的报告。

四、linux***下怎么查看一个进程占用内存大小

这里介绍下查看一个进程占用内存大小的方法。

1、首先单击桌面左上角的应用程序,选择系统工具选项,如下图所示。

2、接着在下拉菜单中,单击系统终端选项,如下图所示。

3、这时会来到系统终端命令行,如下图所示。

4、最后输入free-h命令,在结果中找到total即可查看到系统总的内存情况,如下图所示就完成了。