/var/lib/mongo 的预读设置为 4096KB

ped*_*ler 4 centos mongodb block-device centos7

我正在尝试按照建议为 mongo 256 或更少设置预读,我查看了文档 以获取任何指导,我发现了这一点:

确保存储数据库文件的块设备的预读设置适当。对于随机访问使用模式,设置较低的预读值。32 (16kb) 的预读通常效果很好。对于标准块设备,您可以运行sudo blockdev --report以获取预读设置并sudo blockdev --setra <value> <device> 更改预读设置。有关详细信息,请参阅您的特定操作系统手册。

当我做一个sudo blockdev --report我得到:

rw  8192   512  4096          0     32212254720   /dev/sda
rw  8192   512  4096       2048     31162630144   /dev/sda1
rw  8192   512  4096   60866560      1048576000   /dev/sda2
rw  8192   512  4096          0     75161927680   /dev/sdb
rw  8192   512  4096       2048     75159830528   /dev/sdb1
Run Code Online (Sandbox Code Playgroud)

我怎么知道哪个是与 mongo 相关的?

Ada*_*m C 7

它可能/dev/sdb给出了您列出的尺寸,但您可以通过运行df -h. 我保留我的数据/data,这是我的相关输出:

> df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb1        70G   18G   49G  27% /
/dev/sdc1        932G  682G  250G  74% /data
Run Code Online (Sandbox Code Playgroud)

在我的情况下,这意味着我应该更改预读的是/dev/sdc1. 弄清楚您保存数据的位置,然后确定对应的块设备,然后在该设备上设置预读。就我而言:

sudo blockdev --setra 256 /dev/sdc
Run Code Online (Sandbox Code Playgroud)

要坚持重启,您需要添加此命令或类似于 rc.local 之类的引导脚本,或者将其放入 MongoDB init 脚本中以确保它在 MongoDB 进程启动之前设置(预读仅被读取一次)启动时的进程,因此需要重新启动进程以影响更改)。