Re: SAN performance mystery

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 2006-06-15 at 16:50, Tim Allen wrote:
> We have a customer who are having performance problems. They have a 
> large (36G+) postgres 8.1.3 database installed on an 8-way opteron with 
> 8G RAM, attached to an EMC SAN via fibre-channel (I don't have details 
> of the EMC SAN model, or the type of fibre-channel card at the moment). 
> They're running RedHat ES3 (which means a 2.4.something Linux kernel).
> 
> They are unhappy about their query performance. We've been doing various 
> things to try to work out what we can do. One thing that has been 
> apparent is that autovacuum has not been able to keep the database 
> sufficiently tamed. A pg_dump/pg_restore cycle reduced the total 
> database size from 81G to 36G. Performing the restore took about 23 hours.

Do you have the ability to do any simple IO performance testing, like
with bonnie++ (the old bonnie is not really capable of properly testing
modern equipment, but bonnie++ will give you some idea of the throughput
of the SAN)  Or even just timing a dd write to the SAN?

> We tried restoring the pg_dump output to one of our machines, a 
> dual-core pentium D with a single SATA disk, no raid, I forget how much 
> RAM but definitely much less than 8G. The restore took five hours. So it 
> would seem that our machine, which on paper should be far less 
> impressive than the customer's box, does more than four times the I/O 
> performance.
> 
> To simplify greatly - single local SATA disk beats EMC SAN by factor of 
> four.
> 
> Is that expected performance, anyone? It doesn't sound right to me. Does 
> anyone have any clues about what might be going on? Buggy kernel 
> drivers? Buggy kernel, come to think of it? Does a SAN just not provide 
> adequate performance for a large database?

Yes, this is not uncommon.  It is very likely that your SATA disk is
lying about fsync.

What kind of backup are you using?  insert statements or copy
statements?  If insert statements, then the difference is quite
believable.  If copy statements, less so.

Next time, on their big server, see if you can try a restore with fsync
turned off and see if that makes the restore faster.  Note you should
turn fsync back on after the restore, as running without it is quite
dangerous should you suffer a power outage.

How are you mounting to the EMC SAN?  NFS, iSCSI? Other?


[Postgresql General]     [Postgresql PHP]     [PHP Users]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Yosemite]

  Powered by Linux