Как записи происходят в MongoDB? - PullRequest
0 голосов
/ 13 февраля 2020

MongoDB использует механизм хранения WiredTiger для обработки записей, а также использует 50% доступного кэша. Поэтому я хочу понять, как wiredTiger использует кеш для записи данных. И почему по умолчанию требуется 50% кеша? Если размер кэша уменьшится до 10-20%, насколько это повлияет на запись?

1 Ответ

1 голос
/ 13 февраля 2020

Для MongoDB версии 3.2 включено, WiredTiger является механизмом хранения по умолчанию.

WiredTiger выполняет блокировку на уровне документа. Это уменьшает замки. Кроме того, он позволяет одновременно считывать или обновлять несколько документов в коллекции.

Механизм хранения WiredTiger - это значительное улучшение по сравнению с MMAPv1 по производительности и параллелизму. Он также предлагает преимущества сжатия и шифрования.

По умолчанию MongoDB резервирует 50 процентов доступной памяти для кэша данных WiredTiger. Размер этого кэша важен для обеспечения адекватной работы WiredTiger. Хорошее практическое правило заключается в том, что размер кэша должен быть достаточно большим, чтобы вместить весь рабочий набор приложения.

db.serverStatus().wiredTiger.cache

wiredTiger.cache.maximum настроенных байтов: это максимальный размер кэша.

wiredTiger.cache.bytes в данный момент в кеше - это размер данных, находящихся в данный момент в кеше. Это не должно быть больше, чем настроенные максимальные байты.

wiredTiger.cache.tracked грязных байтов в кэше - это размер грязных данных в кэше. Это значение должно быть меньше, чем байты, которые в настоящее время находятся в значении кэша.

Глядя на эти значения, мы можем определить, нужно ли увеличивать размер кэша для нашего экземпляра. Кроме того, мы можем взглянуть на значение wiredTiger.cache.bytes read to cache для приложений с интенсивным чтением. Если это значение постоянно высокое, увеличение размера кэша может улучшить общую производительность чтения.

...