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

发布网友 发布时间:2022-04-19 11:02

我来回答

2个回答

懂视网 时间:2022-04-14 23:07

--如何查看单个进程在os层面的内存消耗 AIX: $ svmon -Pt10 | perl -e while(){print if($.==2||$!$s++);$.=0 if(/^-+$/)} ---- -用这个可以看最大的占用内存的10个进程 -------------------------------------------------------------------------------

--如何查看单个进程在os层面的内存消耗

AIX:

$ svmon -Pt10 | perl -e 'while(<>){print if($.==2||$&&&!$s++);$.=0 if(/^-+$/)}' ---- -用这个可以看最大的占用内存的10个进程
-------------------------------------------------------------------------------
Pid Command Inuse Pin Pgsp Virtual -bit Mthrd 16MB
5111942 svmon 22446 8768 0 22370 Y N N
4391128 ksh 18298 8724 0 18232 N N N
5308430 perl5.8.8 18262 8724 0 18245 N N N

AIX:(linux 下也可以使用)
$ ps gv
PID TTY STAT TIME PGIN SIZE RSS LIM TSIZ TRS %CPU %MEM COMMAND
0 - A 0:51 7 384 384 xx 0 0 0.0 0.0 swapper
1 - A 5:26 105 752 796 32768 31 44 0.0 0.0 /etc/in
131076 - A 5478:05 0 448 448 xx 0 0 25.8 0.0 wait
196614 - A 0:00 0 448 448 xx 0 0 0.0 0.0 sched
262152 - A 0:00 0 512 512 xx 0 0 0.0 0.0 lrud
327690 - A 0:00 0 448 448 xx 0 0 0.0 0.0 vmptacrt
393228 - A 0:00 0 512 512 xx 0 0 0.0 0.0 psmd
458766 - A 0:00 0 6 6 xx 0 0 0.0 0.0 vmmd
524304 - A 0:00 0 448 448 xx 0 0 0.0 0.0 memgrdd
5842 - A 0:00 0 448 448 xx 0 0 0.0 0.0 lsareapr

aix 下查看耗费内存最大的前10个进程
$ ps gv|sort -rn +6|head -10 --------------这个也是非常直观
41276 - A 1:06 2743 42476 42548 32768 68 72 0.0 4.0 /usr/ja
26871 - A 0:09 31 9000 9084 32768 60 84 0.0 1.0 /usr/sb
2883710 - A 0:00 37 5696 5904 32768 518 208 0.0 0.0 /usr/sb
3014794 - A 0:01 55 5672 52 32768 394 220 0.0 0.0 /usr/sb
3145838 - A 0:00 32 5540 5668 32768 1 128 0.0 0.0 /usr/sb
3080322 - A 0:00 24 5472 5528 32768 43 56 0.0 0.0 /usr/sb
4194350 - A 0:05 412 4708 5248 xx 555 540 0.0 0.0 /usr/sb
3407976 - A 0:06 144 4180 5244 32768 1213 10 0.0 0.0 sendmai
3866866 - A 0:00 129 3792 4400 32768 524 608 0.0 0.0 /usr/sb
2424972 - A 0:00 76 4204 4384 32768 151 180 0.0 0.0 /usr/sb

$

aix、linux ---------------建议使用这个

$ ps aux | head -1 ; ps aux | sort -rn +3 | head -10
USER PID %CPU %MEM SZ RSS TTY STAT STIME TIME COMMAND
pconsole 41276 0.0 4.0 42540 42548 - A Apr 11 1:06 /usr/java5/bin/
root 26871 0.0 1.0 9056 9084 - A Apr 11 0:09 /usr/sbin/cron
root 5636150 0.0 0.0 3928 3940 - A 22:37:25 0:00 telnetd -a
root 50428 0.0 0.0 1628 1652 - A Apr 11 0:00 /usr/sbin/rsct/
root 4849856 0.0 0.0 2624 2140 - A Apr 11 0:00 /usr/sbin/rsct/
root 4784276 0.0 0.0 344 348 - A Apr 11 0:00 /usr/sbin/rpc.l
root 4718738 0.0 0.0 1216 1216 - A Apr 11 0:17 rpc.lockd
root 4653208 0.0 0.0 108 112 - A Apr 11 0:00 /usr/sbin/uprin
root 4587674 0.0 0.0 332 340 - A Apr 11 0:00 /usr/sbin/write
root 4456616 0.0 0.0 40 3904 - A Apr 11 0:25 /usr/bin/topasr


$ svmon -uP -t 50|grep -p Pid|grep '^.*[0-9] '
5112000 svmon 22452 8768 0 22370 Y N N
4391128 ksh 18298 8724 0 18232 N N N
5308462 grep 18163 8724 0 18154 N N N
5767348 grep 18163 8724 0 18154 N N N
$ svmon -P -O summary=basic,unit=MB
Unit: MB

-------------------------------------------------------------------------------
Pid Command Inuse Pin Pgsp Virtual
5112002 svmon 87.7 34.2 0 87.4
4391128 ksh 71.5 34.1 0 71.2
$

$ svmon -U `ps -ef|cut -c1-8|sort -u`-O segment=off -O unit=MB
Unit: MB
===============================================================================
User Inuse Pin Pgsp Virtual
oracle 121.07 34.3 0 120.49
segment=off *** user does not exist ***
pconsole-O *** user does not exist ***
daemon *** user does not exist ***
root *** user does not exist ***
UID *** user does not exist ***

热心网友 时间:2022-04-14 20:15

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为实际内存,上例实现按内存排序,由大到小

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com