>Hello,
>I have a couple of new ATA IDE drives, one per channel and I would
>like to optimize the partitioning (for speed).
>The drives are closely matched in performance and both have ~1gig free
>at the front.
>Would I see any performance gain if I split the distribution (Stampede
>linux) over, say, 30 small partitions, 15 per drive? eg:
a) If (for instance) partition /var gets hit a lot, and partition /usr
gets hit a lot, by putting them on separate disks, requests can be
simultaneously serviced.
The main way expanding to 15 (or 30) partitions would help you is if you
actually had 15 disks, and thus could "multitask" the drive controllers.
Chances are that there are only a couple of partitions that are worth
separating in this fashion.
Approach: Figure out which two partitions are accessed most, and make
sure they're on different drives.
Chances are that this only means moving around one partition, or two at
most.
b) Then there's striping, which sounds like it's what you're actually
thinking of.
In this case, there is a single partition that you would like to allow
to use both drives at once, pulling successive clusters from both
disks.
Here, you should figure out which single partition is accessed most, and
create two partitions (one on each disk) join them using MD, and put an
ext2fs onto the joined partition.
You could extend this to multiple partitions. Thus, if /var and /usr
get "hit a lot", you could put 4 partitions onto the two disks, and
have part of /var be on each disk, and part of /usr be on each disk.
Be aware that this substantially reduces reliability, because if either
disk dies, the partition dies.
Rule #1: Make sure / is *NOT* striped.
If either disk dies, and / is striped, then your system WILL NOT BOOT.
That is a very bad thing.
Rule #2: More usefully, make sure that you have a bootable system even
if all of the striped partitions get toasted.
Partitions that are so highly active that they are worth striping are
generally running some particular application. Things that are
typically so I/O intense include:
- News (INN/CNEWS)
- Database applications. In expensive commercial realms, things like
Oracle/Sybase/Informix commonly use striping. More likely, under Linux,
you are running PostgreSQL, mySQL, SOLID, Adabas-D, or something else
listed at <http://www.hex.net/~cbbrowne/rdbms.html>.
If you haven't done enough benchmarking or other testing to establish
that striping a particular partition will result in significant
performance improvements, then chances are that it will have negligible
effects on performance, and merely make your system more fragile,
substantially reducing your system's MTBF.
In any case, if you can't establish pretty clearly that the change will
significantly improve performance (your "tangible benefit"), don't
bother optimizing it.
Michael Jackson's First Rule of Software Optimization: "Don't Do It."
Michael Jackson's Second Rule of Software Optimization: "Don't Do It...
Yet..."
(No joke intended here; I am not referring to "MJ of the gloved hand,"
but rather of MJ of Computer Science/Software Engineering fame...)
--
"The surest sign that intelligent life exists elsewhere in the universe
is that it has never tried to contact us." -- Calvin and Hobbes