Hardware Requirements for Helix GitSwarm Version 2015.3 Introduction This document describes the hardware requirements for Helix GitSwarm release 2015.3. Supported Operating System Platforms * Ubuntu 12.04 or 14.04 * CentOS 6.7 or 7 Supported Git Fusion Releases * Git Fusion 2015.2, or newer. Storage The necessary hard drive space largely depends on the size of the repos you want to store in GitSwarm. As a rule of thumb you should have at least twice as much free space as all your repos combined take up. You need twice the storage because GitSwarm satellites contain an extra copy of each repo. Note that if you are mirroring projects to Helix Server using the locally provisioned Helix Git Fusion Server, you will want at least four times as much free space as all your repos combined. If you want to be flexible about growing your hard drive space in the future, consider mounting it using LVM so you can add more hard drives when you need them. Apart from a local hard drive, you can also mount a volume that supports the network file system (NFS) protocol. This volume might be located on a file server, a network attached storage (NAS) device, a storage area network (SAN) or on an Amazon Web Services (AWS) Elastic Block Store (EBS) volume. If you have enough RAM and a recent CPU, the speed of GitSwarm is mainly limited by hard drive seek times. Having a fast drive (7,200 RPM and up) or a solid state drive (SSD) will improve the responsiveness of GitSwarm. CPU For production use, it is recommended GitSwarm be run on a dedicated server. The Helix Server and Helix Git Fusion products should ideally be installed on their own independent machines. In that configuration: * 1 core supports up to 100 users, but performance may suffer as all workers and background jobs running on the same core * 2 cores is the recommended number of cores and supports up to 500 users * 4 cores supports up to 2,000 users * 8 cores supports up to 5,000 users * 16 cores supports up to 10,000 users * 32 cores supports up to 20,000 users * 64 cores supports up to 40,000 users By default, GitSwarm will attempt to automatically provision an instance of Helix Server and Helix Git Fusion all on the local system. When running all components on the same machine, we suggest a minimum of 4 cores. Note: A minimum of 3 unicorn workers is required for concurrent usage of the system. Generally we recommend having unicorn workers set as CPU cores + 1 = unicorn workers. Memory You need at least 2GB of addressable memory (RAM + swap) to install and use GitSwarm! With less memory, GitSwarm will give strange errors during the reconfigure run and 500 errors during usage. For production use, it is recommended GitSwarm be run on a dedicated server. The Helix Server and Helix Git Fusion products should ideally be installed on their own independent machines. In that configuration: * 512MB RAM + 1.5GB of swap is the absolute minimum, but we strongly advise against this amount of memory. * 1GB RAM + 1GB swap supports up to 100 users * 2GB RAM is the recommended memory size and supports up to 100 users * 4GB RAM supports up to 1,000 users * 8GB RAM supports up to 2,000 users * 16GB RAM supports up to 4,000 users * 32GB RAM supports up to 8,000 users * 64GB RAM supports up to 16,000 users * 128GB RAM supports up to 32,000 users By default, GitSwarm will attempt to automatically provision an instance of Helix Server and Helix Git Fusion all on the local system. When running all components on the same machine, we suggest a minimum of 4GB of RAM and 4GB of swap. Note: The 25 workers of Sidekiq will show up as separate processes in your process overview (such as top or htop) but they share the same RAM allocation since Sidekiq is a multithreaded application. END