Forum Moderators: rogerd
I was considering starting off with a Celeron 2.4Ghz, 512 MB Ram, 80 GB HD, 1000 GB Monthly transfer. How much resoureces would a forum with 700-900 people online at a time use? What kind of bandwidth do you see them using as well? (If anyone can recommend a good dedicated server company please sticky mail me)
Any thoughts or recommendations would be appreciated. Thanks
1. Image files? Logos, etc. Increase bandwidth.
2. CSS to cut down on page/file size, bandwidth, processing.
3. HTTP compression? Less bandwidth more processor.
4. Database or flat file?
5. Signatures allowed? The more fluff the more bandwidth, etc.
6. Peak vs. off-peak performance?
7. Instant imbedding of thread within reply thread? Bits and bytes.
8. Spam patrol? Cuts down on all variables.
The less fluff the less bandwidth and the greater speed, all things equal.
I'm certain others will chime in.
If your forum isn't image-laden, keeping things under 1000GB shouldn't be too difficult. Bandwidth is definitely under your control - when I started a new high-volume vBB install a few months ago, one of the first things I did was strip images, text, and code from the major templates to keep the pages as light as possible. Even a "light" vBB page is fairly heavy. If you are doing a photo-forum, though, you are likely to run into some major bandwidth usage.
There are some pretty good discussions at the official vBB forum of how to minimize CPU usage and bandwidth.
Since your forum is new, though, you could definitely start off with a cheaper server and upgrade if it takes off.
- *definatly* get more than 512Mb Ram or your system will be disk-swapping all the time especially if your database is on the same server as your webserver. go for 1Gb at a minimum. If you cannot get more ram for whatever reason (or find 1Gb still isnt enough), build MySQL in a memory restricted way, here is my configure line for mysql4 on a RHEL box:
./configure --prefix=/usr/local/mysql4 --with-extra-charsets=none --enable-thread-safe-client --enable-static --disable-largefile --with-mysqld-user=mysql --without-debug --enable-assembler --without-query-cache --without-extra-tools --without-docs --without-bench --with-charset=latin1 --without-innodb --disable-shared --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static
And I pass these parameters to mysqld when starting:
/usr/local/mysql4/bin/mysqld_safe --user=mysql --datadir=/usr/local/mysql/data \
--key_buffer_size=512K --sort_buffer_size=16K \
--table_cache=32 --read_buffer_size=8K \
--net_buffer_length=1K &
I get fairly good performance with those settings on a busy phpbb forum on a server with 512Mb RAM, but your milage may vary.
- Try and get 2 IP addresses with your server and serve all your images from a lightweight http server such as thttpd or boa (im using boa at the moment). They use a *lot* less memory and let you keep your apache->php->mysql setup dedicated to the code stuff. You will however need a fair bit of knowledge to get this to work, AFAIK there are no "published" hacks for this sort of thing for VB.
also add low_priority_updates=1
trust me... ;)
in general you can serve about 30M page views per dedicated 2.8GHz Dual Xeon with 2-4GB RAM... so for a small celeron that would be about 7M page views/mo or so... if:
- you optimize certain forum settings (e.g. mass update of view counters every 5 minutes instead of doing that instantly)
- use MMCache php precompiler (free)
I'd be interested to hear some thoughts on this issue, and how difficult it is to configure a load-balanced pair. I.e., does the load balancing software do all the work or must the admin take special steps in installation/configuration?
You will need some serious fault tolerance for that much concurrency.
I wouldnt go less than 2 X xeon 3Ghz processors, and 9 drives. raid 0+1 (4 drives) for the database files and transaction logs, raid 1(2 drives) for your database server and raid 5 (3 drives) for the webserver.
how difficult it is to configure a load-balanced pair
I'm about to find out so I'll let you know ;-)
We opted for a load balanced pair as, actually, it was overall cheaper than the dual CPU machine with the added advantage of redundancy.
We'll have a phpBB2 forum on there. I think it's a case of setting up the MySQL DB in a master/slave relationship. I'm not 100% sure yet - we're looking at this now.
I get the pair of boxes and load balancer on Friday and we'll be running the existing single box side by side until we're happy with it, so I'll get a good chance to mess around with it.
TJ