Рекомендации по настройке для установки PostgreSQL - PullRequest
2 голосов
/ 30 июня 2009

У меня есть машина с Windows Server 2003, которую я буду использовать в качестве сервера базы данных Postgres, машина представляет собой двухъядерный процессор 3.0 ГГц Xeon с 4 ГБ памяти ECC и 4 x 120 ГБ SAS-накопителя 10 К / мин, все лишены.

Я прочитал, что установка Postgres по умолчанию настроена для корректной работы на 486 с 32 МБ ОЗУ, и я прочитал несколько веб-страниц об оптимизации конфигурации, но надеялся на что-то более конкретное из моих писем Stackoverflow.

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

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

Ответы [ 2 ]

5 голосов
/ 01 июля 2009
  • 4 * лишенный диск был плохой идеей & mdash; если какой-либо из этих дисков выйдет из строя, вы потеряете все данные, и даже диски SAS иногда выйдут из строя & mdash; с 4 драйверами это в 4 раза чаще, чем с 1 приводом; вам нужно перейти на RAID 1 + 0 .

  • Используйте последнюю версию Postgres, 8.3.7 сейчас; есть много улучшений производительности в каждой основной версии.

  • Установите для параметра shared_buffers в postgresql.conf примерно 1/4 вашей памяти.

  • Установите effective_cache_size примерно на 1/2 вашей памяти.

  • Установите checkpoint_segments примерно до 32 (контрольная точка каждые 512 МБ) и checkpoint_completion_target до примерно 0,8.

  • Установите default_statistics_target на 100.

  • Миграция на Enterprise Linux или FreeBSD: Postgres намного лучше работает на системах типа Unix & mdash; Поддержка Windows является недавним дополнением, не очень зрелым.

Вы можете прочитать больше на этой странице: Настройка сервера PostgreSQL & mdash; PostgreSQL Wiki

0 голосов
/ 30 июня 2009

Мой опыт показывает, что (в определенных пределах) аппаратное обеспечение обычно является наименее важным фактором производительности базы данных.

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

Однако отсутствующий индекс в важном поиске или плохо написанный рекурсивный триггер могут легко изменить время вашего ответа на 1000% или 10000% или более.

Не зная точно структуру вашей таблицы и количество строк, я думаю, что кто-нибудь посоветует, что ваше оборудование выглядит достаточно. Это только ваша структура базы данных, которая убьет вас. :)

UPDATE:

Не зная конкретных запросов и деталей вашего индекса, мы ничего не можем сделать. И вообще, даже зная запросы, зачастую очень трудно оптимизировать без фактической установки и выполнения запросов с реалистичными наборами данных.

Учитывая стоимость сервера и стоимость вашего времени, я думаю, вам нужно вложить тридцать долларов в книгу. Затем установите базу данных с тестовыми данными, выполните запросы и посмотрите, что работает хорошо, а что плохо. Исправьте, промойте и повторите.

Обе эти книги относятся к SQL Server и имеют высокие оценки:

http://www.amazon.com/Inside-Microsoft%C2%AE-SQL-Server-2005/dp/0735621969/ref=sr_1_1

http://www.amazon.com/Server-Performance-Tuning-Distilled-Second/dp/B001GAQ53E/ref=sr_1_5

...