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这个函数入手,我也正在学习中。

讲的比较浅,只是说了个大概,详细方案,等我看完代码补充上来。
时间: 2024-10-05 07:58:28

linux 3.16版本 oom时候选择杀掉哪个进程的相关文章

计算机的组成和Linux的发行版本介绍

计算机的组成和 Linux的发行版本介绍 计算机的组成及功能 计算机的五大组成,如下; 各部分的作用; 控制单元和算数逻辑单元是CPU的两个主要组成部分 控制单元主要协调各组件与各单元间的工作 算数逻辑单元主要负责程序运算与逻辑判断 内存,DRANM(Dynamic Random Access Memory)动态随机访问内存:CPU读取的数据都是从内存读取来的. 输入单元,下指令,提供数据的输入等:如:键盘.鼠标等 输出单元,输出数据加工后的结果:如:显示器等 CPU读取的数据都是从内存中获取,

Linux主要发行版本介绍

Linux主要发行版本介绍 1.Red Hat Linux Red Hat是一个比较成熟的Linux版本,无论在销售还是装机量上都比较可观.该版本从4.0开始同时支持Intel.Alpha及Sparc硬件平台,并 且通过Red Hat公司的开发使得用户可以轻松地进行软件升级,彻底卸载应用软件和系统部件.Red Hat最早由Bob Young和Marc Ewing在1995年创建,目前分为两个系列,即由Red Hat公司提供收费技术支持和更新的Red Hat Enterprise Linux,以及

Linux的核心版本(转摘)

本文照抄自鸟哥的linux私房菜第四版 链接:http://linux.vbird.org/linux_basic/0110whatislinux.php#torvalds_version linux的核心版本编号有点类似如下的样子: 虽然编号就是如上的方式来编的,不过依据Linux核心的发展历程,核心版本的定义有点不同. ●奇数.偶数版本分类 在2.6.x版本以前,托瓦茨将核心的发展趋势分为两股,并根据这两股不同的发展分别给予不同的核心编号,那就是: ●主.次版本为奇数:发展中版本(devel

在Linux Mint 16中找到保存的WiFi密码

当你使用 WEP,WPA 或 WPA2-PSK 连接到无线网络时,选择“自动连接”后密码将保存在Linux Mint(或任何其他的操作系统)中.试想一个情况,例如你需要提供密码给来访者,这时你需要知道WiFi密码,然而你有没有把它记下来.你可以轻松地找到之前连接的WiFi密码.下面我们将会指导你如何在 Linux Mint 16 中找到保存的 WiFi 密码.推荐学习Linux视频教程. 在 Linux Mint 中找到保存的 WiFi 密码: 找到保存的 WiFi 密码,其实过程非常简单.点击

最精简Linux Live CD版本:Minimal Linux Live

最精简Linux Live是一系列基于linux内核 和 BusyBox的自动生成最精简 Live Linux 系统linux shell脚本.所有所需的源码已经自动地被下载,而且所有的生成操作已经完全被封装在脚本中了. 如果你想定制属于自己的最精简Linux Live 的ISO镜像文件,以下是你需要做的: 从下载区域获得最新的脚本. 把脚本解压到文件夹下. 确保所有的脚本都可执行(可以使用命令chmod +x *.sh 添加可执行属性) 在开始生成过程之前,取决于你使用什么Linux系统,可能

Linux操作系统各版本ISO镜像下载(包括oracle linux\redhat\centos\u

Linux操作系统各版本ISO镜像下载(包括oracle linux\redhat\centos\ubuntu\debian等) 2015年2月25日, 下午7:49 1.Oracle Linux(下载地址) (1)OracleLinux-Release6-Update0-x86_64-dvd.iso(2)OracleLinux-Release6-Update1-x86_64-dvd.iso(3)OracleLinux-Release6-Update2-x86_64-dvd.iso(4)Orac

Linux 第16天 程序包管理

Linux 第16天自习 程序包管理 时间: 20180802 目录 Linux程序包管理 rpm包管理工具使用 yum在线包管理工具 源码编译安装程序 Linux程序包管理 linux上的大部分软件是开源的,所以他们的源码都是公开的,可以自由获取并安装至自己的 linux系统上,但是对于大部分用户而言,配置源码安装程序包实属不易,并还需要安装编译 环境,因此发行版的厂商将这些开源的软件在自己公司内部将其开源的软件包在各个硬件平台 上编译使其形成二进制文件,并打包好此时用户只需要获取到此安装包并

手把手教你如何安装Tensorflow(Windows和Linux两种版本)

现在越来越多的人工智能和机器学习以及深度学习,强化学习出现了,然后自己也对这个产生了点兴趣,特别的进行了一点点学习,就通过这篇文章来简单介绍一下,关于如何搭建Tensorflow以及如何进行使用.建议的话,还是要学习了一点Python基础知识和Linux知识是最好的! 版本:Windows7 一:安装Anaconda和Tensorflow 步骤: 1:从官方网站下载Anaconda https://www.anaconda.com/download/ 2:进行软件安装(这个和普通的没什么特别区别

Linux查看PCIe版本及速率

Linux查看PCIe版本及速率 PCIE有四种不同的规格,通过下图来了解下PCIE的其中2种规格 查看主板上的PCI插槽 # dmidecode | grep --color "PCI" 不同PCIe版本对应的传输速率如下: 传输速率为每秒传输量GT/s,而不是每秒位数Gbps,因为传输量包括不提供额外吞吐量的开销位: 比如PCIe 1.x和PCIe 2.x使用8b/10b编码方案,导致占用了20% (= 2/10)的原始信道带宽. GT/s —— Giga transation p