我正在使用以下内核版本运行 Ubuntu 10.04
Linux ip-10-0-1-119 2.6.32-343-ec2 #45-Ubuntu SMP 周二 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
Run Code Online (Sandbox Code Playgroud)
我知道操作系统会自动管理它并在缓存中保留最大的 RAM 份额以最小化 I/O 的成本。
问题是在重负载期间,当我们的应用程序需要内存时,如果物理 RAM 中没有相同数量的可用内存,OOM 杀手会终止应用程序。
我如何调整我的内核,以便如果我的应用程序有任何内存请求,内核应该释放一些缓存内存以为我的应用程序腾出空间,而不是 OOM 杀手终止它?
通常,Linux 会为您的应用程序清除缓存。您可以做的是从 OOM 杀手中排除您的应用程序。OOM 杀手不会终止您的应用程序。
echo -17 > /proc/PID/oom_adj
Run Code Online (Sandbox Code Playgroud)
PID 应该是您程序的 PID。
归档时间: |
|
查看次数: |
329 次 |
最近记录: |