我们如何找到三天前运行的进程(在 Linux 中)的堆内存。它会存储在任何地方吗?偶然
答案1
一旦一个进程消失了,它的记忆也消失了。您再也找不到它的内容了。
该过程的一些痕迹确实保留了:Linux 与大多数操作系统一样,在分配时擦除内存页,而不是在释放时擦除内存页。换句话说,页面在内核将其交给进程之前被擦除,而不是在内核从进程回收它们时。因此,对 RAM 的取证检查(通过访问/dev/mem
(当然需要 root)或直接硬件访问)将揭示来自终止进程的数据。
然而,将这些页面拼凑在一起(找出如何将它们排列在一起)是非常困难的。此外,三天后,这些页面中的大部分可能已经被重复使用。
如果您想找到数量现在终止的进程使用的内存,即查找堆消耗,默认情况下或使用常见的审核框架不会在任何地方记录该信息。它不被认为是特别有趣的信息。审计框架通常主要关注安全性和问责制,而不是绩效跟踪。