mongodb中的readahead代表什么?
我在mongodb上收到这个警告mongodb中的readahead代表什么?,mongodb,database,nosql,Mongodb,Database,Nosql,我在mongodb上收到这个警告 WARNING: Readahead for /data is set to 1024KB We suggest setting it to 256KB (512 sectors) or less http://dochub.mongodb.org/core/readahead 当查询时,每个链接都建议将readahead值设置为较小的数字,以及如何设置 我知道将其设置为较小的值会让我摆脱警告,但我更感兴趣的是readahead代表什么?如果我将其设置为更高的
WARNING: Readahead for /data is set to 1024KB
We suggest setting it to 256KB (512 sectors) or less
http://dochub.mongodb.org/core/readahead
当查询时,每个链接都建议将readahead值设置为较小的数字,以及如何设置
我知道将其设置为较小的值会让我摆脱警告,但我更感兴趣的是readahead代表什么?如果我将其设置为更高的值,会产生什么影响?预读是一项内核功能,它在块设备级别工作,并且是全局的(不依赖于进程)。 这是一种用于提高文件读取性能的技术。如果内核有理由相信某个特定文件是按顺序读取的,那么它会在应用程序请求之前尝试将文件中的块读取到内存中。readahead工作时,它会加快系统的吞吐量,因为读取应用程序不必等待其请求。相反,当readahead失败时,它会生成无用的I/O并占用其他用途所需的内存页。() 这里有一个更深入的解释-> 为了解决此问题,请确保存储数据库文件的块设备的预读设置是适当的。对于随机访问使用模式,请设置较低的预读值。提前读取32(16 kB)通常效果良好 在Linux中:
su-
sudo blockdev--report
获取预读设置sudo blockdev--setra
更改预读设置因为这是关于数据库配置的问题,而不是一个编程问题(这就是StackOverflow的目的),所以您应该继续提问。谢谢您的详细回答@cris cole。非常翔实的解释。