2020-07-28 08:09:49 -04:00
---
stage: Enablement
group: Distribution
2020-11-26 01:09:20 -05:00
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
2020-07-28 08:09:49 -04:00
---
2021-01-28 01:08:59 -05:00
# Reference architecture: up to 1,000 users **(FREE SELF)**
2020-05-08 14:09:55 -04:00
2020-07-28 08:09:49 -04:00
This page describes GitLab reference architecture for up to 1,000 users. For a
full list of reference architectures, see
2020-05-08 14:09:55 -04:00
[Available reference architectures ](index.md#available-reference-architectures ).
2020-07-28 08:09:49 -04:00
If you need to serve up to 1,000 users and you don't have strict availability
requirements, a single-node solution with
2020-09-07 11:09:04 -04:00
[frequent backups ](index.md#automated-backups ) is appropriate for
2021-09-07 08:11:26 -04:00
many organizations.
2020-05-08 14:09:55 -04:00
2020-07-28 08:09:49 -04:00
> - **Supported users (approximate):** 1,000
2021-01-08 16:10:30 -05:00
> - **High Availability:** No. For a highly-available environment, you can
2021-04-23 08:09:52 -04:00
> follow a modified [3K reference architecture](3k_users.md#supported-modifications-for-lower-user-counts-ha).
2021-02-12 07:09:02 -05:00
> - **Test requests per second (RPS) rates:** API: 20 RPS, Web: 2 RPS, Git (Pull): 2 RPS, Git (Push): 1 RPS
2021-08-09 11:09:13 -04:00
> - **[Latest 1k weekly performance testing results](https://gitlab.com/gitlab-org/quality/performance/-/wikis/Benchmarks/Latest/1k)**
2020-07-28 08:09:49 -04:00
2021-04-23 08:09:52 -04:00
| Users | Configuration | GCP | AWS | Azure |
|--------------|-------------------------|----------------|--------------|----------|
| Up to 500 | 4 vCPU, 3.6 GB memory | `n1-highcpu-4` | `c5.xlarge` | `F4s v2` |
| Up to 1,000 | 8 vCPU, 7.2 GB memory | `n1-highcpu-8` | `c5.2xlarge` | `F8s v2` |
2020-07-28 08:09:49 -04:00
The Google Cloud Platform (GCP) architectures were built and tested using the
[Intel Xeon E5 v3 (Haswell) ](https://cloud.google.com/compute/docs/cpu-platforms )
CPU platform. On different hardware you may find that adjustments, either lower
or higher, are required for your CPU or node counts. For more information, see
our [Sysbench ](https://github.com/akopytov/sysbench )-based
2021-04-23 08:09:52 -04:00
[CPU benchmarks ](https://gitlab.com/gitlab-org/quality/performance/-/wikis/Reference-Architectures/GCP-CPU-Benchmarks ).
2020-07-28 08:09:49 -04:00
2020-09-24 08:09:37 -04:00
In addition to the stated configurations, we recommend having at least 2 GB of
2020-07-28 08:09:49 -04:00
swap on your server, even if you currently have enough available memory. Having
2020-09-24 08:09:37 -04:00
swap helps to reduce the chance of errors occurring if your available memory
2020-07-28 08:09:49 -04:00
changes. We also recommend configuring the kernel's swappiness setting to a
lower value (such as `10` ) to make the most of your memory, while still having
the swap available when needed.
2020-05-08 14:09:55 -04:00
## Setup instructions
2020-10-16 11:08:46 -04:00
To install GitLab for this default reference architecture, use the standard
2021-02-11 04:09:18 -05:00
[installation instructions ](../../install/index.md ).
2020-05-08 14:09:55 -04:00
2020-10-16 11:08:46 -04:00
You can also optionally configure GitLab to use an [external PostgreSQL service ](../postgresql/external.md )
or an [external object storage service ](../object_storage.md ) for added
2021-01-22 13:09:10 -05:00
performance and reliability at an increased complexity cost.
2020-09-22 05:09:43 -04:00
2021-01-29 07:09:29 -05:00
## Configure Advanced Search **(PREMIUM SELF)**
2020-09-22 05:09:43 -04:00
2020-10-16 11:08:46 -04:00
You can leverage Elasticsearch and [enable Advanced Search ](../../integration/elasticsearch.md )
for faster, more advanced code search across your entire GitLab instance.
2020-09-22 05:09:43 -04:00
2020-10-16 11:08:46 -04:00
Elasticsearch cluster design and requirements are dependent on your specific
data. For recommended best practices about how to set up your Elasticsearch
cluster alongside your instance, read how to
[choose the optimal cluster configuration ](../../integration/elasticsearch.md#guidance-on-choosing-optimal-cluster-configuration ).