VCS worker
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 make your linux-running TeamCity server to talk to TFS by running VCS worker on 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
- open
Administration | Vcs-worker
page on TeamCity server and downloadvcs-worker.zip
- extract
vcs-worker.zip
to the target machine and open port 9888 in firewall - set
JAVA_HOME
environment variable with path to installed Java JVM 1.6+ - start vcs-worker with
<vcs-worker>/bin/vcs-server.bat start
or<vcs-worker>/bin/vcs-server.sh start
command - make sure you can open vcs worker address in browser from server TeamCity server (like
http://vcs-worker-host:9888
) - open
<TeamCity data directory>/config/vcs-worker.properties.dist
- un-comment
worker.1.url
line (remove #) and specify URL to installed vcs-worker, i.e.http://vcs-worker-host:9888
- copy
vcs-worker.properties.dist
tovcs-worker.properties
- no TeamCity server restart is required, you can see the debugging information about connected worker via
http://your-teamcity-server/admin/admin.html?item=vcsWorkerTab
Advanced configuration of VCS worker
- check
<vcs-worker>/conf/vcs-worker.properties.dist
for more options (you can change the port, some paths, HTTP context path) - rename
<vcs-worker>/conf/vcs-worker.properties.dist
tovcs-worker.properties
- restart vcs-worker to apply the changes
Running several VCS workers
- install another VCS worker on another machine
- edit
<TeamCity data directory>/config/vcs-worker.properties
and addworker.2.url=http://second-worker:9888
line - if needed, use
worker.1.vcsTypes
andworker.2.vcsTypes
settings 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 (http://your-teamcity-server/admin/admin.html?item=vcsWorkerTab
)