Hardware Suggestions: WeBWorK

Hardware Suggestions: WeBWorK

by Wesley Burr -
Number of replies: 2
We've been happily running WW 2.14 on a VM on our IT department's server farm, but recently obtained some funding to get a dedicated rackmounted box just for WW.

However, I can't seem to find any best practices, recommendations, or whatever for what hardware we should be looking at getting. My understanding of the way the processing happens is that approximately the following is a priority:

# of cores > total memory (RAM) > speed of cores > speed of disk

Which is to say, a 16-core system with 2.0GHz cores is preferable to an 8-core system with 2.4GHz cores, because of the multithreaded nature of the application (and multiple users). And RAM comes into play, especially with larger classes.

So: does anyone have any more information than that? We're locked into a site contract with HP, so the server will be provisioned through them, and I have around $6000 CAD to spend via this budget. So recommendations on how to balance the money across the different priorities would be very welcome.
In reply to Wesley Burr

Re: Hardware Suggestions: WeBWorK

by Danny Glin -
Part of the reason that there isn't a page with hardware recommendations is that they vary somewhat based on the usage.

In terms of component priorities, I might put disk speed ahead of speed of cores. Between database queries and opening files (pg question files, images, etc.), you might find that this is more of a bottleneck than processing speed.

The biggest factor in determining what resources you need will be whether you intend to run scheduled quizzes in WeBWorK. Because the quiz mode generates the entire quiz when a student first clicks on it, having a group of students start a quiz at the same time causes the largest load on a WeBWorK server.

In terms of assignments, because students submit one question at a time, you can have a very large number of students working on an assignment with little load on the server, since very few of them will be clicking submit at the exact same time. The usage does tend to peak immediately before a due date. For example, if you have 1000 students that all have an assignment due at 4pm, you would see more traffic shortly before that time.

Another observation is that WeBWorK's resource requirements have remained relatively flat over many years, and processor power has improved significantly over that time, so a modern server can generally handle a very large number of students (e.g. thousands) without difficulty.

In terms of concrete numbers, here are my thoughts:
  • I wouldn't even look at less than 8GB of RAM. Since you have budget, I recommend 16GB. You can look at more, but depending on your usage you may find that you never go beyond 16GB of use.
  • I think that core speed is probably the least important factor. Most WeBWorK requests are very simple in terms of processing, so more cores is generally more important than fast cores, though going beyond 8 cores could be overkill.
  • If you have the budget, I would definitely recommend SSDs. When WeBWorK loads a page, I believe most of the work is getting information from the database, so disk speed may be the limiting factor more so than processor speed. WeBWorK does not require a large amount of storage, so buying smaller SSDs is probably a better investment than bigger magnetic drives.
Having said all of that, I actually prefer VMs to physical hardware. Of course this depends on how reliable, robust and fast your IT department's VM infrastructure is. VMs provide some fundamental benefits such as portability (a VM can be easily moved to different hardware), easy backups (e.g. snapshots), and protection against hardware failures (if your server farm is set up for this, a VM can be automatically restarted on a different host if one host fails). Plus with VMs it is easy to spin up a development/testing machine in addition to your production server.

For comparison, we have about 2500 students using our WeBWorK servers right now, and we are currently running two VMs with 8GB of RAM each and 2 cores each. The database is hosted on a separate server, so this alleviates a small amount of load from the web servers.
In reply to Danny Glin

Re: Hardware Suggestions: WeBWorK

by Wesley Burr -
Thanks for the information, Danny!

We are also currently running on a VM (4 cores, 8GB of RAM) and it's been running fine. However, several other departments have expressed interest in using the platform to save costs over publisher's bundles, so we requested money for a dedicated piece of hardware to run WW. There's no mechanism for us to easily fund a VM, because the pots of money are different.

I will pass this info on to our IT rep who is handling purchasing.