Harddisks considerations for better MySQL performance

Hi all,

currently we’re planning to purchase new servers for our website. A rough overview of our mysql-scenario:

665 Mio rows, 25G data, and 55G index files.

Average of 400 queries per seconds, 15% inserts, 9% updates, 1% deletes, 75% selects (on one slave, we’re running 4 slaves overall).

We’ve choosen DELL PowerEdge 2950 machines, 2x dual core Intels (Woodcrest) with 8 GB RAM.

From a performance point of view: What Do you think would be better?

a) 2 x 146 GB SAS 15krpm disks as RAID 1

b) 4 x 73 GB SAS 15krpm disks, where we would put the index files on one partition, and the data files on the other? Would we gain a performance increase from that ? I’ve read something about that in the docs, but didn’t saw any benchmarkings about that ?

c) 5 x 73 GB SAS disks on a RAID 5 ( more spindles) ?

What do you think?

And what is your opinion about the processors? Should we stick to a one-processor server (e.g. instead of 2 x dual core xeon 2.3 GHz -> 1 x dual core xeon 1.6), and invest the money to more RAM? Would that be a better investment?



Yes Poweredge 2950 are pretty good. Much better than 2850 both from CPU performance and from RAID controller performance standpoint.

First I see you’re getting it only with 8GB of RAM - at my opinion 16GB is sweetspot for this system - no overly expensive as larger memory systems.

In your case with data size relatively close to database size Memory is very likely to be best investment.

Regarding 1/2 CPUs it depens on how much CPU is the bottleneck in your system. If it is IO bound reducing IO will be most important for optimal performance.

Regarding disks. Of course 4-5 disks will be faster than 2 and 15K disks are faster than 10K. How much I can’t tell as it really depends on your workload. If IO is going to be very intense with reads being most of the load 5 drives RAID5 will be probably fastest (for reads). RAID10 is more secure and faster for writes.

Raid 10 is the best regarding redundancy and speed for reads and writes. And as peter suggested, id invest in 16gb of ram you’ll be like your choice in the end )


thanks for your advice. I recently purchased 2 servers with 8 GB, and now I’m planning to purchase another 8 GB for each server, so that in the end I’ll have 16GB of Ram.

@Peter: Today I’ve saw your article about the 4GB limit for key_buffer_size for MyIsam tables.
( http://www.mysqlperformanceblog.com/2007/02/14/beware-key_bu ffer_size-larger-than-4g-does-not-work/)

Would you still recommend using 16GB on each db server, altough almost all tables are MyIsam (~ 60 GB) ? Would there still be any benefit for mysql?

Would the operating system be able to use the remaining ( say around 10GB) RAM for caching the data-files?



RAM is good anyway. Having memory to cache data files is great.

also as I mentioned in the comment you can have multiple key caches if you need to use more memory.