Запустіть сервер конфігурації MongoDB без 3 ГБ журнальних файлів


9

Для встановленої в MongoDB виробництва нам потрібні 3 сервери конфігурації. Згідно з документацією, "процес конфігураційного сервера mongod досить легкий і його можна керувати на машинах, що виконують інші роботи". Однак у конфігурації за замовчуванням для всіх їх увімкнено перехід, і при попередньому розміщенні це займає 3 ГБ місця на диску. Я припускаю, що фактичний обсяг даних і транзакцій конфігураційного сервера є досить малим, так що це здається занадто великим.

Чи є спосіб (безпечно!) Запустити ці конфігураційні сервери із значно меншим використанням диска для журналу? Чи потрібні взагалі журнали на конфігураційних серверах? Чи можна встановити розмір журналу як менший?

Відповіді:


10

Так - існує спосіб мінімізувати розмір журнальних файлів за замовчуванням за умови декількох застережень. З документації по конфігурації MongoDB :

Щоб зменшити вплив журналу на використання диска, ви можете залишити журнал увімкненим і встановити малі файли на істинне, щоб зменшити розмір файлів даних і журналів.

Ось smallfilesінформація конфігурації:

Установіть значення true, щоб змінити MongoDB для використання меншого розміру файлу даних за замовчуванням. Зокрема, невеликі файли зменшують початковий розмір файлів даних і обмежують їх до 512 мегабайт. Параметр smallfiles також зменшує розмір кожного файлу журналу від 1 гігабайт до 128 мегабайт.

Використовуйте налаштування невеликих файлів, якщо у вас є велика кількість баз даних, в яких кожна містить невелику кількість даних. Налаштування smallfiles може призвести mongod до створення багатьох файлів, що може вплинути на продуктивність для великих баз даних.


0

Ви можете деякі члени реплікації використовувати журнал, а інші - ні. [1]

Ви можете встановити розмір jounral як менший за допомогою командного рядка "--smallfiles". [2]


І чи рекомендується щось із цього?
Тило

MongoDB робить попередній розподіл файлами журналів, щоб уникнути того, щоб пізніше витрачати час на нього. Якщо ви переживаєте за дисковий простір більше, ніж продуктивність, це варіант. Я рекомендую залишити журнал на всіх машинах, ви ніколи не знаєте, коли і як може статися збій. Ніколи не можеш бути занадто безпечним.
Нікан

1
Це, звичайно, хороша настанова. Але запитуючі уми хочуть дізнатися, чи має сервер конфігурації обсяг транзакцій, який потребує 3 ГБ журналів, і чи є користь мати журнали взагалі, окрім швидшого часу запуску після збоїв (зауважте, що з 3-х серверів конфігурації не слід будь-яка втрата даних, навіть без ведення журналів, правда?) І наскільки швидше все-таки з невеликою кількістю даних, що відповідають лише налаштуванням. Мені здається, що правила тут повинні бути різними для реплікаційних вузлів та конфігураційних серверів. Документи говорять, що "ви повинні бути добре, якщо зможете відновити один із них протягом дня", наприклад.
Тило

0

Ви можете запустити mongod за допомогою параметра --nojournal, але я буду дуже впевнений щодо резервного копіювання вашого конфігураційного сервера.


1
Наскільки більш впевненим я повинен бути, ніж три конфігураційні сервери на трьох різних машинах? Також, яка процедура створення резервних копій конфігураційного сервера? Якщо я не створюю резервну копію після кожної зміни (скажімо, додано колекцію чи події різкості), я не можу відновитись із цих застарілих резервних копій, правда?
Тило
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.