aix 查看占用内存高的进程

1,从大到小排列10个内存使用率进程

ps aux | head -1 ; ps aux | sort -rn +3 | head -10

如详细查看进程:

ps -ealf | head -1 ; ps -ealf | sort -rn +9 | head -10
# ps aux | head -1 ; ps aux | sort -rn +3 | head -10
USER PID %CPU %MEM SZ RSS TTY STAT STIME TIME COMMAND
root 6553834 0.1 3.0 115064 115080 - A Feb 20 86:08 /var/opt/tivoli
root 5701730 0.0 1.0 17480 21956 - A Mar 05 1:17 /opt/BESClient/
pconsole 4456680 0.0 1.0 42456 42464 - A Feb 20 3:11 /usr/java5/bin/
root 6750376 0.0 0.0 796 824 pts/0 A 11:29:26 0:00 ps aux
root 6488234 0.0 0.0 260 268 - A Mar 13 0:02 auditbin
root 6357208 0.0 0.0 236 248 pts/0 A 11:29:26 0:00 sort -rn +3
root 5963962 0.0 0.0 1768 1804 - A Feb 20 0:00 /usr/sbin/rsct/
root 5832798 0.0 0.0 836 856 - A 11:29:12 0:00 telnetd -a
root 5570748 0.0 0.0 2128 2096 - A Feb 20 0:00 /usr/sbin/rsct/
root 5308652 0.0 0.0 7328 7436 - A Feb 20 1:01 /usr/sbin/rsct/

2,根据某个命令或进程名,查看内存使用率

# ps aux | head -1 ; ps aux | grep topas

如详细查看:

USER PID %CPU %MEM SZ RSS TTY STAT STIME TIME COMMAND
root 2359426 0.0 0.0 1440 1272 - A Feb 20 1:08 /usr/bin/topasr
root 6160578 0.0 0.0 252 264 pts/0 A 11:36:45 0:00 grep topas

但有的时候ps aux并不能非常详细地表现出进程的完整使用率

3,通过root用户svmon用户可以分析出内存使用量

# svmon -G
size inuse free pin virtual mmode
memory 1048576 1037487 11089 229668 378796 Ded
pg space 2097152 2360
work pers clnt other
pin 196952 0 0 32716
in use 378796 0 658691
PageSize PoolSize inuse pgsp pin virtual
s 4 KB - 793327 2360 49188 134636
m 64 KB - 15260 0 11280 15260

inuse:是物理内存使用量,这里是以4K为单位,所以 1037487*4096=4249546752(424M)

virtual:是虚拟内存使用量,这里是以4K为单位,所以 378796*4096=1551548416(155M)

4,显示使用物理内存最多的3个进程:

# svmon -uP -t 3|grep -p Pid|grep '^.*[0-9] '
6553834 java 51279 8917 0 50938 N Y N
4456680 java 34626 8874 0 34608 N Y N
5701730 BESClient 29564 8882 0 25689 Y Y N

输出的格式顺序为 Pid Command Inuse Pin Pgsp Virtual 64-bit Mthrd

可以计算出X程序所使用的实存为51279×4096=210038784,约为210MB

5,显示交换区使用物理内存最多的3个进程

# svmon -gP -t 3|grep -p Pid|grep '^.*[0-9] '
1966206 shlap64 26782 8880 0 26771 Y N N
0 swapper 9872 8912 0 9872 Y N N
1 init 22094 8836 0 22076 N N N

第一个程序X所使用的交换区大小约为 26782×4096 =10510336 字节,大约为10MB空间

6,每隔三秒显示使用最多的段

# svmon -S -t 3 -i 3
Vsid Esid Type Description Inuse Pin Pgsp Virtual
4f08 - clnt 37505 0 - -
11e1 - clnt 33623 0 - -
8811 - work kernel pinned heap 12637 6547 8091 19397

可见,Vsid为4f08的段使用最多

7,svmon -pP 22674

看PID为22674的进程所使用的为那些文件

