首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何告诉内核在内存分配请求期间释放缓存内存而不是终止应用程序的OOM杀手?

如何告诉内核在内存分配请求期间释放缓存内存而不是终止应用程序的OOM杀手?
EN

Server Fault用户
提问于 2012-03-15 13:21:45
回答 1查看 412关注 0票数 3

我使用下面的内核版本运行Ubuntu10.04

Linux 10-0-1-119 2.6.32-343-ec2 #45-Ubuntu 2月14日18:18:17 UTC 2012 x86_64 GNU/Linux

内存状态显示缓存使用的是RAM的最大份额。

代码语言:javascript
复制
ubuntu@ip-10-0-1-12:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          7702       7657         44          0         24       6137
-/+ buffers/cache:       1494       6207
Swap:            0          0          0

我知道操作系统会自动管理它,并将内存的最大份额保留在缓存中,以尽量减少I/O的成本。

问题是当我们的应用程序需要内存时,当负载很重时,如果物理RAM中没有相同数量的内存,OOM杀手就会终止应用程序。

我如何调优我的内核,以便如果我的应用程序有任何内存请求,内核应该释放一些缓存内存,为我的应用程序腾出空间,而不是让OOM杀手终止它?

EN

回答 1

Server Fault用户

回答已采纳

发布于 2012-03-15 13:31:21

通常,linux会为您的应用程序清除缓存。您可以做的是将您的应用程序排除在OOM杀手之外。OOM杀手不会终止你的应用程序。

代码语言:javascript
复制
echo -17 > /proc/PID/oom_adj

PID应该是程序的PID。

票数 8
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/370044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档