Linux的OOM killer简单测试
时间: 2024-03-15 12:45:45 浏览: 23
好的,让我来为您讲解一下如何简单测试 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,以避免对系统造成不必要的损害。