PostgreSQL 的文件系統調整
我想在 Ubuntu 14.04 工作站中安裝 PostgreSQL 9.x 版本,我正在尋找有關如何設置它的建議,以便
- 獲得良好的讀寫(50/50-平衡)性能
- 為整體正常系統使用保持良好的性能。
我的想法是在 SSD 驅動器中有兩個主要分區:
- $$ A $$具有作業系統推薦/預設設置的根系統 ("/") 的 ext4。
- $$ B $$用於 postgres 數據庫文件(“/var/lib/pgsql”)的 ext4,具有大塊大小(例如 1MB)和大預讀大小(多少?)和適當的標誌(哪個?)。
我不知道從一般系統中分離 postgres db 文件是否是個好主意。在這種情況下,任何關於
$$ B $$塊大小,預讀大小,文件系統標誌? 此外任何有用的提示?
由於您使用的是 SSD,因此最好禁用預讀。對於基於快閃記憶體的驅動器,尋軌時間不是問題。那是紡紗時代。正確對齊文件系統更為重要。
Postgresql 使用 8k 頁面,因此最佳性能通常伴隨著匹配的塊大小。
使用 XFS 使用 nobarrier 並使文件系統具有適當的 agcount 和日誌記錄。(https://serverfault.com/questions/222305/trying-to-determine-the-correct-number-of-xfs-allocation-groups-for-postgresql-s)。
您還可以從 ZFS 之類的壓縮文件系統中受益,尤其是當您的數據無法放入記憶體並且必須從磁碟讀取時。通常我會得到 2-4 倍的數據庫,這會導致從磁碟讀取的塊減少 2-4 倍,但這非常依賴於案例。如果您使用 ZFS,請使用 recordsize=8k,compression=lz4,primarycache=all 並檢查您是否需要為特定磁碟設置移位(如果它使用 512 字節或 4k 塊,則執行
cat /sys/block/[device]/queue/physical_block_size
)。http://zfsonlinux.org/faq.html#PerformanceConsideration
一般來說,就 postgres 功能而言,這應該不是問題。我假設您知道您必須為此目的停止 postgres 服務。將所有數據目錄複製到新位置並修改 postgresql.conf 中的 data_dir。我自己從來沒有做過。如果我是你,首先,會在測試 ENV 中進行一些負載測試。希望它會有所幫助
看看: https ://serverfault.com/questions/310350/postgresql-alternate-database-location