MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Проследяване на използването на паметта на MongoDB

Разбирането на използването на паметта на MongoDB е от решаващо значение за доброто изживяване с хостинг на MongoDB. За най-добра производителност е наложително да запазите работния си комплект в паметта. Видях няколко предложения, че ако използвате твърдотелни устройства (SSD), това прави паметта по-малко важна. Времето за достъп до паметта с динамичен произволен достъп (DRAM) е от порядъка на наносекунди, времето за достъп до SSD е от порядъка на микросекунди, а времето за достъп до твърдия диск е от порядъка на милисекунди – така че SSD все още имат начини да наваксат с памет.

MongoDB използва картографирани файлове с памет (MMF), за да картографира базата данни в паметта. Данните периодично се изхвърлят на диска (очевидно механизмът е много по-сложен, но това е тема за друга публикация).

След като вашият MongoDB сървър е стартиран и работи, важно е да наблюдавате и разбирате използването на паметта. За да наблюдавате нашите MongoDB сървъри, можете да използвате ScaleGrid MongoDB Monitoring Console за да видите подробни показатели за ефективността си. Изпълнете някои примерни работни натоварвания и установете базова линия, за да можете да разберете кога нещо не работи нормално. Ето четири важни брояча, които ще ви помогнат да наблюдавате използването на вашата MongoDB памет:

  1. Памет

    Това всъщност са три брояча в една графика:

    1. Постоянна памет

      Това е действителното количество физическа памет, използвана от процеса MongoDB.

    2. Картографирана памет

      Това е количеството виртуална памет, използвана от напредъка на MongoDB за картографиране на вашата база данни в памет. Това обикновено е размерът на вашата база данни.

    3. Виртуална памет

      Това включва виртуалната памет за целия процес на MongoDB. Ако сте включили записването в дневник, това обикновено ще бъде два пъти по-голямо от вашата картографирана памет.

  2. Некартирана виртуална памет

    Това е количеството виртуална памет, използвана за счетоводни данни, а не за картографиране на файловете с данни. Например, всяка връзка консумира определено количество памет. Обикновено този брояч трябва да е сравнително нисък – обикновено по-малко от 1GB.

  3. Грешки в страницата

    Това е броят на грешките при твърди страници/секунда. Очевидно искате този номер да бъде възможно най-нисък.

    • Неизправност на твърдата страница

      Това се задейства, когато въпросната страница не е във физическата памет и трябва да бъде извлечена от диска.

    • Повреда на меката страница

      Това се случва, когато страницата се намира някъде другаде в паметта или е в преходно състояние.

  4. B-дърво (пропускане на индекса)

    Пропускането на индекс е два пъти по-неефективно, тъй като причинява две четения на диска, едното за четене на записа в индекса, а другото за четене на документа. Броячът на B-дървото проследява броя на пропуските на индекса. Това е друго място, на което ще искате да установите базова линия, за да забележите всякакви необичайни модели. Използвайте командата .explain(), за да проверите плановете на заявките за често срещаните си заявки.

Друг важен аспект от управлението на паметта в MongoDB е да разберете вашия „работен набор“. В следващата ни публикация ще разгледаме как да определим работния набор за вашата база данни.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB агрегат в рамките на ежедневно групиране

  2. Как да активирам удостоверяване на MongoDB чрез Docker?

  3. Основни съображения за вземане на резервно копие на MongoDB

  4. Лесен начин за генериране на код с Mongoose и Node.js и Underscore?

  5. Низ за връзка в MongoDB (с примери)