Hardware requirements

The hardware requirements vary depending on multiple factors including: the deployment type, seat count, repository size, and usage patterns. This page provides guidelines that help estimate the required hardware specifications.

Helix TeamHub is written to be efficient and lightweight. However, due to the nature of the product, most of the activities trigger calls to the underlying version control system. Keeping this in mind makes choosing the right hardware easier because TeamHub usage is estimated along with the underlying components.

Minimal requirements

Helix TeamHub technology stack consists of a number of components. In order for them to stay coherent, the following minimum hardware specifications are required server installation:

Resource Requirement
CPU 2.6GHz
Memory 4GB
Root disk 40GB
Data Storage High-performance SAN or locally attached storage

AVX instruction set support

The CPU must have Advanced Vector Extensions (AVX) instruction set support.

Determining hardware capacity requirements

Helix TeamHub is battle-tested to serve thousands of users. The variation in usage patterns makes it hard to give accurate numbers, but the following matrix can be used as reference based on past experience.

Seats Memory CPU Cores Root Disk Space
0-100 8GB 2 40GB
100-500 16GB 4 40GB
500-1000 32GB 8 40GB
1000-2000 64GB+ 16 40GB

Since the system deals with a lot of IO operations to the repositories on disk, it is recommended to have an ultra-fast (SSD/SAN) data storage with speedy access.

Scaling horizontally

Built-in support for horizontal scalability makes Helix TeamHub ready to handle a large number of requests with increased performance. It's recommended to use a hardware or software (see Setting up HAProxy) load balancer for distributing the load across cluster nodes. Combining round-robin algorithms with decent hardware specs delivers the best performance.

Helix TeamHub DB

Helix TeamHub uses MongoDB extensively. It is recommended giving MongoDB a decent amount of RAM to have the working set reside in memory for fast access.

HAProxy

If using HAProxy for load balancing, we recommend 1-2 CPU cores and 2GB of RAM. Having a reliable and fast network between the load balancer and the Helix TeamHub Web servers is extremely important.

Understanding resource usage

Git cloning is the most demanding task for CPU and RAM. For a large Git repo (1.5 GB, 500K commits), git-pack-objects utilizes a single core CPU from 45% to around 90% and around 10% of RAM. It then uses lower resources during git-receive-pack operation to about 20% CPU and 40% RAM. For the same repository, the initial Git push/import triggers git-index-pack, which utilizes CPU from 45% to around 90% and about 10% of RAM.

Additional help

For questions or concerns about performance issues and capacity management, contact Perforce Support.