Кластер из 10 Atom D2700 vs один i7-2600?

Есть огромная БД на MongoDB, из-за большего количества записей время выборки данных не устраивает. Ясно, что нужно делать шардинг. Сейчас это работает на процессоре i7-2600, а шардинг планируется сделать на Atom D2700 (из-за стоимости).


Посмотрел вот такие тесты www.cpubenchmark.net/cpu.php?cpu=Intel+Atom+D2700+... разница в тестах (я пока не разбирался что это за тесты) примерно 12 раз.


Так будет смысл делать шардинг, чтобы получить существенный выигрыш при выборке записей, если заменить один i7 на 10 атомов?


Получается 40 ядер (с учетом HT) и ram 40 Гб, против 8 ядер (с учетом HT) и ram 32 Гб.


Да, выборки идут параллельно, и чем их больше будет параллельно, тем лучше для выигрыша в производительности. Но конечно и время одной выборки может значительно сократиться, если будет на Atom D2700 делаться… Т.е. 100 выборок на i7 без шардинга или делаем 100 выборок на Atom D2700 с шардингом. Что в итоге отработает быстрее и будет ли это в разы быстрее.
  • Вопрос задан
  • 3799 просмотров
Пригласить эксперта
Ответы на вопрос 6
Я не с ответом, а с просьбой — если все же будете делать, напишите (лучше, конечно, пост) о результатах. Тема уж больно интересная, сам в раздумьях.
Ответ написан
Комментировать
@bdmalex
Что в итоге отработает быстрее и будет ли это в разы быстрее.
На мой взгляд ни одна теоретическая выкладка не сможет для вашей индивидуальной задачи сказать, что лучше. Только запуск и тестирование покажет правду…
Ответ написан
Комментировать
opium
@opium
Просто люблю качественно работать
А покажите ваш топ с сервера.
Не знаю чего люди странные советы дают без топа.
Не хватает именно проца? Сколько весят базы данных в монге?
На сервере монга одна или ещё что то крутить?
Ответ написан
Комментировать
karellen
@karellen
Минусы атомов:
1. Оверхед на систему. На каждой из 10 машин с 4 ГБ памяти, скажем, 500 МБ будет скушано разными системными вещами. 3.5 ГБ памяти для монго даже с небольшой базой — маловато будет.
2. Оверхед на сеть. Хороший гигабитный контроллер прилично нагрузит слабый атом именно сетевой подсистемой.
3. Репликация и бэкапы. Еще 10 атомов? Реплицироваться с шарденой системы на один большой, но тупой сервер, вроде бы, нельзя пока что.
4. У 10 атомов в 10 раз больше шанс чему-то поломаться.
Можно и еще что-то придумать, наверное. Хотя 3 и 4 относятся к любой многосерверной конфигурации, и в реально больших системах с ними просто приходится мириться.

Чисто умозрительно можно посоветовать:
1. Поставить SSD в RAID1 по 250-500 ГБ и базу на них разместить. Читаться будет почти как из памяти.
2. Взять не 2600, а 3930K и добить до 64 ГБ памяти. Реплицировать куда-нибудь послабее.
Ответ написан
demark
@demark
Проясните пожалуйста такой момент: в вопросе вы пишите, что не устраивает время выборки данных, а в комментариях пишите, что все индексы в памяти. Но ведь индекс — это всего-лишь «указатель», в каком блоке на ЖД хранится данные… и считывание всё-равно происходит с ЖД, а это 5-10 ms.

Не думали попробовать хранить данные на SSD? — скорость рандомного доступа ~0.1 ms, что может быть на 2 порядка быстрее ЖД.
Ответ написан
Комментировать
okazymyrov
@okazymyrov
А БД лежит на одном диске или на нескольких? Т.е. я хочу сказать, что какая разница сколько будет у вас процессоров, если пропускная способность к БД не измениться. Соответственно производительность будет упираться лишь ширину канала до БД.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы