内存使用量排序显示

top命令查看

top命令能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。使用top命令可以轻松查看各个应用的内存使用情况。

# top -d 1

top命令 res top命令查看内存占用_虚拟地址

在top命令执行过程中可以使用的一些交互命令。如下:

指令

含义

(大写)N

按PID排序

(大写)P

按CPU排序

(大写)M

按内存使用排序

(大写)T

按CPU用时排序

(数字)1

可以看到有几个CPU,每个CPU的使用情况。

c

切换显示命令名称和完整命令行。

t

切换显示进程和CPU状态信息。

m

切换显示内存信息。

u

输入用户名只显示指定用户的进程

n

键入数字可查看指定数量的进程,任意时刻按=即可回复最初的top显示

h 或者?

显示帮助画面,给出一些简短的命令总结说明

k

终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。一般的终止进程可以使用15信号;如果不能正常结束那就使用 信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽

i

忽略闲置和僵死进程。这是一个开关式命令。

q

退出程序。

s 或者d

改变两次刷新之间的延迟时间。系统将提示用户输入新的时间, 单位为s。如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5s。需要注意的是如果设置太小的时间,很可能会引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也会大大增加。

ps

查看各个应用占用的物理空间

ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid'

字段

含义

pid

进程的ID

vsz

进程占用的虚拟内存

rsz

进程占用的物理内存

将java程序按照进程占用的物理内存进行排序

# ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | grep java |  sort -nrk5
# ps aux | grep java | sort -nrk4

查看单个应用占用的内存信息

top命令查看

# top -d 1 -p pid

pmap命令查看

pmap - report memory map of a process(查看进程的内存映像信息)

//这个命令执行需要root权限
# pmap -x pid

循环显示进程586的扩展格式的最后1行,间隔2秒。

# while true; do pmap -x  586 | tail -1; sleep 2; done

查看/proc/process_id/文件夹下文件

//pid为进程号,使用时进行替换
//显示当前进程所占用的虚拟地址。
# cat /proc/pid/maps 
//进程所占用的内存
# cat /proc/pid/statm 
//VmRSS 应用程序正在使用的物理内存的大小 
//VmSize 任务占用的虚拟地址空间的大小 
# cat /proc/pid/status

整体查看内存使用情况

查看/proc/meminfo

查看RAM使用情况最简单的方法是通过/proc/meminfo。这个虚拟文件动态更新。许多其他内存相关工具(如:free / ps / top)等,通过这个文件来获取相应的信息。

# cat /proc/meminfo

free命令查看

通过free命令查看机器空闲内存时,会发现free的值很小。这主要是因为,在linux中有这么一种思想,内存不用白不用,因此它尽可能的cache和buffer一些数据,以方便下次使用。但实际上这些内存也是可以立刻拿来使用的。
所以 空闲内存=free+buffers+cached=total-used

//查看total 行对应的free值,确定可用的内存大小。
//-t:显示内存总和列
//-h:人类视角
# free -t -h