[Tfug] Seeking general storage and CPU/mobo advice for updating my work machine

John Gruenenfelder jetpackjohn at gmail.com
Thu Apr 2 04:45:40 MST 2015


Hi TFUG,

It is starting to look like I'll finally get to upgrade my work
server/workstation machine.  To give you some idea of its age, it contains an
Athlon 64 X2 4400+ CPU, and that chip is plugged into one of those lovely
early 64bit motherboards that would accept 4 GB of RAM but only allow access
to 3.5 GB.

As for the machine's purpose, it's mostly general purpose.  It is used by a
fairly small number of users, primarily myself and my boss followed by a few
who use it much less often.  As time has progressed and the machine has
"become" slower, it sees less data processing and more data storing.  We run
MATLAB and IDL on it occasionally, some data visualization (this is all
astronomy stuff, BTW), and when I'm actually in the office it's the machine I
do all of my dev work on.

The machine, in name, has existed now for, oh, maybe 16 or 17 years?  After
switching to Debian many years ago, the "upgrade" path has always been to
build the replacement and then copy over the contents of the old drives, OS,
data, and all.  Linux is so nice in that way where it can boot up on sometimes
radically different hardware after the transfer and chances are there will be
only minor issues, if any.  This new computer will be, if I'm counting right,
the 5th incarnation.


Anyway, it's time to reinvent the machine once more.  I can handle most of the
requirements and whatnot myself, but I would very much appreciate the group's
advice on a couple of topics:


1) Storage

Disk space is cheap and we have a lot of data so the new machine was always
going to have a lot of storage.  The present incarnation has roughly 900 GB
altogether, split among several logical volumes.  Actually, it has twice that,
but the volumes sit atop a (Linux kernel) RAID-1 array.

The problem: once you go SSD, you don't want to go back.  I was painfully
reminded of this today when a) I began a long overdue system update, b) the
bi-hourly snapshot system triggered, and c) my boss came in and wanted to
recreate for me an error he is having with a large program that uses a large
data file.  Boy did that take forever...

Obviously, using SSDs for all data would be insanely expensive, and given the
numerous years that will undoubtedly pass before another machine rebuild,
longevity is a concern.  I was thinking about the feasibility of using a SSD
for the OS and possibly /home (on this system, I keep /home relatively small
to "encourage" users to think about where they dump their bulk data).  It
would be trivial to move /var/log onto one of the giant magnetic drives, and
/tmp could be handled similarly or be mounted as a tmpfs.

On the other hand, this machine will be on 24/7 and will have *way* more than
the 3.5 GB of RAM the current machine does.  This means that the disk cache
will be very large and, given the expected workload, should remain in memory
for long periods of time.  After a short time, this should give most users
SSD-like I/O performance when running programs from /usr and using data
residing in /usr and /home.

Which way would you go and why?

Oh, and a related sub-topic... currently, the configuration is
root-on-LVM-on-RAID1 which has been working quite nicely for a number of
years.  Should I stick with RAID1 or move up the ladder?  At home on my
personal server I have root-on-LVM-on-LUKS_crypto-on-RAID5.  When I finally
get the money and wherewithal to upgrade my home server I'll switch it to
RAID6.  With ever larger drives and the desire to not lose 50% of the total
space to RAID1, should I move up to RAID6?  Provided, of course, that the
final configuration has a sufficient number of drives for the desired RAID
level.


2) Processor & motherboard

The only real requirement that has been passed down to me, other than a rough
upper limit on funds, is that the new machine should have strong parallel
processing capabilities.  Multiple cores is a given, but there's also the
possibility of multiple multi-core CPUs.  This parallel processing will be
used for useful data processing, of course, but the primary use will be
developing that code and running smaller jobs.  Larger jobs with more data
would be moved off to larger clusters.

It has been some time since I last had to do this.  Personal computers, on my
own tight budget, yes, but now I have been given a high enough cap that I can
look at more options.

And great googley moogley!  Just a cursory glance on Newegg was enough for a
good scare.  From $200 to $1000 there are CPUs of every conceivable
combination of speed, number of cores, core name, and socket type.  I'm
definitely in over my head here, it seems.

Multiple physical CPUs would appear to require a "server" motherboard and a
Xeon CPU.  There is only one 8-core desktop-class CPU, so going that route
would mean either a 4- or 6-core CPU.  Server-class CPUs have a much larger
spread and 4 to 8 cores seems feasible.  I did notice also that the
server-class Xeon chips tend to have significantly lower wattage than similar
desktop-class CPUs.

At the same time, however, I can't simply pick a maximum price point, let's
say $800, and pick the best available CPU.  At any given price you can adjust
the sliders for frequency, number of cores, etc. and still have several
choices for "best".

With the rather vague usage scenario I've given above, how would you proceed?
Fancy and fast six-core "desktop" CPU, or a fancier Xeon (maybe two?)
eight-core CPU?  And then there's the offerings from AMD, though that seems to
be rather less to sort through... and then the choice of motherboard...
Ugh...

Any available chip will be able to handle the "usual" tasks we're likely to
throw at it: regular desktop applications/usage, sharing data among remote
users, the small amount of web and mail traffic, etc.  Are Intel and AMD once
again at parity with regards to running mathematical jobs?  I remember a few
years back that AMD's highly anticipated Bulldozer core was being routinely
crushed by Intel's then-available cores in raw integer and floating point math
tasks.  Is one markedly better than the other these days?

Are there any current CPU models that the community at large are flocking
towards?  A model considered a good buy or particularly reliable, that sort of
thing?

Oh, and though it would seem like an entirely logical direction to move in, we
are not currently doing any general purpose GPU type work.  I want to keep
that avenue open, but whatever I put together now doesn't need to accomodate,
for example, four giant power hungry video cards.  Just adding that in case it
helps narrow the list at all.


So many more variables to juggle.  Brain, ceasing to function...  Having seen
that the landscape is far more vast than I was expecting, I would greatly
appreciate any advice.


-- 
--John Gruenenfelder    Systems Manager, MKS Imaging Technology, LLC.
My various (fun) projects  --  https://bach.as.arizona.edu/~johng
"This is the most fun I've had without being drenched in the blood
of my enemies!"
        --Sam of Sam & Max




More information about the tfug mailing list