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

Хороший раздел для сервера Postgresql

Я настраиваю выделенный сервер postgresql на ubuntu, используя 500 ГБ RAID 1. Мне интересно, может ли кто-нибудь поделиться простой, но эффективной схемой разделения, которую я могу использовать, поскольку я новичок во всем этом.

Вы не получите особого выигрыша в производительности от разделения с помощью одного большого RAID (хотя вы избежите серьезных головных болей из-за / заполнения).

Как правило, я бы просто использовал настройки ОС по умолчанию, если вы действительно не хотите самостоятельно определять размеры, и просто убедитесь, что у вас есть кусок пространства хорошего размера, на котором вы собираетесь создать каталог PGDATA. Приведенные ниже предложения по разделению ОС - это то, что я использую в системах FreeBSD, вероятно, это нормально и для Ubuntu.

 /                    1GB (or larger)
 [SWAP]               2GB or 2*RAM Size
 /var                 10GB
 /usr                 10GB
 /usr/local           15GB
 /tmp                 2GB
 /home                10GB ("Big enough for home directories")
 -------------------------------------------------------------
 (OS Total)           50 GB
 [PGDATA]             Postgres data directory ("The rest")

(Ubuntu может не использовать / usr / local, в противном случае вы можете сложить некоторые из них в / usr)


Re: Разбиение на разделы, специфичное для Postgres, если вы делаете это на одном RAID-1, просто сделайте [PGDATA] достаточно большим для хранения вашей БД и журналов транзакций, а также некоторого пространства для роста.

Если это производственная коробка, и вы ожидаете большой активности БД, вам нужно разделить ее на группу RAID-1, чтобы разделить активность диска (сверхвысокий объем, вы можете даже подумать о разделении его между контроллерами. ).

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

[PGDATA]               5-10GB
[PGDATA]/pg_xlog       5-10GB (More if you expect lots of transaction logs)
[PGDATA]/base          Big enough for your database
[PGDATA]/[Tablespace]  Optional - Separate out "high-traffic" table spaces
[PGDATA]/xlog_archive  Big enough for archived transaction logs & dumps

У меня есть сервер postgresql с интересной активностью между 600-1000 транзакций в секунду, и мое разбиение на разделы выглядит примерно так:

/      - 10GB
swap   - 15GB (I have 8GB RAM)
/var   - 20GB
/home  - 60GB (don't ask why, but I think 60gb is too much for home)
pgdata - 100 GB

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