Table of Contents
The appendix is intended as a quick summary of the required hardware specification needed in order to run a BigWorld. The following list should be considered as the minimum set of required hardware:
-
1GHz CPU (non-mobile CPU preferred)
-
256MB RAM
-
8GB Hard Disk
-
100Mbps Network Interface Card
The following list outlines BigWorld's recommended hardware requirements for an optimal price vs performance solution.
In general, use the fastest CPU's that you can. Faster CPU's mean more entities per CPU and fewer machines.
As far as which CPU to buy, look at the normal kinds of things for servers: big L1 and L2 cache sizes, and fast front-side buses are always better than small L1 and L2 cache sizes and slow front-side buses.
Multiple processors will help you out due to lower network traffic and fewer machines, until such time as the processors are generating too much data to get to the network card (or over the PCI bus to the network card).
If you have multiple processors, then make sure that you have one server component running on each CPU.
In general CPU density in each box is a price decision. Blade machines are expensive, but if you are paying expensive rates for your NOC it may work out to be cheaper. If we ignored the NOC cost, we recommend dual CPU machines.
An example Blade setup would be as follows:
BladeCenter LS20 885051U
-
Processor: Low Power AMD Opteron Processor Model 246 (Standard)
-
Memory: 4 GB PC3200 ECC DDR RDIMM (2 x 2 GB Kit) System Memory
-
IBM eServer BladeCenter ™ Gigabit Ethernet Expansion Card
-
SCSI Hard disk drive 1 : 73GB Non Hot-Swap 2.5" 10K RPM Ultra320 SCSI HDD
BladeCenter 86773XU
-
Optical device: IBM 8X Max DVD-ROM Ultrabay Slim Drive (Standard)
-
Diskette drive: IBM 1.44MB 3.5-inch Diskette Drive (Standard)
-
Power supply modules 1 and 2: BladeCenter 2000W Power Supplies one and two (Standard)
-
Management modules: BladeCenter KVM / Management Module (Standard)
-
Switch module bay 1: Nortel Networks Layer 2/3 Copper GbE Switch Module for IBM eServer BladeCenter
-
Switch module bay 2: Nortel Networks Layer 2/3 Copper GbE Switch Module for IBM eServer BladeCenter
A setup with 10 LS20 blades in a 86773XU BladeCenter would cost approx $60k USD.
1Gbps NICs are recommended. The accurate way to determine what NIC is required is to measure the inter-server traffic for your game. If the traffic is reaching 25% of the cards capacity we recommend using a faster card (i.e. if the traffic is more than 25Mbps use a 1Gbps NIC). Note most 100Mbps NIC cards cannot handle more than 50Mbps sustained throughput.
For the general machines (CellApps, BaseApps, and the various managers) RAID disk setups are not recommended. None of these machines use the disk sub-system extensively (and are certainly not disk bound). Use standard drives, that are big enough to store the entire world data (typically in the order of 1 to 10G). If a drive dies it can be replaced and the data copied from the master.
The machine with the master copy of the data should use a RAID 5 system for speed and data integrity. Hot-swap drives will facilitate easy replacement when drives fail. The database server also needs to use RAID 5 for data integrity and Logical Volume Management for snapshotting. We also recommend using 10k or 15k RPM drives (SATA or SCSI). The database for a game stores backup copies of all entities. This database can be large, potentially 10G to 1TB, but this should be measured during development. This can be estimated by multiplying the number of entities by their size.
We recommend the use of dual redundant PSUs for the database machine, and the master data server. All other machines can use standard single PSU's, since a failure of these machines is not critical. It is cheaper to let the BigWorld fault tolerance system do the work on the software side.
To calculate memory requirements for the CellApp we recommend the following:
-
Around 32MB to 128MB, for Linux to run comfortably (depends on how well you have stripped back the kernel and system services).
-
Around 32MB for a CellApp or BaseApp to run comfortably with no entities on them and no spaces loaded.
-
Enough RAM for your entities, and for your world geometry (remember that the cell needs to load up enough geometry to cover for the AoI for all entities it is supporting). This amount will depend on how dense your meshes are, and how much data is stored with each entity. 2GB of RAM would not be unusual for an average game.
The BaseApps would typically require around 512M, depending on how much entity data is stored. All other machines require around 512M.
This is easy to calculate. Multiply the number of players by the desired bandwidth per player. Outgoing bandwidth is generally higher than the incoming bandwidth.
It is possible to use VMWare for single developer testing purposes, however VMWare is not recommended as a scaleable production configuration due to the timing latency that can be introduced. It is also important to note that if you are intending to use a VMWare image that the architecture of the package you are creating should be same as the intended machine you will run the image on. While this may seem counter-intuitive, this is important as the cross-architecture emulation significantly slows down the server and will generally causing process deaths due to a lack of responsiveness.