в 100%,
в основном когда идут операции insert и/или update
когда нет операция CPU ~30%
Document Query Executor ~ 1,5 Mil
Document Operation ~60K
В какую сторону смотреть шардирование или кластер с разнесением write/read операции?
посчитай относительно возможностей железа и операций/сек при операциях в среднем, от сюда установишь - разносить или шарды
Посмотрите на профили запросов, возможно где-то мимо индекса запросы на update Если у вас под монгой nvme, то посмотрите утилизацию полосы, если она не полностью используется, то посмотрите хватает ли read/write tickets
хватает ли read/write. Да! по профилю запросов посмотрю, хорошая идея
https://studio3t.com/knowledge-base/articles/optimize-mongodb-queries/
Средняя загрузке по железу 40%, в нормальном режиме всего хватает с большим запасом, возможно вариант программно затормозить update и insert, но выглядит очень колхозом...
тогда смотрите сюда, тут всё верно написали https://t.me/mongodb_ru/117874 склоняюсь к 1 пункту - запросы мимо индекса идут
Возможно тебе стоит использовать bulk operations
Много cpu потребляет компрессия.
Возможно, потому, как видим некий отложенный эффект при массовом заполнении данных. По какой метрике можно посмотреть, сколько потребляет компрессия данных?
компрессия тупит из-за объема данных передаваемых по сети?
Тут вам не подскажу. Я разбирал компрессию в разрезе дискового пространства. У меня базы по 4-8 Тб
Пока нет с сетью все хорошо! Сеть - это следующая проблема которая нас ждет, уже не в далеком будущем.
Какое значение сжатия по умолчанию?
https://www.google.com/search?q=default+compression+mongodb
Нашел вот что: storage.wiredTiger.engineConfig.zstdCompressionLevel Type: integer Default: 6 Specifies the level of compression applied when using the zstd compressor. Values can range from 1 to 22. The higher the specified value for zstdCompressionLevel the higher the compression which is applied. Only applicable when blockCompressor is set to zstd. Available starting in MongoDB 5.0
если хочешь максимально понимать как это всё работает - копай wiredTiger.engine - основы
Если у вас под монгой nvme, то посмотрите утилизацию полосы, если она не полностью используется, то посмотрите хватает ли read/write tickets - подскажите где почитать или как посмотреть
Обсуждают сегодня