oom killer
时间: 2023-11-10 10:07:18 浏览: 62
oom killer 是 Linux 操作系统中的一个机制,用于在系统内存不足时杀死占用内存较多的进程,以释放内存。当系统内存不足时,oom killer 会根据一定的算法选择一个进程杀死,以释放内存。通常情况下,oom killer 会选择占用内存较多的进程进行杀死,但也有可能会选择一些重要的进程被杀死,这是 oom killer 的一个缺点。
相关问题
linux OOM killer 如何关闭
关闭 Linux OOM Killer 可能会导致系统出现内存不足的情况,从而导致系统崩溃或无响应。因此,不建议关闭 OOM Killer,而是应该通过其他方式来解决内存不足问题,例如增加内存容量、优化应用程序或使用内存管理工具。
如果您仍然想要关闭 OOM Killer,可以按照以下步骤进行操作:
1. 打开 /etc/sysctl.conf 文件并添加以下行:
vm.overcommit_memory = 2
2. 运行以下命令以使更改生效:
sysctl -p
3. 修改 /etc/security/limits.conf 文件,添加以下行:
* soft memlock unlimited
* hard memlock unlimited
4. 重启系统使更改生效。
但是请注意,关闭 OOM Killer 可能会导致系统不稳定并影响系统性能。因此,建议仅在特定情况下使用此方法,并在关闭 OOM Killer 后密切监视系统内存使用情况。
Linux的OOM killer简单测试
好的,让我来为您讲解一下如何简单测试 Linux 的 OOM killer。
首先,OOM(Out Of Memory)是指系统内存不足,无法满足进程的内存请求。为了防止系统崩溃,Linux 内核会启动 OOM killer 进程,选择一个或多个进程进行杀死,以释放内存。
为了测试 OOM killer,我们可以创建一个大量占用内存的进程,例如使用 stress 工具:
1. 安装 stress 工具
```
sudo apt-get install stress
```
2. 启动 stress 工具,占用内存
```
stress --vm-bytes $(awk '/MemFree/{printf "%d\n", $2 * 0.9;}' < /proc/meminfo)k --vm-keep -m 1
```
此命令会启动一个进程,占用 90% 的空闲内存,并且保持该进程运行。您可以在另一个终端窗口中使用 `top` 命令查看该进程的内存占用情况。
3. 监控 OOM killer
可以使用 `dmesg` 命令查看系统日志,以了解 OOM killer 的操作情况:
```
dmesg | grep -i oom
```
如果 OOM killer 被触发,您会看到类似以下的输出:
```
[ 489.038737] Out of memory: Kill process 1234 (stress) score 500 or sacrifice child
[ 489.038741] Killed process 1234 (stress) total-vm:123456kB, anon-rss:1234kB, file-rss:5678kB, shmem-rss:0kB
```
这表示 OOM killer 杀死了进程 1234(即 stress 工具),以释放内存。
注意:在生产环境中,请谨慎测试 OOM killer,以避免对系统造成不必要的损害。