【linux】查看内存使用情况

内存使用量排序显示

top命令查看

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

# top -d 1

这里写图片描述

在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

猜你喜欢

转载自blog.csdn.net/sayyy/article/details/81067818