linux系统内存达多少会杀掉进程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux系统内存达多少会杀掉进程相关的知识,希望对你有一定的参考价值。

参考技术A 在Linux系统中,当内存资源不足时,系统会启动OOM(Out Of Memory)Killer进程以释放内存资源。OOM Killer的作用是杀死一些占用内存较多且无法回收的进程,以腾出更多的内存。

OOM Killer的触发条件取决于很多因素,例如内存使用率、swap空间的大小等。通常情况下,当系统剩余内存非常少(低于1?或者没有可用的swap空间时,OOM Killer就会被触发,开始杀死一些进程以腾出内存资源。具体来说,触发OOM Killer的内存阈值是动态调整的,但一般来说,当系统内存使用率超过80?,就有可能触发OOM Killer
参考技术B Linux系统有一个内存回收机制,称为OOM Killer(Out of Memory Killer)。当系统的内存资源不足时,OOM Killer会尝试终止一些进程来释放内存。

具体来说,如果系统的可用内存达到了极限,并且没有更多的内存可以被回收,那么OOM Killer就会启动并寻找消耗内存最大的进程。然后,它会杀死这个进程,以释放其占用的内存资源。

在大多数情况下,内存使用量高达90?上会导致系统开始出现瓶颈,而当内存使用量超过95?,可能会触发OOM Killer机制。但是,实际情况取决于系统的配置和负载,因此可能会有所不同
参考技术C Linux系统内核在内存资源不足时,会自动启动内存回收机制。其中一个策略是通过OOM(Out-Of-Memory)Killer杀死部分进程来释放内存。OOM Killer的作用是挑选最适合终止的进程,以释放更多内存。

Linux OOM Killer选择杀死哪些进程的依据是基于该进程占用的虚拟内存大小和内存使用情况等,并结合进程的优先级、父进程和子进程等因素进行评估。通常情况下,如果系统内存使用率超过了70?80?OOM Killer就有可能开始工作,选择终止一些占用内存较大的进程以释放内存。

但是需要注意的是,OOM Killer并不是一种可控的机制,它可能会误判或选择非期望的进程进行终止,对系统的稳定性产生影响。因此,在实际应用中,建议根据实际需求,进行合理的内存规划和配置,避免出现内存紧张导致的问题
参考技术D 在Linux系统中,如果内存使用达到了系统的最大可用内存容量,操作系统就会强制杀掉进程来释放内存空间。这个临界值取决于系统的配置和内核版本等因素,一般来说,当内存使用量超过了可用物理内存的70?0?,操作系统就开始进行交换(swap),这个时候性能会急剧下降。

具体而言,Linux内存管理机制会根据不同情况自动启动“OOM Killer”(Out-Of-Memory Killer)进程来进行选择性地杀死某些进程,以保证整个系统的正常运行。因此,在应用程序运行时需要关注系统的内存使用情况,并尽可能避免出现内存泄漏、内存碎片等问题,以确保系统的稳定性和性能
第5个回答  2023-03-13 Linux系统的内存管理策略是通过OOM(Out of Memory)Killer机制来保证系统稳定性的。当系统内存不足时,会优先杀掉占用内存较多、可被替换的进程。

一般情况下,Linux系统的内存使用率超过了80?已经属于高内存使用状态。如果进一步增加内存压力,可能会导致系统出现卡顿、崩溃等问题。一般建议在内存使用率达到90?右就应该开始采取相应的优化措施,以避免系统因为内存不足而崩溃或者运行缓慢。

但是,具体的内存杀掉进程的阈值是动态变化的,并且还与系统的配置和具体应用有关。通常情况下,Linux内核会尝试释放一些不必要的缓存和内存页面,以获得更多的内存空间。如果这种方式无法解决内存不足的问题,那么OOM Killer就会被触发,自动杀死一些进程以释放内存

linux 3.16版本 oom时候选择杀掉哪个进程

# linux 3.16版本 oom时候选择杀掉哪个进程
----
### 背景

我有2个定时任务,一个任务A是00:00开跑,另一个B是04:00开跑。正常情况下A会在2点多时候跑完,但是某一天因为某一步骤用的时间过久,导致4点还没跑完,这时候A内存占用大约在12g左右。4点开始了,B开始运行了,逐渐的跑起来了,当内存用到6g左右的时候,系统内存不足,把A杀死了。

疑问:对于这个我有一个疑问,那就是为什么后起来的进程没有被kill,反倒杀死了原来跑的好好的进程。

### 原因

到当linux发生oom的时候,系统会根据一定策略找出进程杀掉(SIGKILL)来释放内存。

linux选择进程的策略可以参考http://elixir.free-electrons.com/linux/latest/source/mm/oom_kill.c这个

可以从select_bad_process这个函数入手,我也正在学习中。

讲的比较浅,只是说了个大概,详细方案,等我看完代码补充上来。

以上是关于linux系统内存达多少会杀掉进程的主要内容,如果未能解决你的问题,请参考以下文章

linux 为什么会自动kill掉进程?怎么处理的

linux内存不足导致java进程被kill掉

如何理解Linux中的OOM机制

oom killer

linux 假死分析

linux 3.16版本 oom时候选择杀掉哪个进程