Pid Command nuse Pin Pgsp Virtual 64-bit Mthrd
22674 java 29333 1611 2756 32404 N Y
Vsid Esid Type Description Inuse Pin Pgsp Virtual
0 0 work kernel seg 2979 1593 1659 4561
a056 - work 43 16 3 46
1e03 2 work process private 77 2 17 93
1080 - pers /dev/hd2:69742 1 0 - -
f8bd f work shared library data 84 0 11 99
60ee 8 work shmat/mmap 0 0 0 0
70ec - pers /dev/hd2:69836 1 0 - -

8,通过ncheck命令,检查Vsid都使用了哪些文件。

ncheck a056

查看物理内存总量

# cat mem1.sh
#!/usr/bin/ksh
#mem totle
totalmem=$(vmstat -v|head -n 1|awk '{print $1/256}')
echo "mem totle:"
echo $totalmem MB
echo

查看每个用户占用物理内存的数量

# cat mem2.sh
usermem=$(for username in `cat /etc/passwd|awk -F: '{print $1}'`
do
svmon -U $username|grep $username" "
done)
usermem=`echo "$usermem"|grep -v "0 0 0 0"|awk '{print $1,$2/256,"MB"}'`
echo "singe user pmem"
echo "$usermem"
usermem=$(echo "$usermem"|awk 'BEGIN{sum1=0;}{sum1=sum1+$2;}END{print sum1;}')
usermem=$(echo $usermem|awk -F\. '{print $1}')
echo "singe user pmem :" $usermem MB
echo

AIX5.3下查看系统、用户、文件系统占用内存数量

#!/usr/bin/ksh
#查看总的内存数量:
totalmem=$(vmstat -v|head -n 1|awk '{print $1/256}')
echo "总内存(物理内存):"
echo $totalmem MB
echo
#查看各用户使用的内存:
usermem=$(for username in `cat /etc/passwd|awk -F: '{print $1}'`
do
svmon -U $username|grep $username" "
done)
usermem=`echo "$usermem"|grep -v "0 0 0 0"|awk '{print $1,$2/256,"MB"}'`
echo "各用户内存(物理内存):"
echo "$usermem"
usermem=$(echo "$usermem"|awk 'BEGIN{sum1=0;}{sum1=sum1+$2;}END{print sum1;}'
)
usermem=$(echo $usermem|awk -F\. '{print $1}')
echo "用户内存(物理内存)合计:" $usermem MB
echo
#查看文件系统缓存:
clientmem1=`svmon -G|grep "^pin"|awk '{print $4}'`
clientmem2=`svmon -G|grep "^in use"|awk '{print $5}'`
clientmem=`expr $clientmem1 + $clientmem2`
clientmem=`expr $clientmem / 256`
echo "文件系统缓存(物理内存):"
echo $clientmem MB
echo
#查看系统使用内存:
sysmem=$(svmon -S -s -u|cut -b 54-|grep -v "0 0 0 0"|grep [0-9]|awk '{print $1,$2}')
supremeseg=`echo "$sysmem"|grep S|awk 'BEGIN{sum1=0;}{sum1=sum1+$2;}END{sum1=sum1*16*1024*1024;print sum1;}'`
largeseg=`echo "$sysmem"|grep L|awk 'BEGIN{sum1=0;}{sum1=sum1+$2;}END{sum1=sum1*16*1024;print sum1;}'`
mediumseg=`echo "$sysmem"|grep m|awk 'BEGIN{sum1=0;}{sum1=sum1+$2;}END{sum1=sum1*64;print sum1;}'`
smallseg=`echo "$sysmem"|grep s|awk 'BEGIN{sum1=0;}{sum1=sum1+$2;}END{sum1=sum1*4;print sum1;}'`
sysmem=$(expr $supremeseg + $largeseg + $mediumseg + $smallseg)
sysmem=$(expr $sysmem / 1024)
echo "系统内存(物理内存):"
echo $sysmem MB
echo
#查看空闲内存:
freemem=$(vmstat -v|grep free|awk '{print $1/256}')
echo "空闲内存(物理内存):"
freemem=$(echo $freemem|awk -F\. '{print $1}')
echo $freemem MB
echo
时间: 2024-08-01 19:01:19

aix 查看占用内存高的进程的相关文章

linux查看占用内存/cpu最高的进程情况

