ThinkGeo.com    |     Documentation    |     Premium Support

HW Configuration for WMS Server

Hi,


We are in the process of acquiring HW running Win Server 2008 and  IIS 7.0 to host our ThinkGeo WMS server.


 


1. What is the typical RAM configuration you would recommend per machine?


2. We plan on Quad Core CPU array. What is the typical load that the WMS Server Engine could handle (request /sec) given the CPU configuration? Is the WMS server optimized to use multi-core technology?


3. Any typical load balancing/performance improvement  (in terms of users, etc) information would be great. 


Thanks,

Chris



Hi Chris,  
  
 Thanks for your question! I spoke with your sales representative a bit and gleaned some information about your needs from him.  
  
 I will provide you with the best information I have but want you to know that these are only recommendations and that depending on many factors your mileage may vary.  
  
 For the number of users and requests per second you are expecting about 645,000 requests for tiles per day. Note that is not the number of tiles total, just the total number of requests for refresh of the tiles. Remember that the WMS server caches tiles that created by your users viewing them. Thus once the WMS server caches a tile it does not ‘re-render’ it from the raw shapefile, it pulls the tile from the cache which is significantly more efficient. Thus you should see a performance increase as the WMS server is accessed as more and more tiles are cached. Should a user navigate to a section of the map that has not been cached there will be a bit of a performance decrease as the tiles are created ‘from scratch’, but on subsuquest return to the same location these tiles should be pulled from the cache and appear more quickly. 
  
 At a minimum I would recommend a 64-bit server as this will allow you to utilize significantly more memory total and per web process. On 32-bit machines we have see issues with web processes exceeding 1GB during the intial tile creation modes when a server is first started. 64-bit machines do not have this issue as one is not hitting a memory ceiling. This said we are currently utilizing 2 - 32-bit servers to handle all the World Map Kit WMS requests that come in from all the sample applications included with our installer as well as from our Online Demos and Cygnus Track installations. These servers are five core boxes with a little under 2GB of RAM each and are load balanced over four load balancers to provide the best possible throughput that Internet Explorer can handle. We worked with additional load balancers but found that IE has a limit to the number of connections it allows and thus four was the ‘magic number’. Note these servers have been in service for quite a while so the cache is providing nearly all the tiles thus we are seeing very low cpu utilizations and memory usage is very steady. 
  
 We do not have any special code that would provide additional performance with multiple-cores beyond what the Operating System schedules. 
  
 I don’t mean to avoid ‘hard’ numbers in my responses but the number of requests you will be generating is beyond what we see on our system and so some experimentation will need to take place on your side. At a minimum I would recommend a Quad-Core processor, 8GB of RAM, as fast of disk as you can afford. You might consider setting up multiple instances of the WMS server per machine and load balancing those instances as well. 
  
 Hope this helps.

Ryan, 
  
 Thanks you for your valuable guidance. 
  
 After researching further, and founding some reference on this forum about ThinkGeo deploying Map Servers on Amazon EC2, we are very interested in the EC2 deployment option. 
  
 Would you be so kind as to provide us with a ‘recipe’ to achieve this since ThinkGeo has already gone through the pains of doing so? Also, do you make use of the Amazon Load Balancing? 
  
 Thanks, 
 Chris

Hi Chris,


Our current setup utilizes two EC2 instances of the c1.Medium type which provide 5 EC2 Compute Units and 1.7GB of RAM each. Again these are 32-bit servers as once the tile cache of the server is populated with the most visited areas we are not seeing a large CPU or Memory utilization. For disk this is a bit of a judgement call as there are advantages and disadvanteges to utilizing the local 'instance storage' or the EBS volumes. For our needs we found that the EBS volumes were more fault tolerant and provided the ability to recover from failure much easier so we are hosting all the tile data from EBS volumes.


We setup four Elastic Load Balancers each accessing these two instances. We attempted several configurations but found that Internet Explorer was only able to handle the number of connections provided by the four load balancer setup. Any additional load balancers simply were not accessible by IE and thus did not increase performance.


With each Elastic Load Balancer you are provided with an external DNS name so that you can access the server attached to that load balancer via a URL, but these are not very 'friendly' DNS names so we utilzed our hosting providers DNS to map a friendly name to each of the load balancers, something like wmk1.thinkgeo.com to elb.us.amazonaws.com, wmk2.thinkgeo.com and so on. These urls were then added as wmsuris using the same type of code found here: gis.thinkgeo.com/Support/Dis...fault.aspx


AWS has worked very well for use as you can easily scale up your servers to meet your needs and the Elastic Load Balancers will automatically scale their internal resources to match the load.


Hope this helps.