运行'cat'可以加速linux盒子上的后续文件随机访问吗?

jej*_*eje 6 linux memory performance file

在一个有大量内存(一些Gigs)的Linux机器上,我需要尽可能快地随机访问一个大文件.

我正在考虑cat myfile > /dev/null在访问它之前做一个,所以我的文件页面顺序进入内存,因此比干随机访问更快.

这种方法对你有意义吗?

Has*_*kun 7

虽然这样做可能会强制文件的内容进入系统的缓存,但最好使用posix_fadvise()(使用POSIX_FADV_WILLNEED建议)或(阻塞)readahead()调用来使内核预先缓存您需要的数据.

编辑: 您可能还想尝试使用POSIX_FADV_RANDOM建议完全禁用readahead.这里有一篇文章对使用情况有一个很好的解释:在文件I/O上建议Linux内核


Kri*_*ost 4

正如其他人所说,您需要根据您的具体情况对其进行基准测试。

不过,这很可能会导致性能显着提高。在传统的旋转介质(即硬盘)上,顺序访问(cat 文件 > /dev/null/fadvise)比随机访问快得多。