了解缓存中的程序

了解缓存中的程序

我现在的 RAM 和 SWAP 情况如下:

$ free -h
             total       used       free     shared    buffers     cached
Mem:          7,7G       7,5G       159M       100M        75M       5,9G
-/+ buffers/cache:       1,5G       6,1G
Swap:         7,9G       408M       7,5G

我很想知道...

有没有办法知道哪些程序/数据是 RAM 缓存的和/或它们来自哪个进程?

提前非常感谢您。

编辑:要了解 SWAP 中的程序/数据,请点击@xubu-tur 提供的链接。

答案1

LinuxQuestions.org 上也提出了同样的问题:http://www.linuxquestions.org/questions/linux-general-1/command-to-check-process-taking-high-cached-memory-927756/

答案的重要部分是:

缓存本身与进程无关,它与系统的 I/O 相关。

Linux 会尝试缓存尽可能多的 I/O 数据。如果将来需要读取该数据,则该数据已存储在存储中。缓存是一种避免执行实际 I/O 操作的机制,因为与仅从内存中检索相比,对磁盘的实际 I/O 非常慢。因此,缓存数量高通常是好事,无需担心。

因此,您无法知道哪些程序或进程在缓存中,因为那里没有这样的项目。

您可以在那里找到缓存的 I/O,并且正如 @bseiblod 在他的评论中提到的那样,您可以在这里找到解决方案:如何判断一个文件是否被缓存在 Linux 内存中?

相关内容