Назад | Перейти на главную страницу

MongoDB на 128 МБ 32-битном VPS (плюс Tornado и Redis)

Мне любопытно, как mongodb будет работать в ограниченном vps. в частности, я разверну эту конфигурацию на 32-разрядном сервере ubuntu 9.04 с памятью 128 МБ (ОБНОВЛЕНИЕ: теперь я тоже рассматриваю 360 МБ).

все, кроме mongodb, похоже, занимают мало места. с точки зрения отображения памяти, я не знаю, как будет себя вести mongodb.

Я знаю, что использовать такую ​​конфигурацию на крошечном vps немного сложно, но сейчас это то, что я могу себе позволить. я ожидаю получить .. хм .. может быть ~50 15рпс. Я сделал домашнее задание, сделал много оптимизаций внешнего интерфейса, и yslow сказал, что оценка A 91 (набор правил V2) :-)

кто-нибудь желает поделиться опытом? например. насколько велик размер набора данных, когда монго достигает потолка, производительность, когда монго выполняет много операций ввода-вывода диска и т. д. спасибо.

ОБНОВЛЕНИЕ: это мой любимый проект. Я вернусь к вам, когда у меня будет следующее свободное время, чтобы сделать тот же httperf в vbox с точными спецификациями. Предложение, как сделать стресс-тестирование, приветствуется. Я новичок в таких вещах.

Я запускаю ~ выше конфигурации (+ супервизор + сценарий errorlogger -redis) в VirtualBox vm. Я загрузил 5000 документов, в результате чего размер данных составил ~ 60 МБ (db.mycollection.totalSize ()).

В этом тесте / article выполняет два запроса для разбиения на страницы и 15 запросов для получения реляционной документации.

$httperf --hog  --num-conn 1000 --timeout 5 --server peduli.vps --uri /articles

# 360Mb box
Connection rate: 7.6 conn/s (131.4 ms/conn, <=1 concurrent connections)
Connection time [ms]: min 118.7 avg 131.4 max 300.0 median 128.5 stddev 12.2
Reply rate [replies/s]: min 6.8 avg 7.6 max 8.0 stddev 0.3 (26 samples)
Reply time [ms]: response 128.8 transfer 2.2

# 128Mb box
Reply rate [replies/s]: min 4.2 avg 6.3 max 7.2 stddev 0.7 (31 samples)
Reply time [ms]: response 154.5 transfer 4.2

$httperf --hog  --num-conn 100 --ra 10 --timeout 5 --server peduli.vps --uri /articles
Connection rate: 7.8 conn/s (127.9 ms/conn, <=34 concurrent connections)
Connection time [ms]: min 181.4 avg 2267.7 max 4889.5 median 2421.5 stddev 1209.6

Это снимок `` верха '' внутри 128-мегабайтного бокса 'vps'

Mem:    121528k total,   117532k used,     3996k free,     2732k buffers
Swap:   409616k total,     8244k used,   401372k free,    56904k cached

Мой вывод? я не знаю, нужно сравнить конфиг с mongodb, замененным на mysql .. возможно, достаточно хорошо?

Да, не думаю, что это сработает. MongoDB, который у меня запущен на данный момент, использует 560 МБ VIRT, 205 МБ RES. Я не знаю, как это соотносится с размером набора данных, но подозреваю, что у вас возникнут проблемы. Но есть только один способ узнать наверняка - попробовать и убедиться. Если вы не можете обновить свой VPS (насколько дешево вы получаете VPS на 128 МБ, если вы не можете позволить себе Linode на 360 МБ?), Попробуйте его, а если это не сработает, разверните MongoDB и используйте что-нибудь еще.

вы знаете, что mongodb использует mmap и просто выделяет весь барана, на котором он получает свои липкие пальцы ...

Предполагая, что 128 МБ 32-бит, помните, что вы ограничены 1,8 ГБ данных.