MySQL performance concern

Rumen Telbizov telbizov at gmail.com
Sun Oct 3 22:44:11 UTC 2010


Thank you everyone for your comments!

On Sun, Oct 3, 2010 at 11:19 AM, Ivan Voras <ivoras at freebsd.org> wrote:

> On 10/02/10 22:18, Rumen Telbizov wrote:
> >   pool: tank
> > config:
> >
> >         NAME           STATE     READ WRITE CKSUM
> >         tank           ONLINE       0     0     0
> >           mirror       ONLINE       0     0     0
> >             gpt/tank0  ONLINE       0     0     0
> >             gpt/tank1  ONLINE       0     0     0
> >           mirror       ONLINE       0     0     0
> >             gpt/tank2  ONLINE       0     0     0
> >             gpt/tank3  ONLINE       0     0     0
> >         logs           ONLINE       0     0     0
> >           mirror       ONLINE       0     0     0
> >             gpt/zil0   ONLINE       0     0     0
> >             gpt/zil1   ONLINE       0     0     0
> >         cache
> >           gpt/l2arc0   ONLINE       0     0     0
> >           gpt/l2arc1   ONLINE       0     0     0
> >
> >   pool: zroot
> > config:
> >
> >         NAME            STATE     READ WRITE CKSUM
> >         zroot           ONLINE       0     0     0
> >           mirror        ONLINE       0     0     0
> >             gpt/zroot0  ONLINE       0     0     0
> >             gpt/zroot1  ONLINE       0     0     0
> >
> > zroot is a couple of small partitions from two of the same SAS disks. zil
> > and l2arc are 8 and 22G partitions from 32G SSDs
>
> This looks a bit overly complex (your recovery procedure if some of the
> drives goes bad will include re-creating the partition layout), but it
> probably shouldn't affect performance. Just to check - mapped to
> physical drives this looks like this: ("gpt/" prefix omitted for brevity):
>
>  * tank0..tank3 : on SAS drives
>  * zroot0, zroot1 : on some of the same SAS drives as above
>  * zil0, zil1 : on SSD drives
>  * l2arc0, l2arc1 : on the same SSD drives as above
>
> ARC and ZIL have some very different IO characteristics, I don't know if
> they would interfere with each other.
>
> Can you spend some time looking at the output of "gstat" while the
> database task is running and see if there's something odd? Like "%busy"
> column going near 100% for some of them? What IO bandwidth and ops/s are
> you getting?
>
> > I pretty much have no zfs tuning done since from what I've found there
> > shouldn't be any needed since I'm running 8.1 on a 64bit machine.
> > Let me know if you'd like me to experiment with any ...
> >
> > Some additional information:
> > # sysctl vm.kmem_size
> > vm.kmem_size: 5539958784
> > # sysctl vm.kmem_size_max
> > vm.kmem_size_max: 329853485875
> > # sysctl vfs.zfs.arc_max
> > vfs.zfs.arc_max: 4466216960
>
> I have done some digging myself and it seems that two settings have
> noticable impact on MySQL load:
>
> * zfs block size - you need to re-create all mysql files to change this;
> set to 8 KiB (or whatever MyISAM uses for block size)
> * reducing vfs.zfs.txg.timeout to about 5 seconds
>
> Are you using ZFS compression?
>
> See http://jp.planet.mysql.com/entry/?id=19489 for more ideas.
>
> Other than that, your CPUs are:
>
> New: 2 x Dual Core Xeon E5502 1.87Ghz
> Old: 2 x Xeon Quad E5410 @ 2.33GHz
>
> You can see here how different they are:
> http://en.wikipedia.org/wiki/List_of_Intel_Xeon_microprocessors
>
> Specifically, as you are using a single-threaded client, you *need* the
> additional GHz of the old server. You are quoting 30% CPU usage on the
> new server - I assume this is the "total" CPU as reported by utilities
> like "top", "iostat", "vmstat", etc - meaning that if the system has
> four CPU cores, one of then is 100% busy (meaning 25% of the total) and
> another is about 20% used.
>
> _______________________________________________
> freebsd-stable at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-stable
> To unsubscribe, send any mail to "freebsd-stable-unsubscribe at freebsd.org"
>



-- 
Rumen Telbizov
http://telbizov.com


More information about the freebsd-stable mailing list