I/O scheduling and CPU scheduling are really not very much related to one another, in terms of their influence on system performance. The CPU is
so-o-o much faster than everything else, it just needs to give fair-share scheduling to all the CPU-bound processes while responding quickly enough to I/O interrupts. The fact that you're using
nice is, well, a nice thing to do ... helps it keep its, well, priorities straight.
(Actually, I didn't write that as a pun... I just happened a-pun it.)
Anyhow ...
You probably want to expand the system above 600MB if you can, because this will give you lots of buffer-space. That's good.
It sounds to me like you might be
saturating your I/O system. It might be time for another disk-interface card. (The onboard I/O interfaces are not designed for raw speed.) A "smart" card that knows how to do its own buffering and such is also a good thing. These cards are not particularly expensive.
Spread the information out across multiple DASD .. err, disk volumes
... on multiple channels that are fully equipped to operate simultaneously. FireWire, for instance, has more parallel-I/O capability than "good ol' EIDE."
Once the hardware can
do it, Linux can
schedule it.