Forum OpenACS Q&A: How much hardware power do I need?
Please share you experience to get an idea of what is necessary or how to evaluate this. TIA, Christof
- Go for a good dual processor system with enough RAM (2GB upgradable to more) and fast harddisks. If you are experiencing stress on the system get a cheaper webfrontend (single processor) and use the bigger machine as a DB server
- Start with a smaller system (still 2GB of RAM) and see how it plays. If you come to hurdles get another small system to use as the DB Server. If this still fails, get yourself a large DB server and a loadbalancer in front of the two smaller machines.
Always keep scalability in mind and don't worry too much about getting the hardware "right" from the beginning.
Reason: you want the dual-processor so that Postgres can be doing something while AOLserver is doing something (as an example); I recommend AMD because they have good memory bandwidth ; and fast disks are useful because when uploading, you first copy to /tmp, then copy the temporary file to some other location (twice the disk bandwidth is needed) .
Btw, there are at least a few OpenACS sites serving fully dynamic content 1000+ concurrent users, e.g. the Learn@WU which Gustaf has discussed various times in the forums. (Those sites also tend to have correspondingly massive hardware, lots of custom code, and people managing them who have spent lots of on tuning, etc.)
Note that Malte's and Patrick's hardware recommendations above are entirely reasonable, but they may or may not actually be necessary, depending on your site. If your site is small you can probably run it just fine on even a cheap desktop. (And of course if your site is very busy, a modern 2 cpu 2 GB RAM machine might not be enough.) A good iterative approach is something like this:
- If you have the money to just buy a new but fairly modest server as Malte and Patrick recommend, just buy it. If you aren't willing to spend the money yet, just take any old desktop you have lying around, and use that. Either way, we will call this "server_1".
- Install your Development system on server_1 and get it working. Set up your Dev site. Do your own load testing and see how things go. (If your sever is just too wimply, everything will be slow, but you my ind that only a few queries or pages are slow, and need to be tuned.) Start giving your internal users accounts and have them try out functionality.
- You need to do the above anyway to develop your site, and in the process, you will soon start getting an idea of whether the server_1 hardware is adequate for your needs. If server_1 is not adequate, ideally do some investigation to figure out what the primary rate limitor is (e.g., disk I/O, CPU, memory size), then take an educated guess at how much bigger a machine you need.
- Note that either way server_1 probably isn't wasted money, as if your site is busy enough that you need server_2, you will likely still want to use server_1 for your Dev site, as a front-end webserver machine, or etc.