我在一个带有LSI控制器的8磁盘RAIDarrays上运行linux 2.6.33.7内核上的postgres 8.4.5服务器。
大部分表格都在1GB左右或更less。
我知道XFS使用分配组(AG)来实现I / O并行。
我的第一个问题是,这是否意味着,如果两个表在同一个AG中,所有I / O请求都排队到他们两个,如果正在读取/写入?
如果是这样的话,我想我会尽可能将我的表格分配给我的分配组,对吗? 这不会确保多个查询不同表格的用户能够获得最佳性能吗?
千兆字节的分区大小是多less? 我通常将它除以4以确定XFS分配组的数量。 我遇到了我只有一个分配组的情况,并且在修复时遇到了一个错误,指出在文件修复过程中没有其他AG参考。 无论哪种方式,我认为一般规则是分区大小/ 4。 在针对多个分配组运行I / O时有一定程度的并行性。 但是我假设这个数字的回报是递减的,所以partitionize / 2和partitionize / 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...