LINUX.ORG.RU
ФорумAdmin

Производительность mongodb в виртуалке

 , mongorestore, ,


0

1

Всем привет. Развернул монгу с более менее увесистыми базами(20-60Гб) на виртуалку(xen,pv). Работает раза в 2-3 медленнее, чем на большом железном сервере, что вобщем-то логично. Ресурсов достаточно, проц не убивается, памяти свободной много, диск в lvm-разделе. Конфиг практически дефолтный. Что можно было бы покрутить, с учетом того, что это виртуалка? В целом жду любых советов, монгу никогда до этого не тюнил.

Также интересно, что можно сделать, если база данных с коллекцией на 50Гб и индексами выкатывается часов 5-6? При этом постоянно забито на 100% одно ядро цпу и больше ничего.

★★★★★

Ответ на: комментарий от gh0stwizard

Отдай диск виртуалке, дурень! :) И забудь про lvm

мде? хочешь cказать, lvm мне тормозит io? это во-первых, во-вторых нет такой возможности.

autonomous ★★★★★
() автор топика
Ответ на: комментарий от autonomous

http://www.fclose.com/2260/xen-domus-io-performance-of-lvm-and-loopback-backe...

http://www.mysqlperformanceblog.com/2009/02/05/disaster-lvm-performance-in-sn...

В зависимости от конфигурации (RAID, no-RAID) проигрышь может быть до 30% просто от использования LVM. А когда ты это еще пропихиваешь в виртуалку, то проигрышь может достигать и 100%.

во-вторых нет такой возможности.

Тогда не ожидай чудес. Это не углубляясь в детали как ты производил бенч, каков процент read/write, а также каково покрытие коллекции. Для БД в 60ГБ тебе может хватит и 4ГБ ОЗУ, ибо покрытие менее чем на 4ГБ, либо все 60ГБ, чтобы покрыть вообще все. Почитай как работает монго и за счет чего у нее повышается/понижается перформанс.

gh0stwizard ★★★★★
()
Ответ на: комментарий от gh0stwizard

Про снапшоты всё и так понятно, про xen интересно. В 100% проигрышь слабо верится. Да и без lvm с виртуалками жить очень грустно.

Тогда не ожидай чудес.

Чудес я конечно не ождаю) Хочется понимания.

каков процент read/write

Почему-то у меня mongotop все пишет по 0ms, когда я, например, делаю тяжелый find.

Почитай как работает монго

Как раз ищу чего бы почитать, легкого на ночь :) Может знаешь какие-то хорошие линки, кроме документации?

autonomous ★★★★★
() автор топика
Ответ на: комментарий от autonomous

Почему-то у меня mongotop все пишет по 0ms, когда я, например, делаю тяжелый find.

Ты mongotop на нужную коллекцию направил? Ну и я бы больше доверял выводу mongostat особенно с инфой по fault pages.

Как раз ищу чего бы почитать, легкого на ночь :) Может знаешь какие-то хорошие линки, кроме документации?

Даже не знаю, что посоветовать. Ты ожидаешь статью о том как сделать все класно в стиле хабры? :)

Нет, таких линков не знаю. Первое что надо выяснить это то, где у тебя bottleneck.

gh0stwizard ★★★★★
()

Можно попробовать вместо полной виртуалки использовать контейнеры и отдать монге побольше памяти.

Еще можно попробовать на время заливки отключить журнал и увеличить период сброса данных на диск.

Vit ★★★★★
()

Попробуй kvm & virtio, а лучше контейнеры.

invokercd ★★★★
()

Нужно избавиться от чтения с диска монгой. Поэтому:

а. --cacheSize

б. sharding, чтоб на каждом шарде сторадж сайз умещался в оперативку.

P.S.

в. Забыл оперативки надо много. В целом для твоего случая (60Гб или это распакованное уже?) видится 4-5 шардов по 30 гигов памяти на каждый.

Ip0 ★★★★
()
Последнее исправление: Ip0 (всего исправлений: 1)
Ответ на: комментарий от Ip0

Спасибо за советы, в целом это проект для разработческой среды, поэтому супер производительности никто не ждет. Но в таком виде как сейчас, оно практически не юзабельно. Оперативки много нету, к сожалению. Вобщем поковыряюсь, делать много шардов тоже накладно получается.

autonomous ★★★★★
() автор топика
Ответ на: комментарий от autonomous

Виртуалка просто горизонтальная(нарезана на серваке)?

В любом случае, если памяти много нет, а памяти свободной много (такой вот каламбур) — это уже говорит о том, что mongod запущен с неоптимальными параметрами.

Хотя я сейчас, конечно, на вскидку могу путать специфику ванильной монги и tokumx.

Но bottleneck, все мы знаем, вычисляется легко.

db.serverStatus() и iostat в помощь.

Ip0 ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.