[Semibug] Hardware for OpenBSD server?

Nick Holland nick at holland-consulting.net
Sat Aug 28 12:38:52 EDT 2021

On 8/27/21 4:44 PM, Jonathan Drews wrote:
> Hi Guys & Gals:
>   What kind of tower server should I get? My questions are:
> 1) what kind of processor should I get and what should be the clock speed.
> 2) How much DRAM should I get?
> 3) I have already decided to use a Solid State Drive.
> I will use httpd. The website will serve up lots of photographs like this:
> tinyurl.com/5yehsazc
> and this
> tinyurl.com/jbma9u63
> Plus *.MOV videos.
> Any suggestions are appreciated.

The answer is..."whatever you need".

Photographs and videos -- big files.  Unless you are dealing with a very
popular site, this is not a problem.  It takes your webserver almost as
much effort to find and start sending 100 small files as it does 100 big
files, after that, it's the OS and network stack doing all the work.

Static files, or dynamic generated content?  If it is dynamic content, your
app is the determining factor.  If it is static files, your bandwidth is
the determining factor.

SSDs are wasted money for big files.  They shine for lots of tiny files,
but are just expensive for big files.

Seriously, though... I'd go get something out of your scrap pile.
I ran the OpenBSD Toronto mirror off a ten+ year old Pentium D with 2G RAM
for a number of years -- the processor and RAM were never an issue.  2T
conventional disk and a 60G SSD for anoncvs files (tiny files, lots of
thrashing) and a 200MB mfs for anoncvs tmp files (MASSIVE amounts of
thrashing, huge win).  If the caps hadn't failed on the system, it would
probably still be running on that hardware today.

IF you outgrow your scrap machine, then figure out where you bumped into
limits, and then spend some money on new hw that fixes that problem.

Processor and clock speed: literally anything that will run amd64 code
will do for how I am imagining your system being used -- seriously, an
Atom would do it.  Memory: Well, due to KARL, library relinking and LLVM,
OpenBSD's boot-time memory needs have skyrocketed in recent releases, to
the point where 512MB is almost a practical minimum.  However, getting an
amd64 system with less than 1G is a trick anymore...no problem with RAM.

I just don't recommend i386 anymore, and an Atom is kinda painful, so I'd
say a couple cores of ANY ten year old or newer amd64 processor with a
couple gig of RAM will probably saturate your network before anything else
for static content.

I'd suggest a mirrored triplet or mirrored pair of disks.  Mirrored pairs
of disks turn a crisis into a problem.  Triplets turn a problem into a
non-event (but can be slow for writes).

If you are doing dynamic content...depends on your app.  The hw I suggested
above could work great, or the fastest machine around could be taken to
its knees by a single user.  No one will know until you try it out.

But key thing: hw replacement has to be part of your project plan.  So
don't try to Buy The Perfect HW on first try -- acquire something that
works, run with it, figure out how it could be better, replace.

If you can outgrow a 10 year old system with a couple gig of RAM and a
couple spinny rust disks, you will have bigger issues than your server


More information about the Semibug mailing list