Linux查看内存占用
当应用程序需要内存时,如果没有足够的 free 内存可以用,内核就会从 buffer 和 cache 中回收内存来满足应用程序的请求。jmap命令可以获得运行中的jvm的堆的快照,检查内存泄漏,检查一些大对象的创建,检查系统中什么对象最多,各种对象所占内存的大小等等。指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。我们可以通过这个命令来查看当前
1.top命令:
top命令用于实时显示 process 的动态。
"M"命令根据内存的占用情况降序排列("P"是CPU占用情况降序排列)
对应的表示:
PID | 进程的ID |
USER | 进程所有者 |
PR | 进程的优先级别,越小越优先被执行 |
NInice | 值 |
VIRT | 进程占用的虚拟内存 |
RES | 进程占用的物理内存 |
SHR | 进程使用的共享内存 |
S | 进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数 |
%CPU | 进程占用CPU的使用率 |
%MEM | 进程使用的物理内存和总内存的百分比 |
TIME+ | 该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。 |
COMMAND | 进程启动命令名称 |
我们可以通过这个命令来查看当前内存占用,并且根据PID杀掉不用的程序释放内存
2.free命令
指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。
total | 总计物理内存的大小。 |
used | 已使用物理内存的大小。 |
free | 可用物理内存的大小。 |
Shared | 多个进程共享的内存总额。 |
Buffers/cached | 磁盘缓存的大小。 |
aviliable | 应用程序的角度看到的可用内存数量 |
SWAP是交换分区,也就是我们通常所说的虚拟内存。
在CentOS中的free和available也是有点意思的,我本以为都是指的“可用”,我查阅了一下,区别如下:
free 是真正尚未被使用的物理内存数量。
available 是从应用程序的角度看到的可用内存数量。
我们知道,buffer 和 cache 都属于已经被使用的内存。当应用程序需要内存时,如果没有足够的 free 内存可以用,内核就会从 buffer 和 cache 中回收内存来满足应用程序的请求。
3.jmap
jmap命令可以获得运行中的jvm的堆的快照,检查内存泄漏,检查一些大对象的创建,检查系统中什么对象最多,各种对象所占内存的大小等等。
jmap -heap pid:通过可查看堆内存的配置情况及使用情况
jmap -histo pid:统计对象的创建数量
jmap -dump:format=b,file=heapDump pid:生成dump文件与jhat配合使用
jhat -port xxxx heapDump:浏览器访问localhost:xxxx即可查看dump
我们通过命令查看占用最多的java:
通过可查看堆内存的配置情况及使用情况
然后就可以根据自己的需求进行JVM调优了
————————————————
版权声明:本文为CSDN博主「PigeonEssence」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_56289903/article/details/122360219
更多推荐
所有评论(0)