Я работаю над небольшим исследовательским проектом, который в настоящее время работает как экземпляр на ec2, и надеюсь выяснить, иду ли я по правильному пути. Мы, как и тысяча других людей, используем некоторые из потоковых каналов твиттера, чтобы собрать некоторые данные, чтобы повеселиться, и у моей базы данных, похоже, возникают проблемы с отслеживанием, а запросы занимают, что кажется, очень долгое время. Я не администратор базы данных по профессии, поэтому я просто добавлю сюда некоторую информацию и при необходимости добавлю еще.
Системные характеристики:
ec2 xl, 15 гигов барана
ebs: 4 диска по 100 гб, raid 0.
В потоке, который мы получаем, мы наблюдаем около 10 тысяч вставок в минуту.
3 основных таблицы, с пользователями, которых мы отслеживаем, где-то около 26 миллионов строк.
Не слишком ли много вставок на этом железе, чтобы требовать от ebs? Стоит ли взглянуть на некоторые вещи с меньшими накладными расходами, например на mongodb?
Ссылка @Gnanam указывает на некоторые хорошие советы, в частности это описание рабочей установки. Я не вижу причин избегать использования EBS, но обращайтесь с томом EBS как с одним жестким диском на реальном сервере: подвержен сбоям. Таким образом, вам понадобится уровень RAID с хорошей устойчивостью к сбоям, поэтому не RAID 0. И, учитывая ваши требования, вам нужен уровень RAID, который также будет быстрым при записи. Так что лучше всего начать с RAID 10 на 6-10 томах.
Что касается фактической производительности, она будет зависеть от ваших требований к индексации, а также от размера и типа данных, которые вы вставляете. Отличительной особенностью AWS является то, что узнать, как определенная конфигурация будет работать, относительно дешево. Итак, что вам нужно сделать, так это придумать некоторые образцы данных и способ имитации входящего канала, который вы пытаетесь обработать (скрипт, который вставляет записи по одной за раз и записывает оператор журнала с меткой времени каждые X количество строк, например). Вероятно, это нормально, если образцы данных будут повторяться с течением времени для ваших целей, но убедитесь, что ваш скрипт может работать не менее часа.
Теперь запустите этот сценарий для базы данных postgresql, настроенной в различных конфигурациях EBS, используя моментальные снимки или новую версию Amazon. Образование облаков сервис для создания некоторых надежно воспроизводимых отправных точек и измерения изменений производительности по мере изменения конфигурации (что также будет важно со временем). Вы можете добавить конфигурации с одним томом и RAID5 для сравнения.
Это может быть полезно для вас с точки зрения производительности PostgreSQL в инфраструктуре Amazon EC2 / EBS: Производительность Postgresql на EC2 / EBS