Server setup recommendation

Does anybody have any information on reccommendations configuration and setup of the TeamCity server in a large scale enterprise environment?

  • Is there any sort of minimum hardware required for TC or is there an optimal configuration?
  • I will be using a database with TeamCity and I was wondering if the DB should be installed on another machine or the same machine as TC?
  • In addition to the database, how much additional diskspace should I plan for on the server?
  • How should I handle providing maximum uptime on the server for things like applying OS patches that need a reboot?
  • Should I have multple network connections on the server and can TC handle using multple connections or should I go with a fiber connection?
  • Has anybody run the TC server on a VM? What is the performance like?  I am looking into VMWare as an option because of their High Availibility ( VMWare HA ) option in vSphere.  This gives you a real time backup of the server if the first VM goes down. It would be nice if TeamCity had some sort of backup server that could mirror the main server and pickup the load if the main server goes down.  That would be a huge advantage over some of the other build systems out there.
  • Is there anything else that I should be aware of or consider?

Thanks in advance.

Comment actions Permalink

We've been running TeamCity 5 on a (Windows Server 2003) VMWare instance for about a year now very successfully. We have 20-something projects, more that 100 build configurations and around 70 users, roughly half of whom hit the server in the last week. We have a 20Gb system drive and a 20Gb data drive (for TeamCity's .BuildServer directory). That gives us plenty of space for artifacts etc. but it all depends on your requirements. If you're virtualising your (data) drive then you should be able to resize it fairly easily if necessary.

In a large scale enterprise environment, you'll likely already have separate database servers, so I'd suggest hosting TeamCity's database there. That will give you more flexibility, control and probably performance.

Uptime management will be the same for any other server running on your OS of choice. Bear in mind though that you'll probably have a few minutes downtime each night as TeamCity does its clean up. If you can tollerate that you can probably tollerate a few more minutes from time to time for a server reboot when the OS needs patching.

Hope that's of some use.


Comment actions Permalink

Here at Jetbrains we have a server working on Pentium Dual Core 3.2GHz CPU with 4Gb of memory. TeamCity uses MySQL database which is working on the same server. We have separate disks for .BuildServer and for database. Disk with .BuildServer is 1TB size because many of our builds produce large artifacts (more than 1Gb per build).

Currently we have 52 agents connected to this server, about 50 active projects and about 300 active configurations. About 60 users use the server regularly. Data cleanup process takes about 20 minutes in our case.

Comment actions Permalink

Thanks - That information is very helpful.


Comment actions Permalink

Are you running 52 agents on the same server, or distributed among other servers?

I am wondering how should i distribute my agents (same machine, agent per machine).


Please sign in to leave a comment.