Re: Hardware advice - Mailing list pgsql-performance

From Sven Geisler
Subject Re: Hardware advice
Date
Msg-id 45754277.5090407@aeccom.com
Whole thread Raw
In response to Hardware advice  ("Alexandru Coseru" <alexandru.coseru@totaltelecom.ro>)
List pgsql-performance
Hi Alexandru,

Alexandru Coseru schrieb:
> [...]
> Question 1:
>    The RAID layout should be:
>            a)  2 hdd in raid 1 for system and pg_xlog  and 6 hdd in
> raid10 for data ?
>            b)  8 hdd in raid10  for all ?
>            c)  2 hdd in raid1 for system  , 2 hdd in raid1 for pg_xlog ,
> 4 hdd in raid10 for data ?
>    Obs: I'm going for setup a)  , but i want to hear your thoughts as well.

This depends on you data size. I think, option a and c are good.
The potential bottleneck may the RAID 1 for pg_xlog if you have huge
amount of updates and insert.
What is about another setup

4 hdd in RAID 10 for System and pg_xlog - System partitions are normally
not in heavy use and pg_xlog should be fast for writing.
4 hdd in RAID 10 for data.

>
>
> Question 2:  (Don't want to start a flame here..... but here is goes)
>        What filesystem should i run for data ?      ext3 or xfs ?
>        The tables have ~ 15.000 rel_pages each.  The biggest table has
> now over 30.000 pages.

We have a database running with 60,000+ tables. The tables size is
between a few kByte for the small tables and up to 30 GB for the largest
one. We had no issue with ext3 in the past.

>
> Question 3:
>        The block size in postgresql is 8kb.      The strip size in the
> raid ctrl is 64k.
>         Should i increase the pgsql block size to 16 or 32 or even 64k ?

You should keep in mind that the file system has also a block size. Ext3
has as maximum 4k.
I would set up the partitions aligned to the stripe size to prevent
unaligned reads. I guess, you can imagine that a larger block size of
postgresql may also end up in unaligned reads because the file system
has a smaller block size.

RAID Volume and File system set up
1. Make all partitions aligned to the RAID strip size.
   The first partition should be start at 128 kByte.
   You can do this with fdisk. after you created the partition switch
   to the expert mode (type x) and modify the begin of the partition
   (type b). You should change this value to 128 (default is 63).
   All other partition should also start on a multiple of 128 kByte.

2. Give the file system a hint that you work with larger block sizes.
   Ext3: mke2fs -b 4096 -j -R stride=2 /dev/sda1 -L LABEL
   I made a I/O test with PostgreSQL on a RAID system with stripe size
   of 64kByte and block size of 8 kByte in the RAID system.
   Stride=2 was the best value.


PS: You should have a second XEON in your budget plan.

Sven.


pgsql-performance by date:

Previous
From: Anton
Date:
Subject: Re: JOIN work somehow strange on simple query
Next
From: "Mark Lonsdale"
Date:
Subject: Re: Configuration settings for 32GB RAM server