运行时top,我得到:
top - 09:10:52 up 18:37, 1 user, load average: 1.56, 1.33, 1.15
Tasks: 39 total, 1 running, 38 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.1%us, 0.6%sy, 1.0%ni, 92.5%id, 5.8%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 4194304k total, 3045460k used, 1148844k free, 0k buffers
Swap: 0k total, 0k used, 0k free, 2256128k cached
Run Code Online (Sandbox Code Playgroud)
看部分:2256128k缓存?这到底是什么意思呢?
我正在比较来自两个提供商的两个 VPS,这个总是有大量的(已用内存的 70%),而另一个 VPS 提供商总是显示 0。
roa*_*dmr 124
Linux 内核将使用可用内存进行磁盘缓存,除非正在运行的程序需要它。
这被认为是好的;假设您有 4 GB RAM,而您的程序仅使用 1 GB。其他 3 GB 将被浪费。尽管知道您只使用了 25% 的内存带来了“感觉良好”的印象,但相反的情况是另外 75% 的内存没有使用。所以内核使用它来缓存文件,这显着提高了性能。它是自动的;与较旧的操作系统不同,您无需决定投入多少磁盘缓存,或手动配置它。
“Linux 磁盘缓存非常不引人注目。它使用备用内存来大大提高磁盘访问速度,并且不会从应用程序中占用任何内存。Linux 上充分使用的内存存储是有效的硬件使用,而不是警告信号。”
这是一个非常常见的问题,以至于有一个完整的网站专门讨论它:
该网站甚至有一种方法可以清空磁盘缓存,这样您就可以运行一些应用程序,并查看启用缓存的情况下它们的速度有多快:)
小智 19
缓存前的数字是文件系统的缓存缓冲区正在使用的物理内存量。
尽管在“Swap:”行上,但它实际上与 SWAP 无关。
要通过一个小实验验证我的答案,请尝试以下操作:
运行 top 并注意 'cached' 的值。现在运行
dd if=/dev/zero of=~/trick bs=1M count=128
Run Code Online (Sandbox Code Playgroud)
如果你再次运行 top 你会注意到 'cached' 已经增长了128M
现在删除文件
rm ~/trick
Run Code Online (Sandbox Code Playgroud)
再次运行 top,你会看到 'cached' 减少了128M
所以对于内存:
total = used + free 和
used = <all apps> + buffers + cached
(其中缓冲区基本上是缓存的元数据)。UI有点混乱。
| 归档时间: |
|
| 查看次数: |
93375 次 |
| 最近记录: |