ps:其中rsz是是实际内存
ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid'
ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | grep oracle | sort -nrk5
其中rsz为实际内存,上例实现按内存排序,由大到小
$ top -u oracle
PID:进程的ID
USER:进程所有者
PR:进程的优先级别,越小越优先被执行
NInice:值
VIRT:进程占用的虚拟内存
RES:进程占用的物理内存
SHR:进程使用的共享内存
S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
%CPU:进程占用CPU的使用率
%MEM:进程使用的物理内存和总内存的百分比
TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
COMMAND:进程启动命令名称
top命令
top -d 1 -p pid [,pid ...] //设置为delay 1s,默认是delay 3s
如果想根据内存使用量进行排序,可以shift + m(Sort by memory usage)
top -b -n 1 |grep oracle|sort -nrk10|awk '{print "VIRT:"$5,"RES:"$6,"cpu:"$9"%","mem:"$10"%"}'
top -b -n 1 |grep oracle|sort -nrk10|awk '{print "PID:"$1,"USER:"$2,"VIRT:"$5,"RES:"$6,"cpu:"$9"%","mem:"$10"%"}'
top -b -n 1 |sort -nrk10|awk '{print "PID:"$1,"USER:"$2,"VIRT:"$5,"RES:"$6,"cpu:"$9"%","mem:"$10"%"}'
# linux 下 取进程占用 cpu 最高的前10个进程
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head
while true; do ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head; sleep 2; done
# linux 下 取进程占用内存(MEM)最高的前10个进程
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head
循环显示进程77988的设备格式的最后1行,间隔2秒,
while true; do pmap -d 77988 | tail -1; sleep 2; done
mapped: 73922396K writeable/private: 25688K shared: 73662464K
mapped: 73922396K writeable/private: 25688K shared: 73662464K
mapped: 73922404K writeable/private: 25696K shared: 73662464K
mapped: 73922412K writeable/private: 25704K shared: 73662464K
mapped: 73922412K writeable/private: 25704K shared: 73662464K
mapped: 73922420K writeable/private: 25712K shared: 73662464K
mapped: 73922428K writeable/private: 25720K shared: 73662464K
mapped: 73922436K writeable/private: 25728K shared: 73662464K
mapped: 73922436K writeable/private: 25728K shared: 73662464K
mapped: 73922444K writeable/private: 25736K shared: 73662464K
mapped: 73922452K writeable/private: 25744K shared: 73662464K
mapped: 73922452K writeable/private: 25744K shared: 73662464K
mapped: 73922460K writeable/private: 25752K shared: 73662464K
最后一行的值说明:
mapped 表示该进程映射的虚拟地址空间大小,也就是该进程预先分配的虚拟内存大小,即ps出的vsz
writeable/private 表示进程所占用的私有地址空间大小,也就是该进程实际使用的内存大小
shared 表示进程和其他进程共享的内存大小
扩展进程内存:
pmap -x 77988
扩展和设备格式区域
Address: 内存开始地址
Kbytes: 占用内存的字节数(KB)
RSS: 保留内存的字节数(KB)
Dirty: 脏页的字节数(包括共享和私有的)(KB)
Mode: 内存的权限:read、write、execute、shared、private (写时复制)
Mapping: 占用内存的文件、或[anon](分配的内存)、或[stack](堆栈)
Offset: 文件偏移
Device: 设备名 (major:minor)
相关文章
- Linux 操作系统原理 — 虚拟内存管理
- Linux内存管理神器:smem工具
- 《深入理解Linux内核》读书笔记:内存管理
- 《深入理解linux内核》读书笔记 -- 第二章 内存寻址
- 《深入理解Linux内核》读书笔记-第二章-内存寻址(1)
- Linux内核内存性能调优的一些笔记
- CentOS7安装SQLServer for Linux预览版的3.5GB内存限制
- 破解SQLServer for Linux预览版的3.5GB内存限制 (UBUNTU篇)
- linux源码解析06–常用内存分配函数kmalloc、vmalloc、malloc和mmap实现原理
- Linux 中 Buffer/Cache内存占用过高解决方法