Linux查看内存占用

        这两天使用腾讯云部署自己的网站,发现部署微服务的时候nacos经常自动退出,开始怀疑是运存不够了。看了一下发现自己的服务器只有2G运存,之前没注意过服务器的内存,所以记录一下Linux查看内存占用的方法。

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调优了

  • 5
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PigeonEssence

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值