我使用下面的内核版本运行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的最大份额。
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杀手终止它?
发布于 2012-03-15 13:31:21
通常,linux会为您的应用程序清除缓存。您可以做的是将您的应用程序排除在OOM杀手之外。OOM杀手不会终止你的应用程序。
echo -17 > /proc/PID/oom_adjPID应该是程序的PID。
https://serverfault.com/questions/370044
复制相似问题