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

Повышение производительности Postgresql

У меня такая настройка:

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

Первый экземпляр (R1) используется приложением, которое выполняет повседневные задачи общего назначения для определенного клиента (у этого экземпляра есть разрешения на чтение / запись).

Экземпляр два (R2), используемый инструментом BI (Business Intelligence), который генерирует большие отчеты, интеллектуальный анализ данных и будущие ссылки на данные (этот экземпляр имеет разрешения только на чтение). Это потребовало большой нагрузки на сервер и потребления ЦП / памяти (на основе регулярного мониторинга).

Сервер, на котором работает инструмент BI, также имеет довольно приличные характеристики и выделил 12 ГБ памяти, поскольку мы думали, что узкое место было именно здесь.

Несмотря на то, что мы выделяем 12 ГБ памяти для BI-сервера, R2, похоже, не хватает производительности.

В нашей базе данных более 100 таблиц, а первичные ключи основаны на UUID. Итак, мой вопрос: как лучше всего оптимизировать базу данных? Повысит ли индексирование производительность?

Или какие есть лучшие советы или инструменты по настройке ..

База данных Postgresql версии 9.1

Повысит ли индексирование производительность?

У вас сейчас нет индексов (кроме первичных ключей)? Если нет, то это одно место для начала, хотя вам нужно понимать свои запросы, чтобы определить, где индексы принесут пользу.

Кроме того, вам следует взглянуть на postgresql.conf, так как там можно многое сделать - значения по умолчанию очень консервативны.

Также стоит обратить внимание на режим обслуживания. Если это более старая версия PostgreSQL, возможно, она не очищается автоматически.

Использовать pgtune инструмент из pgfoundry. https://github.com/gregs1104/pgtune

pgtune возьмет файл postgresql.conf по умолчанию, проверит оборудование и предложит значения конфигурации.