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.