MongoDB низкая загрузка процессора и производительность - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть MongoDB, работающий на сервере с 2 ГБ ОЗУ и одним vCPU. ОС CentOS Linux выпуска 7.7.1908. У меня есть скрипт Python, который использовал драйвер pymon go. Существует для l oop около 10 итераций, каждая из которых выполняет агрегированный запрос к базе данных. Проблема состоит в том, что для первых 5 итераций загрузка процессора составляет около 100%, что ожидается, но для остальных 5 оно уменьшается примерно до 20%, что снижает производительность и занимает больше времени для последних 5 запросов. получить результат. Почему это происходит, а процессор не одинаков для всех запросов? Единственная разница между запросами - это параметр $ match. Есть ли настройка из Mon go или CentOS, которая удерживает мой процессор после определенного периода?

Используемый запрос выглядит следующим образом:

db.data_col.aggregate({
                "$match": {
                    "reading_date": date
                }
            },
            {
                "$group": {
                    "_id": "$user",
                    "count": {
                        "$sum": 1
                    },
                    "value": {
                        "$max": "$value"
                    }
                }
            }
)

У меня есть индексы на read_date, user, значение.

...