1

Тема: Ненажерлива MongoDB, чи що мені показує монітор процесів?

Щойно поставив собі MongoDB, глянув на споживання ресурсів і спочатку жахнувся, бо htop показував багато процесів mongod, кожен із яких споживав більше 12% пам’яті. Але коли я зробив дерево процесів, то побачив, що щось не те із показниками, оскільки сума усіх процесів перевищує 100%.

Хто шарить в показниках споживання ресурсів лінукса, підкажіть, будь-ласка, як можна інтерпретувати споживання пам’яті на наступному скріні.

https://googledrive.com/host/0Bwk9euTxkxYUOFFUS29tSGJ4eXM/replace.org.ua/img/big-mongo.png

Подякували: 221VOLT1

2

Re: Ненажерлива MongoDB, чи що мені показує монітор процесів?

Тю, нічого не розумію: зразу після встановлення споживання було таке як на скріні, але це дивно, бо

* по-перше, mongodb працює повністю в холостому режимі і жодних запитів не обробляє
* по-друге, оце пройшло скільки?, мабуть з пів години, то процеси "заспокоїлись" і тепер кожен з них показує споживання по 1.1% кожен, із CPU аналогічно

дивно все це...

Подякували: 221VOLT1

3 Востаннє редагувалося koala (22.03.2016 10:55:11)

Re: Ненажерлива MongoDB, чи що мені показує монітор процесів?

MEM% показує співвідношення стовпчика RES (резидентна пам'ять) до загальної пам'яті. Проблема в тому, що майже всі цифри, насправді, трохи віртуальні - так, код і дані підвантажуються в оперативну пам'ять, але є доступними для всіх копій процесу, доки якась з них не спробує щось змінити, а тоді для того процеса, який це зробив, створюється копія сторінки із його змінами. І це не спільна пам'ять (стовпчик SHR - shared), а просто оптимізація. Такі деталі вираховувати складно, довго і не треба (бо в будь-який момент будь-яка з копій може запитати купу сторінок простим записом). Щоб дізнатися поточну доступну пам'ять, є free.
Хочете зекономити - запускайте менше копій (бачу, більшість просто висить в пам'яті без роботи) і (там же всього 500МБ, є своп і ненавантажений процесор, так?) поставте zRam.

Подякували: ktretyak, leofun01, HetmanNet, 221VOLT4

4

Re: Ненажерлива MongoDB, чи що мені показує монітор процесів?

koala написав:

Хочете зекономити - запускайте менше копій (бачу, більшість просто висить в пам'яті без роботи) і (там же всього 500МБ, є своп і ненавантажений процесор, так?) поставте zRam.

Я запустив стандартно

sudo service mongod start

Всього 500 МБ, але до того як я поставив собі mongodb та nodejs, то не те що вистачало, а просто майже не використовувались ресурси: процесор працював в середньому на розслабоні 1-2%, а коли тестував сайт з емуляцією 500 користувачів, що роблять до 10-15 запитів динаміки за секунду, то напружувався аж до 6-10% CPU, аналогічно із пам’яттю.

Своп на 4Гб, причому на SSD, тобто думаю що поки що далеко до потреби збільшувати ресурси.

Подякували: 221VOLT1

5 Востаннє редагувалося ktretyak (22.03.2016 12:53:18)

Re: Ненажерлива MongoDB, чи що мені показує монітор процесів?

Із Node.js менш радикальне, але аналогічне відбувається - зразу після запуску через демон, загальна зайнята пам’ять становить 70 МБ, і запускається зразу 8 процесів. Згодом, якщо навантаження немає, пам’ять звільняється до 10 МБ.

Подякували: 221VOLT1

6

Re: Ненажерлива MongoDB, чи що мені показує монітор процесів?

Наступний скрін має назву "...І поставив я собі mongodb, nodejs, причому поки що абсолютно без навантаження" (картина була б ще більш показовою, якщо б на графіках DO можна було проглядати використання пам’яті)
https://googledrive.com/host/0Bwk9euTxkxYUOFFUS29tSGJ4eXM/replace.org.ua/img/do-added-mongo-node.png

7

Re: Ненажерлива MongoDB, чи що мені показує монітор процесів?

ktretyak написав:

Із Node.js менш радикальне, але аналогічне відбувається - зразу після запуску через демон, загальна зайнята пам’ять становить 70 МБ, і запускається зразу 8 процесів. Згодом, якщо навантаження немає, пам’ять звільняється до 10 МБ.

JIT компіляція жеж, а через самозмінюваний код (конструкцію eval) компілер не вимикається.