Linux

嘗試為 Linux 上的 postgresql 伺服器確定正確的 XFS 分配組數

  • November 16, 2020

我在帶有 LSI 控制器的 8 磁碟 RAID 陣列上的 linux 2.6.33.7 核心上執行 PostgreSQL 8.4.5 伺服器。

大多數表大約為 1GB 或更少。

我知道 XFS 使用分配組 (AG) 來實現 I/O 並行性。

我的第一個問題是,這是否意味著如果兩個表在同一個 AG 中,那麼所有 I/O 請求都排隊到它們兩個,如果其中一個正在被讀取/寫入?

如果是這樣,我假設我希望將我的表分佈在盡可能多的分配組中,對嗎?這不能確保查詢不同表的多個使用者獲得最佳性能嗎?

以千兆字節為單位的分區大小是多少?我通常將它除以 4 以確定 XFS 分配組的數量。我遇到過只有一個分配組的情況,並且在修復時遇到問題,錯誤表明在文件修復過程中沒有另一個 AG 可參考。無論哪種方式,我認為一般規則是分區大小/4。針對多個分配組執行 I/O 時存在一定程度的並行性。但我假設這個數字的回報會遞減,所以 partitionsize/2 和 partitionsize/4 之間的任何地方都是合理的。

因此,對於 /dev/sdb1 上名為“partitionname”的 200GB 分區,我可能會使用以下 mkfs.xfs 命令序列。

mkfs.xfs -f -L /partitionname -d agcount=50 -l size=128m,version=2 /dev/sdb1

另見:http ://en.wikipedia.org/wiki/XFS#Allocation_groups

http://everything2.com/index.pl?node_id=1479435指出:

At least one allocation group is needed per 4 gigs of space...

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