可以看到内存使用率持续升高,当到达一定指标后,操作系统会清理,系统可以正常使用,并且 jvm 内存并不高,我加大了系统的内存,使用率依然飚高。
通过排查,内存的使用率指标包含系统内存+缓存,因此这部分多出来的就应该是缓存
为了验证这个想法,执行(执行前要执行 sync 刷新到磁盘,慎重执行)
echo 3 > /proc/sys/vm/drop_caches
后内存使用率果然瞬间下降。
缓存是为了提高文件的IO性能,跟开发确认系统没有直接操作文件相关的功能,那大概率是写日志的原因,并且我们的日志量很大,由于是新系统上线,又不能减少日志打印
当前系统的日志链路是先写本地临时文件目录,然后由日志插件发送到日志中心,因此修改日志发送的路径,去掉了本地存储,直接发送到日志中心
这个是改造后的一个服务,目前内存使用率稳定