Linux 为什么第二次cp命令更快
当我执行Linux 为什么第二次cp命令更快,linux,shell,Linux,Shell,当我执行cp folder1 folder2-rf时,第一次大约需要10分钟。但是当我执行第二个命令时,cp folder1 folder3-rf,大约需要1分钟。folder1包含大约100000个文件 为什么第二次有运行时改进 第一次从硬盘读取文件时 第二次从内存中读取文件 与大多数操作系统一样,Linux将访问的文件/块缓存在内存中。这是因为页面缓存。运行sync;echo 3>/proc/sys/vm/drop_缓存使其再次变慢 进一步阅读: 这是因为文件现在存储在内存缓存中。第一
cp folder1 folder2-rf时,第一次大约需要10分钟。但是当我执行第二个命令时,cp folder1 folder3-rf
,大约需要1分钟。folder1
包含大约100000个文件
为什么第二次有运行时改进 第一次从硬盘读取文件时
第二次从内存中读取文件
与大多数操作系统一样,Linux将访问的文件/块缓存在内存中。这是因为页面缓存。运行sync;echo 3>/proc/sys/vm/drop_缓存
使其再次变慢
进一步阅读:
这是因为文件现在存储在内存缓存中。第一次执行此命令时,它必须从磁盘读取文件,这要慢得多。如果您想运行任何形式的使用磁盘访问的基准测试,例如添加“cat MYFILE>/dev/null”,那么记住这一点也很重要在执行实际的基准测试以获得一致的结果之前。只是猜测:可能是因为
folder1
的内容在内存中,以便可以更快地复制?小挑剔:这里调用sync
是毫无用处的。想要同步的原因是无法清除脏对象。但是,sync
只启动写回,它并不是真正的“同步”(也就是说,在写回完成之前阻塞)。因此,调用sync后立即删除缓存与不同步几乎是一样的。