[Other doc versions]
[Doc downloads]
Active Users | EC2 instance type | EBS Optimized | EBS Volume type | IOPS |
---|---|---|---|---|
0 – 250 | c3.large | No | General Purpose (SSD) | N/A |
250 – 500 | c3.xlarge | Yes | General Purpose (SSD) | N/A |
500 – 1000 | c3.2xlarge | Yes | Provisioned IOPS | 500 – 1000 |
In Stash instances with high hosting workload, I/O performance is often the limiting factor. It is recommended to pay particular attention to EBS volume options, especially the following:
The above recommendations are based on a typical workload with the specified number of active users. The resource requirements of an actual Stash instance may vary with a number of factors, including:
See Scaling Stash and Scaling Stash for Continuous Integration performance for more detailed information on Stash resource requirements.
The following Amazon EC2 instances also meet or exceed Stash's minimum hardware requirements. These instances provide different balances of CPU, memory, and I/O performance, and can cater for workloads that are more CPU-, memory-, or I/O-intensive than the typical.
Model | vCPU | Mem (GiB) | Instance Store (GB) | EBS | Dedicated EBS Throughput (Mbps) |
---|---|---|---|---|---|
c3.large | 2 | 3.75 | 2 x 16 SSD | - | - |
c3.xlarge | 4 | 7.5 | 2 x 40 SSD | Yes | - |
c3.2xlarge | 8 | 15 | 2 x 80 SSD | Yes | - |
c3.4xlarge | 16 | 30 | 2 x 160 SSD | Yes | - |
c3.8xlarge | 32 | 60 | 2 x 320 SSD | - | - |
c4.large | 2 | 3.75 | - | Yes | 500 |
c4.xlarge | 4 | 7.5 | - | Yes | 750 |
c4.2xlarge | 8 | 15 | - | Yes | 1,000 |
c4.4xlarge | 16 | 30 | - | Yes | 2,000 |
c4.8xlarge | 36 | 60 | - | Yes | 4,000 |
hs1.8xlarge | 16 | 117 | 24 x 2000 | - | - |
i2.xlarge | 4 | 30.5 | 1 x 800 SSD | Yes | - |
i2.2xlarge | 8 | 61 | 2 x 800 SSD | Yes | - |
i2.4xlarge | 16 | 122 | 4 x 800 SSD | Yes | - |
i2.8xlarge | 32 | 244 | 8 x 800 SSD | - | - |
m3.large | 2 | 7.5 | 1 x 32 SSD | - | - |
m3.xlarge | 4 | 15 | 2 x 40 SSD | Yes | - |
m3.2xlarge | 8 | 30 | 2 x 80 SSD | Yes | - |
r3.large | 2 | 15.25 | 1 x 32 SSD | - | - |
r3.xlarge | 4 | 30.5 | 1 x 80 SSD | Yes | - |
r3.2xlarge | 8 | 61 | 1 x 160 SSD | Yes | - |
r3.4xlarge | 16 | 122 | 1 x 320 SSD | Yes | - |
r3.8xlarge | 32 | 244 | 2 x 320 SSD | - | - |
In all AWS instance types, Stash only supports "large" and higher instances. "Micro", "small", and "medium" sized instances do not meet Stash's minimum hardware requirements and are not recommended in production environments.
Stash does not support D2 instances, Burstable Performance (T2) Instances, or Previous Generation Instances.
In any instance type with available Instance Store device(s), a Stash instance launched from the Atlassian Stash AMI will configure one Instance Store to contain Stash's temporary files and caches. Instance Store can be faster than an EBS volume but the data does not persist if the instance is stopped or rebooted. Use of Instance Store can improve performance and reduce the load on EBS volumes. See Amazon EC2 Instance Store for more information.
This section is for advanced users who wish to monitor the resource consumption of their instance and use this information to guide instance sizing.
The above recommendations provide guidance for typical workloads. The resource consumption of every Stash instance, though, will vary with the mix of workload. The most reliable way to determine if your Stash instance is under- or over-provisioned in AWS is to monitor its resource usage regularly with Amazon CloudWatch. This provides statistics on the actual amount of CPU, I/O, and network resources consumed by your Stash instance.
The following simple example BASH script uses
to gather CPU, I/O, and network statistics and display them in a simple chart that can be used to guide your instance sizing decisions.
When run on a typical Stash instance, this script produces charts such as the following:
You can use the information in charts such as this to decide whether CPU, network, or I/O resources are over- or under-provisioned in your instance.
If your instance is frequently saturating the maximum available CPU (taking into account the number of cores in your instance size), then this may indicate you need an EC2 instance with a larger CPU count. (Note that the CPU utilization reported by Amazon CloudWatch for smaller EC2 instance sizes may be influenced to some extent by the "noisy neighbor" phenomenon, if other tenants of the Amazon environment consume CPU cycles from the same physical hardware that your instance is running on.)
If your instance is frequently exceeding the IOPS available to your EBS volume and/or is frequently queuing I/O requests, then this may indicate you need to upgrade to an EBS optimized instance and/or increase the Provisioned IOPS on your EBS volume. See EBS Volume Types for more information.
If your instance is frequently limited by network traffic, then this may indicate you need to choose an EC2 instance with a larger available slice of network bandwidth.