4855

24 分钟

#Bash 的 choom 命令

choom [OPTION] [--] [COMMAND] [ARGS ...]

功能

查看或调整进程的 OOM(Out-Of-Memory)评分;或以指定的 OOM 调整评分执行命令。

Linux 内核在内存耗尽时会启动 OOM Killer,选择一个 OOM 评分最高的进程杀掉。

类型

可执行文件(/usr/bin/choom),属于 util-linux

参数

  • OPTION 选项:
    • -p, --pid - 要查看或调整 OOM 评分的的进程ID
    • -n, --adjust - 要设置的 OOM 调整评分,取值范围是 0 到 1000,越大越容易被杀
    • --help - 显示帮助
    • --version - 显示版本
  • COMMAND - 要执行的命令
  • ARGS - 命令的参数列表

#示例

查看和调整进程的 OOM 评分

$ choom -p $$ # 查看当前 shell 进程的 oom 评分 pid 944375's current OOM score: 666 pid 944375's current OOM score adjust value: 0 $ choom -p $$ -n 500 # 将调整评分设为 500 pid 944375's OOM score adjust value changed from 0 to 500 $ choom -p $$ # 再次查看当前 shell 进程的 oom 评分 pid 944375's current OOM score: 1000 pid 944375's current OOM score adjust value: 500
  • 原始评分为 666
  • 调整评分被设为 500
  • 调整后评分为 666 + 500,超过了上限 1000 因此缩限到 1000

以指定的 OOM 调整评分执行命令

$ choom -n 1000 -- tail -f /var/log/syslog # 以 1000 的调整评分执行 tail -f /var/log/syslog
  • 1000 的调整评分执行 tail -f /var/log/syslog,内存不足时会优先杀死此进程

#推荐阅读

#手册

CHOOM(1) User Commands CHOOM(1) NAME choom - display and adjust OOM-killer score. choom -p PID choom -p PID -n number choom -n number [--] command [argument ...] DESCRIPTION The choom command displays and adjusts Out-Of-Memory killer score setting. OPTIONS -p, --pid pid Specifies process ID. -n, --adjust value Specify the adjust score value. -h, --help Display help text and exit. -V, --version Print version and exit. NOTES Linux kernel uses the badness heuristic to select which process gets killed in out of memory conditions. The badness heuristic assigns a value to each candidate task ranging from 0 (never kill) to 1000 (always kill) to determine which process is targeted. The units are roughly a proportion along that range of allowed memory the process may allocate from based on an estimation of its current memory and swap use. For example, if a task is using all allowed memory, its badness score will be 1000. If it is using half of its allowed memory, its score will be 500. There is an additional factor included in the badness score: the current memory and swap usage is discounted by 3% for root processes. The amount of "allowed" memory depends on the context in which the oom killer was called. If it is due to the memory assigned to the allocating task’s cpuset being exhausted, the allowed memory represents the set of mems assigned to that cpuset. If it is due to a mempolicy’s node(s) being exhausted, the allowed memory represents the set of mempolicy nodes. If it is due to a memory limit (or swap limit) being reached, the allowed memory is that configured limit. Finally, if it is due to the entire system being out of memory, the allowed memory represents all allocatable resources. The adjust score value is added to the badness score before it is used to determine which task to kill. Acceptable values range from -1000 to +1000. This allows userspace to polarize the preference for oom killing either by always preferring a certain task or completely disabling it. The lowest possible value, -1000, is equivalent to disabling oom killing entirely for that task since it will always report a badness score of 0. Setting an adjust score value of +500, for example, is roughly equivalent to allowing the remainder of tasks sharing the same system, cpuset, mempolicy, or memory controller resources to use at least 50% more memory. A value of -500, on the other hand, would be roughly equivalent to discounting 50% of the task’s allowed memory from being considered as scoring against the task. AUTHORS Karel Zak <[email protected]> SEE ALSO proc(5) REPORTING BUGS For bug reports, use the issue tracker at https://github.com/util-linux/util-linux/issues. AVAILABILITY The choom command is part of the util-linux package which can be downloaded from Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>. util-linux 2.39.3 2023-10-23 CHOOM(1)

更新: 2026/1/5

作者: PlanC

创建: 2026/1/5