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>