My production box is running FC6, is a dual opteron, 1.6ghz, with 3GB of ram and a terabyte of striped and mirrored storage, spread across 4 sata drives, and I have two usb drives as well as a bunch of usb devices attached. This machine is also using the wonderful RME-audio multiface + a 8 track presonus digimax FS - giving me 16 tracks of very clean 44 or 48 khz audio, or 12 tracks of 96. It has a cheezy - but rock stable - 19 dollar matrox G450 card in it.
I started off with a gigabyte of ram, and in the early days of Linux RT (prior to about 2.6.17-rt8) the dual processor code was very unstable. Now that I use ingo molnar’s yum repository for FC6 and we’re up around 2.6.20-rt8 - the box has been quite stable, with only the occasional kernel hiccough. I also bit the bullet and added 2GB more ram recently.
Advantages over my laptop: capable of running vastly more programs at once with no effect on the recording quality. Mixdowns seem to go faster. Everything is much better. I think my next machine will have 8GB of ram so my sampler can store everything in ram. I worry about the possible effects on the PCI bus mapping this will cause - and look forward to fixing them. I worry that the PCI bus will be obsolete before rme gets around to putting out a PCIe card for the multiface, too.
I recompiled linuxsampler to buffer far more data and allow twice the voices (128). Running with a low period size still causes some xruns but 256 samples/period at 96khz works well.
I can typically record 12 tracks of 96khz data at once, but if I do overdubs, the upper limit seems to be around 10, before I have to bounce a mix of 3-4 tracks down to 1 (and then overdub). CPU isn’t the problem here, it’s disk.
Most of my issues with the higher resolution seem to crop up with disk I/O, particularlly in fast forwarding or reversing audio for lots of tracks. As a result I experimented a bit with striping and mirroring. Stripes of various sizes seemed to do little good, and mirroring worked as good or better than striping. Looking at the disk I/O, I seem to peak at about 21MB/sec of disk I/O - get as high as 30MB/sec - and then this machine hits a wall. Judging from some benchmarks I’ve seen, perhaps it’s because command queuing is not supported on this sata controller. Some tests with a UDMA drive show it outperforming the 4 disk sata stripe! Or, perhaps, I’m saturating a goodly part of the PCI bus. Either way, a more modern machine would probably do better on disk I/O than mine.
(if you have a big project that does lots of disk I/O I’d love to know what iostat 10 100 reports for your typical blocks/sec)
Although 96khz sounded great, I’m now down to using that just for environmental recordings, and editing the older stuff. 44.1 - well, the sky seems to be the limit for channels, plugins all work better than at 96k, and I’ve yet to have to bounce tracks on it, but I suppose that day will come.
This machine is also 3 years old. For comparison, it takes about 20 minutes to compile ardour on it, when a modern core duo can do the same build in under 7 minutes.
I have occasionally run jackdmp on the machine, but I don’t think my graph(s) are typically parallelized enough to see much difference in the overall performance.
After doing a ton of oprofiling, I got ardour up to well over 120 simultaneous channels and quite a few plugins - those patches are in rc1 and one more went into post rc2 svn. I look forward to wringing even more performance out of the latest and greatest hardware if I could just convince Intel or AMD to send me a quad core…