Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 24 Oct 2013 10:27:05 -0700
From:      Freddie Cash <fjwcash@gmail.com>
To:        FreeBSD Filesystems <freebsd-fs@freebsd.org>
Subject:   Re: ZFS-FreeBSD + postgresql performance
Message-ID:  <CAOjFWZ6iUV70dkmeWJOANzw2XXP_gu_Wg%2BaKgr5pK4dhcfjk5g@mail.gmail.com>
In-Reply-To: <52691558.5060306@digsys.bg>
References:  <20131023162545.GA19794@pcjas.obspm.fr> <op.w5f9f0q28527sy@212-182-167-131.ip.telfort.nl> <CALfReydxpkMjGNYL_9LWpFZxvJfnkTy%2BnP3auoJVqO1N-93UkA@mail.gmail.com> <52691558.5060306@digsys.bg>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Oct 24, 2013 at 5:40 AM, Daniel Kalchev <daniel@digsys.bg> wrote:

>
> On 24.10.13 15:25, krad wrote:
>
>> If your dbs are doing lots of writes, consider implementing raid 10 on t=
he
>>
> pools level as its much faster for writes.
>>
>
> By all means, if you will run PostgreSQL on the zpool avoid any other
> redundancy than MIRROR. You will be better having one separate MIRROR (or
> multiple mirror vdevs) pool for the DB and another for other data, any ti=
me.
>
>  As you have a lots of dbs, and potentially a lot of spindles, you could
>> mix
>> =E2=80=8B a=E2=80=8B
>> nd match the above ideas depending on the dbs profile. Have say a raidz6
>> =E2=80=8B =E2=80=8B
>> pool for you lower traffic mostly read dbs, a raid 10 pool for your heav=
y
>> =E2=80=8B =E2=80=8B
>> write dbs, and a dedicated pool for you low latency db
>>
>
> I have actually experimented with this, in using 15k drives for the "fast=
"
> databases and 10k drives for the "slow" databases. At the end, I discover=
ed
> it was better idea to combine all the drives in a single zpool with
> multiple vdevs, than to do such separation -- as multiple vdevs are alway=
s
> going to provide you with more performance.
>

=E2=80=8BThere was a discussion recently on the zfs-discuss mailing list co=
vering
this.  There were no hard numbers thrown around, but the general consensus
is that a single large pool per system, comprised of many vdevs, will
almost always give better performance than a system with multiple separate
pools.  There are, of course, exceptions, but in general, you want to limit
the number of individual pools per system.

For example, a pool for the OS running on some small HDs; a pool of mirror
vdevs using fast disk for things needed a lot of performance; and a pool of
large/slow disks in raidz2/3 for things that need a lot of storage.
=E2=80=8B
=E2=80=8BOr, just go with a lot of raidz2/3 vdevs with a bunch of L2ARC in =
front of
it.  Performance might be good enough for your needs.

Or, just go with a lot of mirror vdevs if you need the raw throughput
(maybe 3-way mirrors if you're paranoid).

--=20
Freddie Cash
fjwcash@gmail.com



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAOjFWZ6iUV70dkmeWJOANzw2XXP_gu_Wg%2BaKgr5pK4dhcfjk5g>