dad*_*x86 2 swap cache process ram
我目前在 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
Run Code Online (Sandbox Code Playgroud)
我想知道...
有没有办法知道哪些程序/数据是 RAM 缓存的和/或它们来自哪个进程?
非常感谢您提前。
编辑:要了解 SWAP 中的程序/数据,请遵循 @xubu-tur 提供的链接。
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 的内存中?