504 ошибка шлюза при доступе к данным с сервера C # MongoDB драйвера или почтальона - PullRequest
0 голосов
/ 08 апреля 2019

На машине с Windows, имеющей 64 ГБ ОЗУ с редакцией сообщества MongoDB 4.0, наблюдается, что грязные байты в кеше достигают 0,1 ТБ, а кэш достигает 27 ГБ. На этом этапе C # API, извлекающий данные из MongoDB, начинает выдавать ошибку 504 неверного шлюза. Как только служба mongo перезапускается, API начинает давать результаты. Пожалуйста, помогите объяснить причину такого поведения и предложить решение, так как перезапуск службы mongo не является оптимальным решением.

API C # выдает следующую ошибку: 504 Gateway Time-out

Журналы mongo содержат частые записи приведенной ниже информации, но в журналах нет ошибок:

I COMMAND  [ftdc] serverStatus was very slow: { after basic: 0, after asserts: 0, after backgroundFlushing: 0, after connections: 0, after dur: 0, after extra_info: 0, after globalLock: 0, after locks: 0, after logicalSessionRecordCache: 0, after network: 0, after opLatencies: 0, after opReadConcernCounters: 0, after opcounters: 0, after opcountersRepl: 0, after repl: 0, after security: 0, after storageEngine: 0, after tcmalloc: 0, after transactions: 0, after transportSecurity: 0, after wiredTiger: 1618, at end: 1618 }
I COMMAND  [ftdc] serverStatus was very slow: { after basic: 0, after asserts: 0, after backgroundFlushing: 0, after connections: 0, after dur: 0, after extra_info: 0, after globalLock: 0, after locks: 0, after logicalSessionRecordCache: 0, after network: 0, after opLatencies: 0, after opReadConcernCounters: 0, after opcounters: 0, after opcountersRepl: 0, after repl: 0, after security: 0, after storageEngine: 0, after tcmalloc: 0, after transactions: 0, after transportSecurity: 0, after wiredTiger: 13190, at end: 13190 }

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

Существует ли руководство по передовой практике, которое можно использовать, чтобы гарантировать, что API никогда не выдаст ошибки плохого шлюза из-за проблем, связанных с базой данных, как описано выше? Спасибо!

Перезапуск службы mongo помогает выполнять запросы в течение некоторого времени, и грязные байты MongoDB и байты, записанные в кеше, постепенно увеличиваются. Через некоторое время API C # снова начинает выдавать ошибку неверного шлюза.

...