英文:
Execute script or process right before kernel kills app with OOM
问题
在 OOM(Out of Memory)发生之前运行脚本的方法有吗?
我的 Go 进程会逐渐积累内存,最终由于主机内存不足而被内核杀死。
该进程通过一个 HTTP 套接字暴露 pprof 指标,我想要运行的脚本将会使用 curl
命令连接到该套接字,并保存 pprof 的内存信息。
这样我就有了一个基础来调试为什么进程会耗尽内存的问题,正如这个 GitHub 帖子中所推荐的那样。
更多信息:
错误信息:
Out of memory: Killed process 9421 (process_name) total-vm:10185280kB, anon-rss:6358304kB, file-rss:0kB, shmem-rss:0kB, UID:994 pgtables:12884kB oom_score_adj:0
我知道杀死进程的信号是由内核发送的,所以我的进程无法订阅该信号,但是否有其他信号我应该关注?或者最好的做法是定期轮询本地的 pprof URL 吗?
谢谢!
英文:
Is there a way to run a script right before a process is killed for OOM?
My go process is slowly accumulating memory and eventually the kernel kills it because the host is going out of memory.
The process exposes pprof metrics over an http socket, and the script I want to run would curl
to that socket and save the pprof memory information.
That way I have a base for debugging why the process goes out of memory, as recommended in this GitHub post.
More info:
The error:
Out of memory: Killed process 9421 (process_name) total-vm:10185280kB, anon-rss:6358304kB, file-rss:0kB, shmem-rss:0kB, UID:994 pgtables:12884kB oom_score_adj:0
I know the kill signal is kernel-only, so my process cannot subscribe to that, but is there another signal I should be looking into? Or might the best course of action be to poll the localhost pprof URL at regular time intervals?
Thanks!
答案1
得分: 1
在OOM(内存耗尽)之前运行脚本的方法吗?
没有。
英文:
> Is there a way to run a script right before a process is killed for OOM?
No.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论