Це дуже залежить від системи, але шанси майже певні, що ми пройдемо повз якусь довільну скелю і потрапимо в "Реальну неприємність". Мені цікаво, які саме правила існують для гарного співвідношення оперативної пам’яті та дискового простору. Ми плануємо наш наступний раунд систем і нам потрібно зробити вибір щодо оперативної пам'яті, SSD-дисків та кількості кожного нового вузла.
Але тепер про деякі деталі продуктивності!
Під час нормального робочого процесу одного проекту, MongoDB потрапляє з дуже високим відсотком записів (70-80%). Після того, як на другому етапі обробка трубопроводу потрапляє, він надзвичайно високо читається, оскільки йому потрібно дублювати записи, виявлені в першій половині обробки. Це робочий процес, для якого створено "зберігати робочий набір в оперативній пам'яті", і ми розробляємо це припущення.
Весь набір даних постійно отримує випадкові запити з джерел, отриманих від кінцевих користувачів; хоча частота нерегулярна, розмір, як правило, досить невеликий (групи з 10 документів). Оскільки це орієнтоване на користувачів, відповіді повинні бути під пороговим рівнем 3 секунди. Ця схема доступу набагато рідше знаходиться в кеші, тому велика ймовірність виникнення хітів диска.
Процес вторинної обробки - це читання попередніх циклів обробки, які можуть бути днями, тижнями, а то й місяцями, і вони запускаються нечасто, але все ще повинні бути блискавками. Доступ до 100% документів у попередньому циклі обробки буде доступний. Я підозрюю, що жодна кількість зігрівання кеш-пам'яті не може допомогти у цьому.
Розміри готових документів значно варіюються, але середній розмір становить близько 8 К.
Частина, що читається у звичайній обробці проекту, настійно пропонує використання реплік для розподілу трафіку читання. Я читав в інших місцях, що 1:10 RAM-GB до HD-GB є хорошим правилом для повільних дисків, оскільки ми серйозно розглядаємо можливість використання набагато швидших SSD, я хотів би знати, чи є подібне правило великого пальця для швидких дисків.
Я знаю, що ми використовуємо Mongo таким чином, щоб кеш - все насправді не пролетить, тому я шукаю способи інженерії системи, яка може пережити таке використання. Весь набір дані, ймовірно , буде великою частиною туберкульозу в протягом півроку , і продовжує рости.