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

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

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

решение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

решение2

У меня есть сервер 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

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

Связанный контент