Баланс нагрузки / распределение для postgresql - PullRequest
2 голосов
/ 26 сентября 2011

Я приеду сюда, потратив немало времени, пытаясь понять, как реализовать балансировку нагрузки (распределение нагрузки на обработку базы данных) между серверами баз данных postgresql.

У меня есть система postgresql, которая привлекает около 100 транзакций в секунду, и это, вероятно, будет расти. Обратите внимание, что в моем случае так много обновлений + вставок + выборок. Поэтому любое решение для меня должно обслуживать все вставки / обновления и чтения.

  • Я планирую использовать plproxy, как это было предложено через db tools из skype на http://www.slideshare.net/adorepump/database-tools-by-skype.
  • Теперь я также слышу, что "потоковая репликация postgresql + горячий резерв" в postgres 9.0 может рассматриваться как

Может кто-нибудь предложить мне, если есть какое-либо простое (или сложное) решение для реализации для вышеупомянутого сценария?

1 Ответ

2 голосов
/ 26 сентября 2011

Если ваша база данных меньше 100 ГБ, вам следует сначала попытаться получить максимальную отдачу от одного компьютера.

Вам потребуется:

  • хороший контроллер хранения с большимикэш с резервным питанием от батареи;
  • куча быстрых дисков в RAID10;
  • другая куча дисков в RAID10 для WAL;
  • больше оперативной памяти, чем у вас есть данные;
  • столько быстрых процессорных ядер, сколько сможете.

С этим одним компьютером вы сможете сделать несколько тысяч скоростей в секунду.

Если этого будет недостаточно, яПопробуйте добавить второй сервер горячего резервирования с потоковой репликацией.Вы будете использовать его для выполнения длительных запросов отчетов только для чтения, резервного копирования и т. Д., Так что вашему главному серверу не придется делать это.

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

...