> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xorlab.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Pages under /latest/ document the current release. Paths that begin with a version number, for example /10.0/, are frozen snapshots of superseded releases kept for reference only — never present their instructions as current. If the reader's version is unknown, answer from /latest/ and say which version the answer describes.
> xorlab is deployed on-premises, hybrid, or as a cloud service, and integrates with either Microsoft 365 or on-premises mail infrastructure. Configuration steps often differ between these. State which deployment and integration mode an instruction applies to instead of presenting one as universal.
> Distinguish inline mode from monitoring mode when describing anything that acts on email. Monitoring mode observes a copy and cannot block or quarantine; inline mode routes mail through xorlab and can.
> Write the product name as lowercase 'xorlab'. Use the documented component names: xorlab Control Center (XCC), xorlab MTA, xorlab Sandbox (DANA), xorlab Natural Language Understanding (NLU). After the first mention, use the short forms XCC, MTA, Sandbox, and NLU. Do not use DANA as a standalone name for the Sandbox, but keep it where it is a literal string in configuration keys, container names, and hostnames.
> Do not invent configuration keys, rule parameters, list names, log properties, or API fields. If a value is not present in this documentation, say that it is not documented rather than guessing.

# VM Resource Configuration

All XCC and MTA values are pre-adjusted to match the expected sizing, based on the average number of emails received per day as reported by the customer. The `reputationComplexityFactor` and `smtpd_client_connection_count_limit` are set to the default values and and should only be changed when performance tuning is needed.

If the default values do not match your sizing profile, update them accordingly, and restart the corresponding component as described in *[Operation Guide](/9.0/operation-guide#mta_1)*.

|                | **Extra Small** | **Small** | **Medium** | **Large** | **Extra Large** |
| :------------: | :-------------: | :-------: | :--------: | :-------: | :-------------: |
| **Emails/Day** |      \<10k      |  10k-25k  |  25k-100k  | 100k-300k |    300k-1000k   |

## XCC

* **XCC\_START\_PARAMS** (`/etc/xorlab/xcc/backend/backend.env`)

  `XCC_START_PARAMS=-com.twitter.finagle.netty4.numWorkers=N`, where N equals:

  | **Extra Small** | **Small** | **Medium** | **Large** | **Extra Large** |
  | :-------------: | :-------: | :--------: | :-------: | :-------------: |
  |        32       |     32    |     64     |    128    |       128       |

* **XCC\_JVM\_ARGS** (`/etc/xorlab/xcc/backend/backend.env`)

  | **Extra Small** | **Small** | **Medium** | **Large** | **Extra Large** |
  | :-------------: | :-------: | :--------: | :-------: | :-------------: |
  |      -Xmx6g     |   -Xmx6g  |   -Xmx8g   |  -Xmx10g  |     -Xmx10g     |

* **ES\_JAVA\_OPTS** (`/etc/xorlab/elastic/docker-compose.yml`)

  <Warning>
    **Values in the table are not ranges! Each is a single value in the form of `-Xms6g -Xmx6g` which sets both the initial and maximum heap size allocated to the Java Virtual Machine**
  </Warning>

  | **Extra Small** |   **Small**   |    **Medium**   |    **Large**    | **Extra Large** |
  | :-------------: | :-----------: | :-------------: | :-------------: | :-------------: |
  |  -Xms6g -Xmx6g  | -Xms6g -Xmx6g | -Xms12g -Xmx12g | -Xms16g -Xmx16g | -Xms16g -Xmx16g |

* **REDIS\_MAXMEMORY** (`/etc/xorlab/xcc/.env`)

  | **Extra Small** | **Small** | **Medium** | **Large** | **Extra Large** |
  | :-------------: | :-------: | :--------: | :-------: | :-------------: |
  |       1GB       |    1GB    |     4GB    |    10GB   |       10GB      |

## MTA

* **CORE\_JVM\_ARGS** (`/etc/xorlab/activeguard/.env`)

  | **Extra Small** | **Small** | **Medium** | **Large** | **Extra Large** |
  | :-------------: | :-------: | :--------: | :-------: | :-------------: |
  |      -Xmx6g     |   -Xmx6g  |   -Xmx12g  |  -Xmx24g  |     -Xmx24g     |

## [Expert Editor](/9.0/./expert-editor)

* **reputationComplexityFactor** (`xcc.yml`)

  This factor roughly controls the granularity of the reputation complexity. The value of `50` is recommended for setups with less than **100** mailboxes.

  * Minimal value: `0`

  * Maximal value: `100`

  * Default value: `100`

* **smtpd\_client\_connection\_count\_limit** (`main.cfg.vmx.N`)

  Controls how many simultaneous connections any client is allowed to make to the Postfix service; useful only when handling very high volumes of mail traffic (**Extra Large** sizing and beyond).

  See the official [Postfix parameter documentation](https://www.postfix.org/postconf.5.html#:~:text=3.1%20and%20later.-,smtpd_client_connection_count_limit,-\(default%3A%2050\)) or [Postfix performance tuning guide](https://www.postfix.org/TUNING_README.html#:~:text=breaks%20the%20connection.-,Measures%20against%20clients%20that%20make%20too%20many%20connections,-Note%3A%20these%20features).
