Java占Linux超过xms,Linux下Java项目占用内存问题的分析

本文讲述了作者在Linux服务器上遇到的内存爆满问题,分析了Linux内存管理特性,指出内存使用率高并不意味着系统内存不足。同时,讨论了如何判断Java程序的内存消耗,列举了内存溢出的主要原因及解决办法,包括调整JVM参数、优化代码和数据库查询等,并警告了手动清理内存的潜在风险。
摘要由CSDN通过智能技术生成

这两天发现一个问题,即自动化测试平台所在的服务器内存突然就爆了。从现象上看,服务器上执行命令行pandning,日志回吐卡顿,机器卡死......个人感觉这个问题比较蹊跷也很隐蔽,从原则上,讲为了不要眉毛胡子一把抓导致下错定义,故而花了些时间仔细研究了一下。

“内存一直占满”

首先,可以通过free 或者 free -b -s2查看一个Linux内存使用情况,如下图:

3ceab864a8b6e456e2823e2d564965a7.png

内存使用样例图

当发现内存使用率这个数字一直攀升或者已经达到很大值时,就开始紧张起来了;别着急,接下来咱们先看看资料:

在Linux中经常发现空闲内存很少,似乎所有的内存都被系统占用了,表面感觉是内存不够用了,其实不然。这是Linux内存管理的一个优秀特性,在这方 面,区别于 Windows的内存管理。主要特点是,无论物理内存有多大,Linux 都将其充份利用,将一些程序调用过的硬盘数据读入内存,利用内存读写的高速特性来提高Linux系统的数据访问性能。而Windows 是只在需要内存时,才为应用程序分配内存,并不能充分利用大容量的内存空间。换句话说,每增加一些物理内存,Linux 都将能充分利用起来,发挥了硬件投资带来的好处,而Windows只将其做为摆设,即使增加8GB甚至更大。

Linux 的这一特

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值