Linux

Postgresql 伺服器的良好分區

  • July 6, 2012

我正在 ubuntu 上設置一個專用的 postgresql 伺服器,使用 500GB 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 中)


回复:特定於 Postgres 的分區,如果您在單個 RAID-1 上執行此操作,只需

$$ PGDATA $$大到足以容納您的數據庫和事務日誌,以及一些增長空間。 如果這是一個生產機器,並且您期望有很多 DB 活動,那麼您想要做的就是將其分離到一堆 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

引用自:https://serverfault.com/questions/107246