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

Logo

更多推荐