Для чтения /var/lib/mongo установлено значение 4096 КБ

Я пытаюсь установить readahead для mongo 256 или меньше, как рекомендовано, я посмотрел на документацию для каких-либо указаний, и я нашел это:

Убедитесь, что настройки чтения для блочных устройств, в которых хранятся файлы базы данных, являются подходящими. Для шаблонов использования произвольного доступа установите низкие значения readahead. Прочтение 32 (16 КБ) часто работает хорошо. Для стандартного блочного устройства вы можете запустить sudo blockdev --report чтобы получить настройки readahead и sudo blockdev --setra <value> <device> изменить настройки readahead. Для получения дополнительной информации обратитесь к руководству по вашей конкретной операционной системе.

когда я делаю 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

откуда мне знать, что именно связано с монго?

2 ответа

Решение

Это, вероятно /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

В моем случае это означает, что я должен изменить для readahead /dev/sdc1, Выясните, где вы храните свои данные, а затем укажите, какое блочное устройство соответствует, а затем установите значение readahead на этом устройстве. В моем случае:

sudo blockdev --setra 256 /dev/sdc

Чтобы сохранить перезагрузку, вам нужно добавить эту команду или аналогичную загрузочному сценарию, например, rc.local, или, возможно, поместить ее в сценарий инициализации MongoDB, чтобы убедиться, что она установлена ​​до запуска процесса MongoDB (readahead читается только один раз процесс при запуске, следовательно, требуется перезапуск процесса, чтобы повлиять на изменение).

Я написал сценарий инициализации, чтобы установить / отменить это для меня:

перечитать начальный текст

Другие вопросы по тегам