前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >内存占用过高,缓存不释放导致死机处理方案

内存占用过高,缓存不释放导致死机处理方案

作者头像
范一刀
发布2021-08-10 11:34:55
4K0
发布2021-08-10 11:34:55
举报
文章被收录于专栏:CSDN技术博客CSDN技术博客

故障现象:

1、某分行部署的某台服务器内存占用过高,导致死机; 2、代码层面检查暂未发现问题,服务器硬重启持续一段时间后(3-5天)再次占满。

发现问题:

赶往现场后进行检查,当时是一切正常的,今有DB2进程占用18%,在正常范围内; 在crontab 中发现有两个脚本每天14点进行FTP批量数据传输,找到相应的传输文件存放目录发现每天传输的文件达到30多个G,由此可判断这就是故障之根本,FTP传输文件,会缓存到内存中,服务器内存也只有32G,FTP传输导致缓存被占满,Linux不能自动清理缓存导致死机。 Linux内存中缓存占用的空间是可以自动释放的,现在缓存占用了整个内存导致死机,肯定是没有自动释放缓存。

解决方法:

设定Linux内存参数,始终留出一块空间,以避免缓存不释放导致死机。

方案一: 可手动清理页文件缓存,但是需手动执行;

代码语言:javascript
复制
echo  1  >  /pron/sys/vm/drop_caches

方案二: 我们采用的方法是设定内存最低剩余内存,不让缓存占满 1.使用root用户备份/etc/sysctl.conf文件,准备修改原文件; 2.修改sysctl.conf配置文件 2.1 打开sysctl.conf

代码语言:javascript
复制
vim /etc/sysctl.conf

2.2 在文件最后加入一行:

代码语言:javascript
复制
vm.min_free_kbytes = 2097152
代码语言:javascript
复制
(命令意义:设置最小剩余内存,单位KB,这里设置2G)

2.3 保存退出。 3. 使配置文件生效

代码语言:javascript
复制
sysctl  -p

由于第一种方法属于直接清空缓存,可能会造成数据丢失,故在此生产环境我们选择的是方案二。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-03-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档