linux查看占用cpu最高的进程 ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head 或者top (然后按下M,注意这里是大写) linux查看占用内存最高的进程 ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head 或者top (然后按下P,注意这里是大写) 该命令组合实际上是下面两句命令: ps aux|head -1 ps aux|grep -v PID|sort -rn -k

erlang中查找占用内存最多的进程

在erlang查看占用内存最多的进程,可以用etop,在终端输入下面语句: spawn(fun() -> etop:start([{output, text}, {interval, 1}, {lines, 20}, {sort, memory}]) end). 但etop有时会启动不起来,循环是系统比较繁忙的时候,这时可以用下面的方法: %%查找最大内存的进程 find_max_memory_process() ->     %%进程列表     ProcessL = processes()

apache占用内存高解决办法

我用512M的vps,访问量不大,但内存占用很大,甚至宕机. 我用top,然后shitf+m发现,httpd占用内存极大.经过网上找资料设置后,用过一段时间终于没再出现内存问题了. 首先查找配置文件的位置,可以用如下命令: find / -name httpd.conf找到配置文件/usr/local/apache/conf/extra/httpd-mpm.conf,修改设置Apache MPM Prefork模块 StartServers 3MinSpareServers 2MaxSpareS

zabbix自动发现结合shell实现自动发现占用内存最大top10进程并监控其资源

最近在想一个问题,线上服务器跑的服务五花八门,可能这台跑的是nginx,另一台跑的是mysql,其他的跑的是nfs或者其他服务等等,通过某一个脚本中固定的写入一些服务来实现监控所有的服务器的进程占用资源情况占用zabbix服务器资源不说,假如该服务器跑的服务不在固定列表中,监控服务获取不到相应数据. 为了解决这个问题,最近在想通过zabbix的自动发现功能能不能实现自动发现占用服务器内存最大的N个进程,然后对这些进程占用内存和CPU的资源情况进行监控获取数据呢?于是就有了本篇文章的诞生. 首先,

windows 下查看 占用8080端口的进程

Windows下查看进程及结束进程命令 1)查看占用8080端口的进程号 >netstat –aon | findstr “8080” 结果:TCP    0.0.0.0:8080           0.0.0.0:0              LISTENING       3500 可知,进程号为3500的进程占用了8080端口 可以使用命令 tasklist | findstr “3500”进一步查看3500进程的具体信息. > tasklist | findstr “3500” 结果

查找内存、CPU占用较高的进程脚本

#!/bin/bash ps -e -o 'rsz,pid,' | sort -nrk1 | head -5 > /tmp/np.txt ps -e -o 'pcpu,pid' | sort -nrk1 | head -5 > /tmp/up.txt #查询内存使用情况 echo "======================================================================================================

如何解决audiodg占用内存高(停止与重启audiodg服务)

window7电脑audiodg.exe进程占用内存很高 首先想到的办法是结束该进程,于是在任务管理器里结束进程后,内存是释放了,但是发现发现电脑没有声音 去到电脑的system32目录下双击audiodg.exe后任然没有声音 解决方法如下(重启audiodg服务即可): net stop audiosrv (停止audiodg服务) net start audiosrv(重启audiodg服务) 参考地址:http://www.freelists.org/post/wdmaudiodev/h

buff占用内存高

????自己安装的虚拟机,分配了6G的内存,只运行了一个oracle和引用,今天登陆发现,内存占用很高, 查看top,发现buff/cache这一项占了4G多(截图是释放后的),导致运行很卡: 使用如下命令进行释放: [[email protected] ~]# echo 3 > /proc/sys/vm/drop_caches 释放后,明显速度明显加快:

zabbix通过自定义脚本监控nginx,php-fpm和mysql占用内存数和进程的个数

首先,在zabbix脚本目录下添加一个脚本,写入如下代码 #!/bin/bash #license:GPL #mail:[email protected] #date:2015.04.16 top -bn1>/usr/local/zabbix-2.4.4/scripts/process.log LOG=/usr/local/zabbix-2.4.4/scripts/process.log php_fpm(){ grep "php-fpm" $LOG |awk '{sum+=$6}