cached过高,导致load高的问题

本文探讨了Linux系统中内存被大量标记为“cached”的现象,分析了这种情况对JVM和CPU负载的影响,并提供了手动释放缓存的方法及长期优化策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

同事反映linux操作系统无端的大量内存被“cached”状态占用,导致JVM无法申请,CPU load持续上升的情况。

free -m
total used free shared buffers cached
Mem: 7859 7733 126 0 130 1386
-/+ buffers/cache: 6216 1643
Swap: 16383 812 15571


分析:
linux自己调整cache,user基本上没办法干预cache是给文件的page cache,访问过的文件都在page cache里,原则上cache会被动态释放的,cache占内存过多可能是程序访问过大量的文件,导致文件都被cache起来。操作系统清除的原则应该是上次没访问的就清除,前提是内存不够了,否则永远不清除。除非是文件删除或者所在分区卸载等导致inode必须关闭的操作。
cached高的时候往往伴随着swap高,swap高的话,处理速度自然就不高了。手动释放cache后,swap减少,短时间内处理速度自然提升。

解决办法:找到读写多的文件或过大的文件,尽量减少文件读写数,对大文件进行拆分


建议:
经常切割log文件, 没有必要的log信息,不要随便写, 调试log开调试期间可以打开,调试完就关闭。另外log文件要精简,不要把空行,空白等无效信息无端的写进去占用空间。
不要试图在操作系统上存放大量小文件,这样从内存调用和文件系统管理上都是有害的
再碰到类似cached情况,其他办法都解决不了,可以拆卸一些分区试试看。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值