Centos

/var/lib/mongo 的預讀設置為 4096KB

  • February 24, 2018

我正在嘗試按照建議設置 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

我怎麼知道哪個是與 mongo 相關的?

它可能/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

就我而言,這意味著我應該為預讀而更改的是/dev/sdc1. 找出你保存數據的位置,然後找出對應的塊設備,然後在該設備上設置預讀。就我而言:

sudo blockdev --setra 256 /dev/sdc

要在重新啟動後持續存在,您需要添加此命令或類似於 rc.local 之類的啟動腳本,或者將其放入 MongoDB 初始化腳本中以確保在啟動 MongoDB 程序之前設置它(預讀僅由啟動時的程序,因此需要重新啟動程序才能影響更改)。

引用自:https://serverfault.com/questions/650141