内存占用过高,缓存不释放导致死机处理方案
2018-01-29 18:05
1461 查看
故障现象:
1、某分行部署的某台服务器内存占用过高,导致死机;
2、代码层面检查暂未发现问题,服务器硬重启持续一段时间后(3-5天)再次占满。
发现问题:
赶往现场后进行检查,当时是一切正常的,今有DB2进程占用18%,在正常范围内;
在crontab 中发现有两个脚本每天14点进行FTP批量数据传输,找到相应的传输文件存放目录发现每天传输的文件达到30多个G,由此可判断这就是故障之根本,FTP传输文件,会缓存到内存中,服务器内存也只有32G,FTP传输导致缓存被占满,Linux不能自动清理缓存导致死机。
Linux内存中缓存占用的空间是可以自动释放的,现在缓存占用了整个内存导致死机,肯定是没有自动释放缓存。
解决方法:
设定Linux内存参数,始终留出一块空间,以避免缓存不释放导致死机。
方案一:
可手动清理页文件缓存,但是需手动执行;
方案二:
我们采用的方法是设定内存最低剩余内存,不让缓存占满
1.使用root用户备份/etc/sysctl.conf文件,准备修改原文件;
2.修改sysctl.conf配置文件
2.1 打开sysctl.conf
2.2 在文件最后加入一行:
2.3 保存退出。
3. 使配置文件生效
由于第一种方法属于直接清空缓存,可能会造成数据丢失,故在此生产环境我们选择的是方案二。
1、某分行部署的某台服务器内存占用过高,导致死机;
2、代码层面检查暂未发现问题,服务器硬重启持续一段时间后(3-5天)再次占满。
发现问题:
赶往现场后进行检查,当时是一切正常的,今有DB2进程占用18%,在正常范围内;
在crontab 中发现有两个脚本每天14点进行FTP批量数据传输,找到相应的传输文件存放目录发现每天传输的文件达到30多个G,由此可判断这就是故障之根本,FTP传输文件,会缓存到内存中,服务器内存也只有32G,FTP传输导致缓存被占满,Linux不能自动清理缓存导致死机。
Linux内存中缓存占用的空间是可以自动释放的,现在缓存占用了整个内存导致死机,肯定是没有自动释放缓存。
解决方法:
设定Linux内存参数,始终留出一块空间,以避免缓存不释放导致死机。
方案一:
可手动清理页文件缓存,但是需手动执行;
echo 1 > /pron/sys/vm/drop_caches
方案二:
我们采用的方法是设定内存最低剩余内存,不让缓存占满
1.使用root用户备份/etc/sysctl.conf文件,准备修改原文件;
2.修改sysctl.conf配置文件
2.1 打开sysctl.conf
vim /etc/sysctl.conf
2.2 在文件最后加入一行:
vm.min_free_kbytes = 2097152
(命令意义:设置最小剩余内存,单位KB,这里设置2G)
2.3 保存退出。
3. 使配置文件生效
sysctl -p
由于第一种方法属于直接清空缓存,可能会造成数据丢失,故在此生产环境我们选择的是方案二。
相关文章推荐
- linux下java程序占用CPU和内存过高排错处理方案
- Svchost.exe 占用过高内存 导致电脑卡
- 今天有朋友说wordpress非常的占用内存,导致服务器经常死机。
- 记一次解决缓存不释放导致内存耗光问题
- 多线程处理中对象的内存占用及释放讨论
- 解决WordPress被利用xmlrpc.php导致VPS CPU内存占用过高问题
- ipcs 共享内存导致服务器死机、服务无法启动处理
- 【转载】SQL Server占用内存过大导致服务器死机问题的解决
- cocos2dx 中切换场景内存占用过高的处理
- 内存占用过高导致其他应用block住
- MS-SQL 服务器占用内存过高导致传输数据变慢
- url不重复会造成asp.net的私有缓存占用内存过高
- Weblogic内存不释放,导致死机
- Ubuntu Linux出现内存不足导致的死机时处理
- 使用ANTS Performance Profiler&ANTS Memory Profiler工具分析IIS进程内存和CPU占用过高问题
- session不及时释放导致内存溢出的性能问题分析
- CentOS7(Linux)清理yum缓存 和释放内存方法
- Mssql server缓存清除与内存释放
- centos释放缓存内存
- 执行缓存优化SQL Server的内存占用之执行缓存篇