Configuring Synchrony
Passing recognized system properties to Synchrony
If Synchrony is managed by Confluence (the most common setup), you make changes to Synchrony by passing system properties to Confluence. See Configuring System Properties to find out the best way to do this for your operating system.
You can find a full list of system properties at Recognized System Properties.
If you're running Synchrony standalone in a cluster, you pass properties directly to Synchrony via the start-synchrony scripts.
Note that the properties are not always the same as those used when Synchrony is managed by Confluence. A full list of required and optional properties can be found at Set up a Synchrony cluster for Confluence Data Center.
Passing JVM arguments to Synchrony
Sometimes you may want to pass additional arguments, that are not already provided by a system property, directly to Synchrony's JVM.
If Synchrony is managed by Confluence, you will need to create a file called synchrony-args.properties
in your home directory (or shared home if you have a Data Center license) and include the arguments you want to pass to Synchrony, one per line.
For example:
synchrony.jvm.arg.0=-Dproperty1=value1
synchrony.jvm.arg.1=-Dproperty2=value2
...
synchrony.jvm.arg.N=-XX:NumberOfGCLogFiles=5
For more examples, see How to Enable Garbage Collection (GC) Logging for Synchrony process.
Remember, you can't use this method for passing any value that is already handled by a Confluence system property, such as synchrony.port, Xmx or Xss.
If you're running Synchrony standalone in a cluster, you pass arguments to Synchrony's JVM directly, by adding them to your start-synchrony script, in the Optional Overrides section.
Common configuration changes
The two most common changes people make to Synchrony is to change the port that Synchrony runs on, if port 8091 is already in use, and to change the maximum heap memory allocated to Synchrony.
Change the port Synchrony runs on
Synchrony runs on port 8091 by default. If this port is already in use by another application on your server you can use the the synchrony.port
system property to change it to an available port.
If you're running Confluence 6.0.3 or earlier you'll need to use reza.port
instead of synchrony.port
.
To change the maximum heap for Synchrony
Synchrony has a maximum heap size of 2 GB by default.
If you experience out of memory errors related to Synchrony, you can change the heap size allocated to Synchrony using the synchrony.memory.max
system property.
If you're running Confluence in a cluster, you may want to increase the maximum heap size to 4gb on each node.
For an example, see How to Increase Synchrony Heap Allocation.
Change the logging level for managed Synchrony
The logging level for managed Synchrony is set to INFO
by default. If you find this too verbose, you can decrease the logging level to WARN
or ERROR
.
To change the managed Synchrony logging level:
Create a file called
synchrony-log4j.properties
with the following content:log4j.rootLogger=WARN, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d %p [%t] [%c{4}] %m%n
In this example we'll set the logging level to
WARN
. Replace this withERROR
if you only want to log errors.- Save the file. You can place the file anywhere, but we recommend your home directory (or shared home) alongside the
synchrony-args.properties
file. - Edit your
<home-directory>/synchrony-args.properties
file. If you're running Confluence in a cluster, this will be in your shared home directory. Add the following line to tell Synchrony where to find your log configuration.
log4j.configuration=file://<path-to-file>/synchrony-log4j.properties
Replace
<path-to-file>
with your file path. In Linux this will be something like=file:///var/confluence/local-home/synchrony-log4j.properties
, for example.- In Confluence, go to Administration > General Configuration > Collaborative editing and select Restart Synchrony to pick up the changes.
Exclude the Confluence DEBUG prefix
Because Synchrony is managed by Confluence, the Synchrony logs include a prefix with information from Confluence itself. You can omit this prefix to make the logs easier to read.
To omit the Confluence DEBUG prefix from the Synchrony logs:
- Edit the
<install-directory>/confluence/WEB-INF/classes/log4j.properties
file. Change the
log4j.appender.synchronylog.layout.ConversionPattern
line to remove%d %p [%t] [%c{4}]
as follows:log4j.appender.synchronylog.layout.ConversionPattern=%m%n
- Save the file, then restart Confluence to pick up the changes.
If you're running Confluence in a cluster, you'll need to repeat this process on each Confluence node.
Change the logging level for Synchrony standalone
If you choose to deploy and manage Synchrony standalone in a cluster, you can configure the logging level in your start-synchrony script.
To change the Synchrony standalone logging level:
Create a file called
synchrony-log4j.properties
with the following content:log4j.rootLogger=WARN, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d %p [%t] [%c{4}] %m%n log4j.category.com.hazelcast=INFO log4j.category.hazelcast=INFO
In this example we want to set the logging level to
WARN
. Replace this withERROR
if you only want to log errors. We keep the Hazelcast logging level atINFO
so you can still see the Synchrony nodes communicating with each other.- Save the file. You can place the file anywhere, but we recommend your Synchrony directory.
- Edit your
<synchrony-directory>/start-synchrony.sh
orstart-synchrony.bat
file. Add the following line in the Optional Overrides section to tell Synchrony where to find your log config:
log4j.configuration=file://<path-to-file>/synchrony-log4j.properties
- Restart Synchrony to pick up the changes.
Repeat this process on each Synchrony node.
Troubleshooting
- If you have a Data Center license, and Synchrony is managed by Confluence, we recommend storing the
synchrony-args.properties
file in the shared home directory, so that all Synchrony processes are started with the same JVM arguments. If you do locate thesynchrony-args.properties
file in the local home, the arguments will only be passed to the Synchrony process on that node. - Since 7.20, we enabled passing JVM arguments to Synchrony to help with diagnosing Synchrony-related issues. See How to Enable Garbage Collection (GC) Logging for Synchrony process.