Live data from Hacker News

2,500 continuous runtime hours on a 4.77Mhz DOS web server

brutmanlabs.org

1–10 of 92 posts

Re: 2,500 continuous runtime hours on a 4.77Mhz DOS web server

#2
(Sorry, I forgot to preface this with Show HN)

  ** 2023-07-14 18:38 PDT The DOS machine is getting DoSed.  It's still beeping and happy but it's busy. **
This website is hosted on a 39 year old PCjr running at 4.77Mhz and it has been running over 2,500 hours continuously now. No reboots or program restarts ... you can see the current runtime stats by visiting http://brutmanlabs.org/status .

The machine specs are:

  - IBM PCjr w/ NEC V20 CPU (the V20 gives a small speed bump compared to the original 8088)
  - jrIDE sidecar providing expansion RAM to bring the system up to 736KB and an IDE port
  - Kingston SSD w/ a Startech SATA-IDE bridge
  - Parallel printer sidecar, modified to be bi-directional
  - Xircom PE3-10BT Ethernet adapter hanging off of the parallel port
  - IBM PC DOS 5.02 and mTCP HTTPServ
  - APC UPS (45 watt power draw with networking equipment)
  - Dynamic DNS is being handled by my home router, which forwards port 80 to the machine.
All of the upgrade parts are there for performance or convenience; you could use period correct parts and everything would work the same. (The IDE adapter would be a homebrew MFM adapter and you'd have to use something like a 3Com 3C503 on a bus adapter, but all of that existed in the mid 1980s when the machine was new.)

The web server is my own work, part of the mTCP project. Here are some of the features:

  - serves HTTP 0.9, 1.0 and 1.1 requests to be friendly to vintage browsers
  - Maps "normal" looking paths and resources to DOS 8.3 file format
  - HTTP 1.1 requests can be pipelined.
  - can serve up to 8 concurrent connections
  - logging to local disk and over UDP
  - can serve pre-compressed content
  - basic auth
  - runs on DOS 2.1 and up
  - built in SNTP client for time syncing
Besides the UPS it needs the SNTP client to achieve long run times, otherwise dropped interrupts cause the machine to lose time. Without the SNTP client it was losing up to a few minutes per day depending on the system load. The SNTP client also helped it transition through the daylight savings time change in March.

The limiting factor is going to be disk space for logging; it is generating logs and eventually that disk partition will fill up. (I need to add log rotating and compression.) This machine was running when the ChatGPT client for DOS was announced, and it was hosting the mTCP networking pages at the time, so it got quite a bit of traffic. I learned after that to leave a lot of space for logs.

It beeps when somebody visits - enjoy!

Re: 2,500 continuous runtime hours on a 4.77Mhz DOS web server

#4

He's dead, Jim.

It's still beeping ... busy != dead. Right now it's getting hammered pretty hard. I haven't implemented the clustering and load balancing yet.

It can serve 8 concurrent connections but that slows it down. It will queue a few more too; be patient and you will be rewarded.

Re: 2,500 continuous runtime hours on a 4.77Mhz DOS web server

#6
post #5

pfft...that is nothing. I was on a 286 running a DOS IRC client and managed to take back an IRC channel with more than 150 users that was previously taken over... ...no joke. However, in all seriousness: nice.

I have a small IRC client for that 286 if you still have it. Even has some Unicode support, but being limited to CP437 kind of limits it. ;-0

Re: 2,500 continuous runtime hours on a 4.77Mhz DOS web server

#7

He's dead, Jim.

It's still beeping ... busy != dead. Right now it's getting hammered pretty hard. I haven't implemented the clustering and load balancing yet. It can serve 8 concurrent connections but that slows it down. It will queue a few more too; be patient and you will be rewarded.

It actually works for me if you just wait long enough for it load. Which, at this point, is very impressive.

Re: 2,500 continuous runtime hours on a 4.77Mhz DOS web server

#8
post #7

Earlier quoted context omitted.

It's still beeping ... busy != dead. Right now it's getting hammered pretty hard. I haven't implemented the clustering and load balancing yet. It can serve 8 concurrent connections but that slows it down. It will queue a few more too; be patient and you will be rewarded.

It actually works for me if you just wait long enough for it load. Which, at this point, is very impressive.

Yep, at this point it's just continually busy.

For the next iteration I've got to put a better Ethernet card on it. The Xircom PE3-10BT device is nice because it's convenient, but the bandwidth would be 2x higher with a real Ethernet card on the bus.

And normally this machine is idle so the speed and bandwidth are not a problem. Right now it's very popular. :)

Re: 2,500 continuous runtime hours on a 4.77Mhz DOS web server

#10
post #9

That’s slightly over 100 days of uptime. How is this special?

100+ days of runtime on nearly 40 year old hardware not designed as a server exposed to all of the garbage coming in on port 80.

Remember, this is a home computer from the mid 1980s. This thing is way outside of it's duty cycle. And the software is holding up pretty well too, even during what is effectively a DoS attack on a DOS machine.

Post reply on HN