linux中oom_adj
时间: 2024-05-16 07:10:41 浏览: 222
oom_adj是Linux内核中的一个参数,用于控制进程被OOM(Out Of Memory)杀死的优先级。当系统内存不足时,内核会尝试杀死一些进程以释放内存。oom_adj值越低,进程被杀死的概率就越大,反之亦然。
oom_adj的取值范围是[-16,15],默认值为0。当进程的oom_adj值为-17时,表示该进程永远不会被OOM杀死。
通过修改/proc/[pid]/oom_adj文件,可以调整进程的oom_adj值。例如,以下命令将PID为123的进程的oom_adj值设置为5:
echo 5 > /proc/123/oom_adj
注意,oom_adj只是一个控制进程被杀死优先级的参数,并不能解决内存泄漏等问题。因此,在使用oom_adj调整进程优先级时,需要慎重考虑,并结合其他监控和优化手段来确保系统稳定性。
相关问题
V4L2DecoderThre invoked oom-killer: gfp_mask=0x2dc0(GFP_KERNEL|__GFP_NOWARN|__GFP_ZERO), order=3, oom_score_adj=-1000
这段信息看起来是一个内核级别的错误日志。其中oom-killer是Linux内核中用于处理内存不足的进程的守护进程。当系统中的可用内存不足时,oom-killer会选择一个进程并将其杀死,以释放内存。在这里,V4L2DecoderThre进程被oom-killer杀死了,原因是系统中的可用内存不足,所以内核选择了它。
这种错误通常是由于系统资源不足所致,例如内存或交换空间。您可以尝试增加系统资源,例如增加内存或交换空间,以避免这种错误的发生。
Out of memory: Killed process 27272 (droid.ugc.aweme) total-vm:26718632kB, anon-rss:492060kB, file-rss:228700kB, shmem-rss:14236kB, UID:10198 pgtables:6052kB oom_score_adj:0 每个参数的含义
这是一条 Linux 系统的提示信息,其中包含了一些关于进程状态的信息。以下是每个参数的含义:
- Out of memory: 是提示信息的开头,表示这是一个内存不足的错误。
- Killed process 27272 (droid.ugc.aweme): 表示被杀死的进程的信息,其中27272是进程的 ID,droid.ugc.aweme是进程的名称。
- total-vm:26718632kB: 表示进程使用的虚拟内存大小,单位是 kB。
- anon-rss:492060kB: 表示进程占用的匿名内存大小,即不属于特定文件或共享内存区域的内存,单位是 kB。
- file-rss:228700kB: 表示进程占用的文件内存大小,即已经映射到某个文件的内存,单位是 kB。
- shmem-rss:14236kB: 表示进程占用的共享内存大小,即进程调用了共享内存相关的系统调用分配的内存,单位是 kB。
- UID:10198: 表示进程所属的用户 ID。
- pgtables:6052kB: 表示进程占用的页表大小,单位是 kB。
- oom_score_adj:0: 表示进程的 OOM score,即内核根据进程的内存占用情况计算的一个得分,值越高表示越容易被 OOM killer 选择杀死。
需要注意的是,每个系统可能会有不同的参数值和显示格式,但是大体含义通常是相似的。
阅读全文