У меня есть два запроса, связанных с mon go db кеша WiredTiger. Я пробую тест YCSB для проверки поведения mon go. Сервер Mon go привязан к 4C / 8T, а в тесте производительности есть запросы на чтение и обновление. Я пытаюсь загрузить БД с 10M строк и только с 1 коллекцией, т.е. Попытка суммировать проблемы вместе с несколькими показателями в БД.
- Размер коллекции БД зависит от распределения размера кэша WiredTiger: наблюдается, что размер коллекции зависит от размера кэша WiredTiger даже после загрузки тех же данных
- Даже несмотря на то, что в кеше достаточно свободного места, Mon go не выведет весь рабочий набор в кэш (размер кэша 31 ГБ описан ниже), даже если свободное место доступно. Следовательно, производительность варьируется.
Добавление статистики для кэша WiredTiger размером 31G, 45G и 128G. Вся статистика собирается после фазы загрузки, поэтому db.stats () остается одинаковой для всех, но размер кэша и размер коллекции различаются.
db.stats () "collection": 1, "views": 0, "objects": 10000000, "avgObjSize": 150.8795472, "dataSize": 1508795472, "storageSize": 3248451584, «numExtents»: 0, «indexes»: 1, «indexSize»: 394469376, «scaleFactor»: 1,
31G Размер кэша:
db.serverStatus ( ) .wiredTiger.cache "байты, находящиеся в данный момент в кэше": 3286513851, "байты загрязнены в кэш-памяти": 195470511, "байты прочитаны в кэш": 201,
db.usertable.stats () "cache ":" байты, находящиеся в данный момент в кэше ": 1903546864," накопленные байты в кеше ": 397640," байты, считанные в кэш ": 0,
45G размер кэша:
db. .usertable.stats () "cache": "байты, находящиеся в данный момент в кэше": 2404522384, "грязные байты в кеше": 137204, "байты прочитаны в кэш": 0,
128G Размер кэша:
db.serverStatus (). WiredTiger.cache "Число байтов, находящихся в настоящее время в кэше": 3862682273, "накоплено байт в кеше ": 188002965," байты считаны в кэш ": 0,
db.usertable.stats ()" cache ":" байты в настоящее время в кэше ": 2404598934," накоплено байт в кеше ": 147844 , "байты считываются в кэш": 0,
Есть ли какой-либо фактор или зависимость в mon go DB, которая влияет на ограничение рабочего набора размера коллекции.
Во время выполнения: при меньшем размере кэша размер коллекции ограничен, что приводит к перестановке страниц, так как значение «байтов считывается в кэш» достигает пиковых значений и снижается производительность.
Во время выполнения: размер кэша 31 ГБ:
db.usertable.stats () "cache": "байты, находящиеся в данный момент в кэше": 2063022696, "грязные байты в кэше накопительный ": 12618328185," байты считаны в кэш ": 17979010
128G Размер кэша:
db.usertable.stats ()" байтов, в настоящее время находящихся в кэше ": 5587271726, «накоплено байт в кеше»: 8036385869, «байты не принадлежат изображениям страниц в кеше»: 3798005089, «прочитано байтов в кэш»: 0,