Adi*_*tya 3 database mongodb 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
Run Code Online (Sandbox Code Playgroud)
查询时,每个链接都建议将预读值设置为较少的数字以及如何设置?
我知道将它设置为较小的值会让我摆脱警告,但我对预读代表什么更感兴趣?如果我将其设置为更高的值会产生什么影响?
预读是一个内核特性,它在块设备级别工作并且是全局的(不是进程相关的)。它是一种试图提高文件读取性能的技术。如果内核有理由相信某个特定文件正在被顺序读取,它将尝试在应用程序请求它们之前将文件中的块读入内存。当预读工作时,它会加快系统的吞吐量,因为读取应用程序不必等待其请求。相反,当预读失败时,它会生成无用的 I/O 并占用某些其他目的所需的内存页面。( https://lwn.net/Articles/155510/ )
这是更深入的解释-> http://man7.org/linux/man-pages/man2/readahead.2.html
为了解决这个问题,请确保存储数据库文件的块设备的预读设置是适当的。对于随机访问使用模式,设置较低的预读值。32 (16 kB) 的预读通常效果很好。
在 Linux 中:
以 root 身份登录 -> su -
运行sudo blockdev --report以获取预读设置
运行sudo blockdev --setra <value> <device>以更改预读设置
| 归档时间: |
|
| 查看次数: |
2942 次 |
| 最近记录: |