Производительность записи Mongodb падает, когда использование кэша Wired Tiger превышает 80% от общего размера кэша. - PullRequest
1 голос
/ 09 апреля 2019

Я запускаю нагрузочный тест на Mongodb, используя java-драйвер на стороне клиента.

Настройка кластера включает в себя: 3 Mongo, 3 сервера конфигурации, 3 шарда, каждый из которых имеет 3 члена (основной, дополнительный и узел арбитра). Все работает на отдельной машине.

Конфигурационные серверы и узлы сегментов настроены с размером кеша wiredTiger 4 ГБ.

На стороне клиента я каждый раз вставляю один и тот же документ.Здесь _id генерируется автоматически.Размер документа фиксированный и составляет всего 900 байт.

При выполнении загрузки транзакции 40 Кбит / с от одного клиента с использованием операции insertOne, я получаю около 40 КБ транзакций в секунду.Но этот TPS значительно падает и постепенно становится ноль после полного использования ОЗУ (кеш WT и кеш файловой системы (Linux)).т.е. я не могу вставить больше документов в БД.

Однако я попытался вставить документы, используя второй клиент, чтобы проверить, является ли это проблемой на стороне клиента.Но также не удалось вставить.

IOStats сервера, имеющего первичный узел: IOStats of the server having Primary Node

MongoStats на первичном узле: MongoStats at primary node

MongoTop на основном узле: MongoTop at primary node

...