
我正在 ubuntu 上設定一個專用的 postgresql 伺服器,使用 500GB RAID 1。
答案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] 足夠大以容納您的資料庫和事務日誌,以及一些成長空間。
如果這是一個生產設備,並且您預計會有大量資料庫活動,那麼您想要做的就是將其分離到一堆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
根據您的數據,如果您深入研究表分區,以避免在需要一小部分數據的情況下掃描巨大的表,將會很有趣。例如,我使用分區表來儲存日誌,因此我有一個名為的主表紀錄和每個月的表格稱為YYYYMM_日誌繼承自大師。然後我使用觸發器函數將每個日誌放在相應的分區表上。