I love that new computer hardware smell. It’s that time again. I’ve purchased some new memory for the server to bump it up from 6GB to 24GB (!!) of Memory. This upgrade has become necessary for a lot of reasons least of which the prevelance of Virtual Machines on my server. But it will also have some direct benefits to our community. First of all it will improve our Minecraft server by enabling me to expand our map size.
At the moment our entire Minecraft Map uses a Flat File Database instead of a MySQL database. The reason for this is all the Map Editors that work with large maps do not support MySQL Databases which is something I require to repair damage to player made creations when Greifers strike. The other reason is it’s much easier to test things as I can simply move the folder containing the world to my local system and fire it up in a single player instance to try new mods and such (like Minecart Mania).
Now the reason the new RAM is important is because when you run things in a Flat database it’s slow. When you first join the server or /warp to an area the reason things are slow to load is not due to the internet connection but due to the Hard Disk. I’ve done extensive testing on this by loading the server to a single client over a 1000Mb/ps connection and monitored disk access while warping. The bottleneck is 100% the Hard Disk. So how do you get over this? Well you use RAM.
Specifically what I’ve done is installed a RAMDISK which is basically like creating a virtualised Hard Drive that only exsists in the servers RAM. To the operating system (we use Windows Server 2008 R2) it appears like a normal Hard Disk but it’s actually all in Memory. This gives us 0.0ms access latency and incredible read/write performance especially in random access. To give you some perspective. My 8 drive RAID 5 Array which is very high-end can only manage 500MB/ps sustained reads. The RAM Disk by comparison manages 3,500MB/ps to 3,700MB/ps in every test including random access and sequential read/writes – This is a huge difference.
The downside to using RAM is obvious, you use your RAM. RAM is expensive per GB much more expensive than a Hard Disk. A 2000GB Hard Disk is around £60 while 12GB of RAM is about £120 (or twice the price). So creating RAMDISK’s to store data costs a lot of money for the amount of storage and it also means you can’t store a lot of data there ether. Our Server is about 300MB already (Minecraft) and I’m using a 512MB RAMDISK within the 6GB of RAM available. Thus the 24GB RAM upgrade will allow me to expand the RAMDISK to a much more comfortable 2GB size. With that I will also increase the overall map size another 500 Blocks in all directions.
Sorry for this very wordy post that I’m sure leaves most readers scratching their heads but I felt it was something to share as it does affect our community going forward and it also shows that I am willing to invest where required.
This brings the server to the following specifications: Core i7 920, 24GB RAM, Dual 2320 RAID Cards, Dual 1Gb Ethernet to Router, 100Mb Internet Connection, 60TB of on tap storage, Windows Server 2008 R2. The next upgrade will be a HP SAS Expander and a new Adaptec RAID Card but those don’t really have any baring on the server itself so I’ll probably not make such a large post explaining the benefits of those like I’ve done with the RAM.