之前已经问过这个问题,但是不想再次更新同一个线程,因为它是一个旧线程.
想要从free命令输出中的"缓冲区"和"缓存"列中澄清自己.
这就是我的理解......
缓冲区是数据存储在内存中但尚未刷新到磁盘的东西.数据将由bdflush守护进程定期刷新到磁盘,或者我们可以通过运行sync命令手动执行.
另一方面,缓存是程序/数据,它被加载到内存中但保留在内存中,因此如果再次需要,它将很快可用.
为了理解缓冲区的概念,我尝试了以下实验......
这是free我桌面上的命令读取
[zama@localhost ~]$ free -m
total used free shared buffers cached
Mem: 2897 465 2431 0 30 230
-/+ buffers/cache: 204 2692
Swap: 4000 0 4000
[zama@localhost ~]$ sync
[zama@localhost ~]$ free -m
total used free shared buffers cached
Mem: 2897 466 2431 0 30 230
-/+ buffers/cache: 205 2691
Swap: 4000 0 4000
执行sync命令后,我无法看到缓冲区减少.
接下来我尝试了以下内容...试图将一个巨大的文件写入磁盘.
[zama@localhost ~]$ dd if=/dev/zero of=test bs=1024k
正如预期的那样,缓存的值应该增加并且free正在确认这一点.
@localhost …