Applies to: VisualSVN Server 4.0 and later
VisualSVN Server allows tuning several performance-related settings. You can find the settings on the Performance tab in VisualSVN Server Properties dialog. The available settings are briefly described below.
Memory for shared object cache (MB)
Shared object cache contains various metadata such as repository tree entries. Metadata caching helps reduce disk I/O and improve performance. On server operating systems, the cache size is 128 MB, by default. This shared object cache size is optimal in most cases.
When to adjust the size of the shared object cache
It is recommended to increase the size of the shared object cache in the following cases:
- The repositories contain subtrees with 10,000 or more direct descendants (for example, more than 10,000 entries in the tags/ folder).
- VisualSVN Server hosts many active projects.
The size of shared object cache should not be greater than half of the server's physical RAM. It is also generally impractical to increase the size of shared object cache to be more than 1024 MB (1 GB).
Dynamic HTTP compression
Dynamic HTTP compression saves time and bandwidth by reducing the size of data transferred from VisualSVN Server to its clients. This comes at the expense of increased load on the server’s CPU. The setting is enabled by default for optimal network bandwidth usage.
When to use dynamic HTTP compression
For networks where the majority of clients accessing the server through a high-latency connection, or when the effective bandwidth is lower than 100 Mbps, it is recommended to leave the compression on.
For all other cases consider disabling compression. In particular, if the server and all its clients reside in the same 1 Gbps or faster local network, it is highly recommended to disable the compression.
Additional technical details on dynamic HTTP compression
VisualSVN Server can use one of two different compression algorithms, where the choice is governed by the type and version of a client communicating with the server. For modern clients, built against Subversion 1.10 or later, the server uses the LZ4 algorithm, which has a relatively small impact on the CPU load. On the contrary, the GZIP algorithm used for older Subversion clients and web-browsers requires significant server CPU resources.
If all clients had supported LZ4, then disabling compression would have been reasonable for 1 Gbps or faster networks. However, even a single client using GZIP compression for bulk or heavy operations may have a severe impact on the overall server performance. Therefore it may be also beneficial to disable compression in 100 Mbps networks.
Adjusting performance settings via VisualSVN Server Manager
Follow these steps to change the performance settings through the management console:
- Start VisualSVN Server Manager console.
- Click Action | Properties.
- Click Performance tab.
- Adjust the required settings.
- Click Apply.
Adjusting performance settings via VisualSVN Server PowerShell
The performance settings can be changed by running Set-SvnServerConfiguration VisualSVN Server PowerShell cmdlet. For example, run the following PowerShell command to configure VisualSVN Server with 256 MB shared memory object cache:
PS C:\> Set-SvnServerConfiguration -SvnInMemoryCacheSize 256
Learn more about Set-SvnServerConfiguration cmdlet in the dedicated section of the article KB88: VisualSVN Server PowerShell Cmdlet Reference