Linux内存使用历史

Dan*_*Dan 9 linux memory process

我有一个问题,我的服务器开始失败一些正常的进程和检查,因为服务器的内存已经完全充满并被采用.

我查看了日志记录,发现它杀死的是一些Java进程.

我使用"top"命令来查看现在占用最多内存的进程(在问题修复之后)并且它是一个Java进程.所以从本质上讲,我可以说出现在哪些进程占用了大部分内存.

我想知道的是,如果有一种方法可以看到哪些进程在发生故障时占用的内存最多?也许Linux会在特定时间跟踪或记录内存使用情况?我真的不知道,但如果我能看到那种细节会很棒.

And*_*oss 2

您是说内核 OOM 杀手启动了吗?dmesg 中的日志说什么?请注意,您可以限制 JVM 使用固定的堆大小,这意味着堆满时它将肯定失败,而不是让内核杀死其他东西。但你的问题的一般答案是否定的:在 OOM 失败时没有办法可靠地运行任何东西,因为系统内存不足!充其量,您可以使用单独的进程来轮询进程表并记录进程大小以捕获内存泄漏情况等......