
Various aspects of TeamCity behavior can be customized through a set options passed on TeamCity server start. These options fall into two categories: affecting Java Virtual Machine (JVM) and affecting TeamCity behavior.
{note}You do not need to specify any of the options unless you are advised to do by TeamCity support team or you know what you are doing.{note}
In this section:
{toc}
h3. TeamCity internal properties {anchor:internal.properties}
TeamCity has some properties that are not exposed to UI and are meant for debug use only. If you need to set such a property (e.g. asked by TeamCity support), you can set it either as {{-D<name>=<value>}} JVM property (see below), or you can add TeamCity-specific properties in {{<TeamCity Data Directory>/config/internal.properties}} file. The file is Java [properties file| http://en.wikipedia.org/wiki/.properties], to add property put {{<property name> = <property value>}} on a separate line. If you do not have the file, just create a new one.
{anchor:JVMProperties}
h3. JVM Properties
If you need to pass additional JVM options to a TeamCity server (e.g. \-D options mentioned at [Reporting Issues] or any non\-"\-D" options like \-X...), the approach will depend on the way the server is run. If you run the server using Windows service, please refer to [#TeamCity Server is Run as Windows Service], if you are using {{.war}} distribution, use the manual of your Web Application Server. In all other cases, please refer to [#Server is Run Via Shell Script].
For general notes on the memory settings, please refer to [Setting Up Memory settings for TeamCity Server|Installing and Configuring the TeamCity Server#memory].
You will need to restart the server for the changes to take effect.
h4. Server is Run Via Shell Script
If you run the server using the {{runAll}} or {{teamcity-server}} scripts, you can set the options via {{TEAMCITY_SERVER_OPTS}} environment variable.
* {{TEAMCITY_SERVER_MEM_OPTS}} --- server JVM memory options (e.g. {{-Xmx750m -XX:MaxPermSize=270m}})
* {{TEAMCITY_SERVER_OPTS}} --- additional server JVM options (e.g. {{-Dteamcity.git.fetch.separate.process=false}})