Риски изменения частоты промывок

Через iostat я мог обнаруживать всплески записи на диск один раз в минуту. Я думаю, что эти всплески вызваны fsync, поскольку MongoDB по умолчанию сбрасывает данные на диск каждые 60 секунд. Я также мог обнаружить, что одновременно с пиками медленные запросы появляются в журнале медленных запросов.

Есть опция под названием storage.syncPeriodSecs, но согласно документации:

Do not set this value on production systems. In almost every situation, you should use the default setting.

Более частое выполнение fsync может уменьшить всплески, поэтому я хотел бы знать риски изменения этого значения в производственной среде.

Буду признателен за любые мысли.

Подробности:

  • Версия MongoDB: 3.2.16

  • Механизм хранения: WiredTiger

  • Медленные запросы во время пика: пара из них, около 1 секунды. Не тормозить сервер

  • Развертывание: сегментированный кластер. Наборы реплик с двумя элементами (первичный + вторичный)

  • Технические характеристики: ЦП 8 ядер, Память 64 ГБ, SSD-диск

Пожалуйста, опубликуйте более подробную информацию: 1) используете ли вы WiredTiger или механизм хранения MMAPv1, 2) насколько медленны медленные запросы и связаны ли они с "остановкой" всего сервера, 3) это автономное развертывание или набор реплик, 4 ) если установлена ​​реплика, происходит ли это на первичном или вторичном сервере, 5) ваша версия MongoDB, 6) как подготовлено оборудование (ОЗУ, ЦП и т. д.)

kevinadi 13.09.2018 05:53

Спасибо за ваш комментарий !, общий ответ о рисках storage.syncPeriodSecs был нормальным, но я отредактировал свой вопрос с деталями :)

Antonio Val 13.09.2018 06:25

@AntonioVal Вы смогли это исправить?

best wishes 13.10.2020 07:22

@bestwishes наконец-то было решено улучшить спецификации, но это не совсем исправление.

Antonio Val 14.10.2020 08:18
1
4
207
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Механизм хранения WiredTiger выполняет контрольно-пропускной пункт каждые 60 секунд. Похоже, что ваше развертывание испытывает трудности во время этих событий контрольной точки. Такое поведение типично, если вы выполняете большую нагрузку на запись в оборудование, которое (может быть) недостаточно подготовлено.

Обычно не рекомендуется изменять значение syncPeriodSecs в производственной среде, поскольку значение по умолчанию считается правильным балансом между использованием памяти, количеством событий fsync, возможностью потери данных между событиями fsync при сбое и другими соображениями. в типовой конфигурации оборудования.

Изменение этого значения может ухудшить стойло. Конечно, вы можете поэкспериментировать, изменив его (ниже или выше), чтобы посмотреть, сможет ли он «сгладить» события fsync. Сказав это, это расширенный механизм настройки, который лучше всего зарезервировать, когда другие параметры больше не доступны. Если возможно, подобные сбои обычно можно решить путем предоставления более качественного оборудования, поскольку кажется, что текущее оборудование испытывает трудности с нагрузкой, которую вы ожидаете от него.

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