打破清晨喧嚣的 oom
问题描述
今天早上,按照惯例开始完成之前的半成品博客,内容是描述 modpost 的原理。描述的过程中,我同时执行一些命令来采集输出,我写得正爽的时候,执行了 make -j 命令编译后系统卡住了,之前遇到过一次,应该是 oom 了。
不过也没啥大不了的,等几分钟就会恢复,之前遇到的时候貌似对我没有啥影响,等了几分钟,系统恢复正常后,发现 firefox 重启了!恢复之前的 session 后我发现我之前写的博客内容全部丢失了,这就不好玩了!
oom 是啥?
oom 是 out of memory 的简称,是系统内核耗尽时的一种恢复机制,它会按照一些策略选取进程杀死以释放空间。
我的 firefox 进程被 oom 策略选中后被杀死,而且我之前没有保存草稿,数据就这样丢失了。
我查看 dmesg 信息找到了下面这些内容:
[212840.264294] Out of memory: Kill process 29823 (gnome-shell) score 4 or sacrifice child
[212840.264339] Killed process 29823 (gnome-shell) total-vm:3794112kB, anon-rss:684kB, file-rss:0kB, shmem-rss:0kB
[212840.272901] oom_reaper: reaped process 29823 (gnome-shell), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB
这里明确表示触发了 oom,然后 oom 选中了 gnome-shell 进程杀死,释放内存空间。也许我该庆幸系统没有一直死锁,这是 oom 经常遇到的问题,在一些情况下当系统检测到了 oom 之后已经为时已晚,这样系统会整个挂死,如果有看门狗,应该会在既定的时间后重启。
用户态 early-oom-killer 可以用来解决这个问题,不过它不是这里要说明的重点,直接跳过。
为什么 firefox 会躺枪呢?
oom 杀死进程没有什么大不了的,我的问题在于为什么 firefox 也会被杀掉呢?dmesg 不是显示 gnome-shell 被杀了吗?
我并不是在一个 shell 中启动的 firefox,而是通过系统启动项目启动的,firefox 是怎样跟一个 gnome-shell 挂上钩的呢?
pstree 查看进程信息,得到了如下内容:
systemd-+-ModemManager---2*[{ModemManager}]||-gdm3-+-gdm-session-wor-+-2*[gdm-session-wor---2*[{gdm-session-wor}]]| | |-gdm-x-session-+-Xorg---3*[{Xorg}]| | | |-gnome-session-b-+-evolution-alarm---5*[{evolution-alarm}]| | | | |-gnome-shell-+-firefox-esr-+-Web Content---46*[{Web Content}]| | | | | | |-Web Content---51*[{Web Content}]| | | | | | |-Web Content---32*[{Web Content}]| | | | | | |-Web Content---48*[{Web Content}]| | | | | | `-70*[{firefox-esr}]| | | | | |-guake-+-bash-+-less| | | | | | | `-pstree| | | | | | `-3*[{guake}]| | | | | `-21*[{gnome-shell}]
从上面的进程树中可以看出,gnome-shell 是 firefox-esr 的父进程,有了这个信息我就明白了,应该是杀了父进程带来的影响,而且这个父进程不只是父进程这么简单,应该跟 session 有关。
我的笔记本电脑的内存配置
我的电脑的内存信息如下:
[longyu@debian-10:10:05:31] ~ $ free -htotal used free shared buff/cache available
Mem: 7.6Gi 1.6Gi 3.4Gi 197Mi 2.6Gi 5.5Gi
只有 8G 可以用,算比较少了,make -j 创建了多个线程的时候很容易耗尽内存!
打破清晨喧嚣的 oom相关推荐
- 离开宁静的农村,走进喧嚣的城市:搬家!
在希腊神话"赫拉克里斯"里,安泰俄斯(维基百科:Antaeus)是大地之母的儿子,只要他双脚不离地,便有无穷尽的力量.后来他被赫拉克里斯举起,最终被扼死.我是农民的儿子,我总感觉我 ...
- 第一卷清晨的帝国 第一百四十三章 辩难始
第一卷清晨的帝国 第一百四十三章 辩难始 用天谕院副院长莫龘离神官的解释是,隆庆皇子自西陵前来大唐都城长安的路上偶感风寒,所以前些日子一直在桃花巷中静养清心,所以一直未能拜望自己的兄长,而今日得知太子 ...
- 视频 | 太壮观了!阿尔乌拉打破全球最大热气球发光表演纪录
沙特阿拉伯阿尔乌拉2022年3月11日 /美通社/ -- "阿尔乌拉时刻"(AlUla Moments)活动携手沙特阿拉伯热气球联合会(SAHAB)共同打破了全球最大规模热气球发光 ...
- 打破时间的束缚(转)
无固定的日程安排. 无必须参加的会议.Best Buy公司的职场正在发生根本的变革,让我们一窥究竟 2005年的一天下 午,在Best Buy公司负责网上定单业务的查普?阿肯关上了电脑,然后起身说他要 ...
- 由 OOM 引发的 ext4 文件系统卡死
注:本问题影响 3.10.0-862.el7.centos 及之后的 CentOS 7 版本内核,目前问题还未被修复. 背景 近日,我司的测试同学发现内部集群中一个存储节点无法通过 ssh 访问了.i ...
- 愿我是清晨洒入你心间的第一缕阳光
愿我是清晨洒入你心间的第一缕阳光 给你温暖,给你力量,用光芒将你紧紧拥入怀中 不让外面尘世的嘈杂与喧嚣打扰到你分毫 只为了看卧榻上的你那与世无争甜甜的笑容 愿我是清晨润泽你心田的第一滴雨露 在天使还没 ...
- 撒币分钱、喧嚣乱战之后,直播答题2.0更具商业想象力?
从1月27日开始,央视财经频道连续5天6场的直播答题专场活动将直播答题游戏推向了新的高潮.从城市到农村,从大人到小孩,一股全民答题热潮开始席卷全国. 直播答题游戏正成为国民娱乐新方式. 一.直播答题是 ...
- 喧嚣的闹市:手机AI的通货膨胀时代|手机AI的旅行地图二
虽然只过去了一个季度,但如果为2018年的手机行业找一个关键词,那人工智能会有很大概率当选. 以华为和苹果为首,这两家厂商在手机中加入人工智能概念之后,好像一夜之间其他各个厂商都醍醐灌顶,实现了技术突 ...
- 打破时空壁垒,智慧“中枢”助您搭建理想生活
清晨,一缕阳光照进屋内,你慢慢苏醒,智能窗帘缓缓打开,智能睡眠显示昨晚翻身起夜等数据在正常范围内,元气满满的一天就此开始: 提前定时的面包机.蒸蛋器.豆浆机早已在你睡梦时启动,睡醒即可享受健康营养早餐 ...
最新文章
- SQL标准结构化语言练习,SQL增删查改,SQL实现对bank数据的操作
- 配置学习Go的编辑器:配置TextMate
- 第一章——数据结构之绪论
- 网络游戏中用到哪些计算机技术,美术设计中计算机技术的应用论文
- 如何使用计算机中的导出,如何将iPhone手机中的音乐导出至电脑
- graphpad如何检测方差齐_如何选择方差分析中“多重比较”的方法?
- cs231n课程作业踩坑汇总
- 基于visual Studio2013解决C语言竞赛题之0204实数求值
- 天才程序员之陨落:业余项目创业 Cloudflare,公司上市前患病失去自理能力
- 挂载ntfs_Linux识别移动硬盘ntfs格式
- C++11多线程中的detach()、join()、joinable()
- CISCO路由器的备份与还原(2)
- Lattice Diamond 3.12下载与安装(免费获取license.dat)
- WIN10系统不小心点击了显示语言栏怎么恢复
- 跨文化交际复习题及答案(超全的)
- 机器学习从抬脚到趴倒在门槛No.34
- python turtle画中国象棋_python使用turtle绘制国际象棋棋盘
- java实现 一维装箱问题_装箱问题(Bin packing problem)
- GitHub + jsDelivr + PicGo + Imagine 打造稳定快速、高效免费图床
- NoClassDefFoundError: Could not initialize class:XXX