One of the heavy parts of TeamCity functioning is interaction with version control (VCS) servers. Until TeamCity 8.0, the related operations were performed by TeamCity server itself, and this created a high load on the server and could affect UI responsiveness. In TeamCity 8.0, we provide an option to execute VCS operations via a separate VCS worker service, which can run on a separate machine (or even use several VCS workers on multiple machines). For example, you can route all Git VCS traffic through one VCS worker, and Subversion traffic - through another. Even more, you can run TeamCity server on linux and use TFS by running VCS worker on a Windows machine. And, with large setups VCS worker(s) installed on separate machines should noticeably decrease TeamCity server load.
By default VCS workers are disabled, and TeamCity behaves as usual, i.e. performs all VCS operations from the main server process.
Installation of a VCS worker
Administration | Vcs-workerpage on TeamCity server and download
vcs-worker.zipto the target machine and open port 9888 in firewall
JAVA_HOMEenvironment variable with path to installed Java JVM 1.6+
- start vcs-worker with
- make sure you can open vcs worker address in browser from server TeamCity server (like
<TeamCity data directory>/config/vcs-worker.properties.dist
worker.1.urlline (remove #) and specify URL to installed vcs-worker, i.e.
- no TeamCity server restart is required, you can see the debugging information about connected worker via
Advanced configuration of VCS worker
<vcs-worker>/conf/vcs-worker.properties.distfor more options (you can change the port, some paths, HTTP context path)
- restart vcs-worker to apply the changes
Running several VCS workers
- install another VCS worker on another machine
<TeamCity data directory>/config/vcs-worker.propertiesand add
- if needed, use
worker.2.vcsTypessettings to assign different VCS types to different workers
- save the file, no restart is required
All connected vcs-workers are listed under Vcs-Worker tab on server administration page (