> For the complete documentation index, see [llms.txt](https://cortex-docs.paloaltonetworks.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cortex-docs.paloaltonetworks.com/cortex-xsoar-6-multi-tenant-guides/6.14/learn-about-mult-tenant/plan-your-multi-tenant-deployment/multi-tenant-sizing-requirements.md).

# Multi-Tenant Sizing Requirements

Exact sizing specifications vary depending on several factors, including the number of incidents ingested, the number of indicators in the system, playbook usage, and so on.

#### Hardware Requirements

Each host and tenant is a standalone instance of the Cortex XSOAR server and must meet the minimum sizing recommendations for a production environment.

| Component | Dev Environment Minimum | Production Minimum                      |
| --------- | ----------------------- | --------------------------------------- |
| CPU       | 8 CPU cores             | 16 CPU cores                            |
| Memory    | 16 GB RAM               | 32 GB RAM                               |
| Storage   | 500 GB SSD              | 1 TB SSD with minimum 3k dedicated IOPS |

#### Example Multi-Tenant Deployment

This example details the sizing requirements for a single host that has two tenants.

The hardware requirements for this deployment are:

| Component | Calculation                            | Production Requirements                 |
| --------- | -------------------------------------- | --------------------------------------- |
| CPU       | (1 host plus 2 tenants) x 16 CPU cores | 48 CPU cores                            |
| Memory    | (1 host plus 2 tenants) x 32 GB RAM    | 96 GB RAM                               |
| Storage   | Production Minimum                     | 1 TB SSD with minimum 3k dedicated IOPS |

#### Example Sizing Comparison Between Elasticsearch and BoltDB for Known Capacity

In this example where the number of incidents and commands is known, the sizing requirements for Elasticsearch and BoltDB are based on:

* approximately 50 incidents per day, per tenant, with each incident running 50 commands/scripts.
* For engines:
  * The specifications for each engine are 16 CPU and 32 GB RAM.
  * The engine is defined for each integration, including those that fetch incidents.
  * Incidents were fetched using the Splunk integration and executed using [this playbook](https://xsoar.pan.dev/docs/reference/playbooks/splunk-indicator-hunting).

| Database      | Server CPU | Server Memory | Server IOPS | Number of Accounts w/ Engine | Number of Accounts w/o Engine |
| ------------- | ---------- | ------------- | ----------- | ---------------------------- | ----------------------------- |
| Elasticsearch | 36 cores   | 72 GB         | N/A         | 54                           | 40                            |
| BoltDB        | 36 cores   | 72 GB         | 3000        | 52                           | 32                            |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://cortex-docs.paloaltonetworks.com/cortex-xsoar-6-multi-tenant-guides/6.14/learn-about-mult-tenant/plan-your-multi-tenant-deployment/multi-tenant-sizing-requirements.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
