这个可以,感谢分享
这个可以,支持一下
思考,有没有非内核态的方法可以控制?这样配置不需要重启,打个包,装好就用
思考,有没有非内核态的方法可以控制?这样配置不需要重启,打个包,装好就用
这个软件目前用了两套判断方法,一套是判断内存用量大于95%且swap用量大于95%,另一套是psi full 10 > 50%,不改内核参数也可以工作,但可能反应稍微慢一点,因为 psi full 指标能将内存满了“变卡”的程度量化出来

这个软件目前用了两套判断方法,一套是判断内存用量大于95%且swap用量大于95%,另一套是psi full 10 > 50%,不改内核参数也可以工作,但可能反应稍微慢一点,因为 psi full 指标能将内存满了“变卡”的程度量化出来
好方法,感谢分享
好东西
@一头牛 @babyfengfjx 感觉系统是不是可以考虑从功能层面引入这样的内存管控机制?
好东西
@一头牛 @babyfengfjx 感觉系统是不是可以考虑从功能层面引入这样的内存管控机制?
直接参考KDE Plasma就行, KDE Plasma有做了实现
直接参考KDE Plasma就行, KDE Plasma有做了实现
https://www.phoronix.com/news/KDE-Plasma-OOM-Notifications
plasma 做的是 OOM 通知,杀应用是kernel oom或者systemd-oomd来杀的,plasma 这个应该只是让你知道应用被杀了
有点东西哇

优秀


优秀,mac上的这个确实挺好用的。
好东西
@一头牛 @babyfengfjx 感觉系统是不是可以考虑从功能层面引入这样的内存管控机制?
引入,引,快引
这个厉害,内核大佬 
大佬好强,想问下我想内置您的程序到 GXDE 里,可以吗
大佬好强,想问下我想内置您的程序到 GXDE 里,可以吗
如果你想的话,为什么不呢,欢迎fork||pr
如果你想的话,为什么不呢,欢迎fork||pr
谢谢大佬
快内置,必须内置,25.2.2里面我必须看到!


中文 


Linux 桌面用户应该都遇到过:内存吃满之后系统不会立刻死,而是先卡上几分钟,鼠标键盘全部失灵,最后只能长按电源。内核不是不
管,是它管得太晚——OOM Killer 要等到内存分配彻底失败才动手,动手之前你已经卡死了。而且它杀谁全看打分,你写到一半的文档可
能正好就是分数最高的那个。
macOS 在这件事上处理得好一些:内存耗尽时系统会把最占内存的几个应用先暂停住,弹个框让你自己决定恢复还是退出。
deepin-liferaft 就是把这套交互搬到了 Deepin 上。
原理不复杂。它每秒读一次内核的 PSI 压力指标(判断阈值直接抄的 Fedora 作业),发现持续高压就用 cgroup.freeze 把最可疑的三
个应用冻住。冻结的应用不再产生任何内存分配,压力马上就降下来,但进程本身完好无损。然后弹出"强制退出应用程序"对话框,要救
要杀随你。就算这时候直接关窗、注销,它退出前也会把冻住的应用全部解开。
名字是救生筏的意思(应用内显示名"内存救生圈")。内存不足这条船该沉还是会沉,它管不了,但能保证沉之前先把人捞上来。
常驻开销大概 13 MiB PSS,闲着的时候基本不干活。源码在 https://github.com/st0nie/deepin-liferaft/ ,欢迎试用。
deepin-liferaft-0.1.0.tar.gz
memory_eater.zip
安装完之后,可能需要手动启用服务,并开启内核的psi功能:
之后更新grub配置并重启电脑:
sudo update-grub && sudo reboot
确认PSI指标存在,即可开始试用了,用systemctl开启服务:
systemctl --user enable deepin-liferaft.service --now
开启后,可以用 python memory_eater.py 来测试,如果工作正常的话,会有这样的弹窗:
已经暂停的程序会以红字显示,选中后点击恢复即可让程序继续工作,直接关掉对话框也能恢复暂停的程序。你可以手动选择需要杀掉的程序,强制退出后,关闭对话框,系统就立刻恢复正常了