> For the complete documentation index, see [llms.txt](https://docs.iexexchanger.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.iexexchanger.com/help-center/administrirovanie/optimizaciya-proizvoditelnosti.md).

# Оптимизация производительности

Данная инструкция содержит рекомендации по настройке сервера для достижения максимальной производительности iEXExchanger.

Настройки предназначены для проектов, работающих на FastPanel, и позволяют повысить производительность сайта, административной панели, API, базы данных и серверной инфраструктуры.

{% hint style="warning" %}

### Важно

Перед внесением любых изменений рекомендуется:

* создать резервную копию файлов;
* создать резервную копию базы данных;
* сохранить текущие значения параметров;
* убедиться в наличии доступа к серверу по SSH.

Неправильная настройка может привести к нестабильной работе системы.
{% endhint %}

## Где находятся настройки

{% stepper %}
{% step %}

### Настройки PHP

Откройте FastPanel: **Управление → PHP**

<figure><img src="/files/0e4yBC7XTBWwG0QgkLPt" alt=""><figcaption></figcaption></figure>

Выберите используемую версию PHP.

<figure><img src="/files/lEGR0mRlEbvu6BZ6mjqM" alt=""><figcaption></figcaption></figure>

Рекомендуемая версия:

* PHP 8.4
  {% endstep %}

{% step %}

### Настройки MySQL / MariaDB

Откройте FastPanel: **Базы данных → Серверы баз данных**

<figure><img src="/files/eELBTNdfUKN43ELitqQI" alt=""><figcaption></figcaption></figure>

Нажмите кнопку действий возле используемого сервера базы данных и выберите:

<figure><img src="/files/wY1KprQVYoLwFujBsRz1" alt=""><figcaption></figcaption></figure>

Настроить переменные
{% endstep %}
{% endstepper %}

***

## Особенности настройки MySQL / MariaDB

Некоторые версии MySQL, MariaDB и панели управления позволяют использовать значения в удобном формате:

```ini
innodb_buffer_pool_size=2G
innodb_log_file_size=512M
```

Однако некоторые панели принимают только числовые значения в байтах.

В таком случае необходимо выполнить расчёт.

### Формула расчёта

```
1 MB = 1 048 576 байт
1 GB = 1 073 741 824 байта
```

#### Расчёт для мегабайт

```
Размер в MB × 1 048 576
```

#### Расчёт для гигабайт

```
Размер в GB × 1 073 741 824
```

#### Примеры

<table><thead><tr><th width="213.43359375">Размер</th><th>Значение в байтах</th></tr></thead><tbody><tr><td>256 MB</td><td>268435456</td></tr><tr><td>300 MB</td><td>314572800</td></tr><tr><td>512 MB</td><td>536870912</td></tr><tr><td>1 GB</td><td>1073741824</td></tr><tr><td>2 GB</td><td>2147483648</td></tr><tr><td>4 GB</td><td>4294967296</td></tr><tr><td>6 GB</td><td>6442450944</td></tr><tr><td>8 GB</td><td>8589934592</td></tr><tr><td>12 GB</td><td>12884901888</td></tr></tbody></table>

Если панель позволяет использовать суффиксы M и G, рекомендуется использовать именно их.

***

## Профиль «Минимальный»

Подходит для:

* тестовых проектов;
* небольших обменников;
* низкой нагрузки.

### Сервер

* 2 vCPU
* 4 GB RAM
* 40 GB NVMe SSD

### PHP 8.4

```ini
memory_limit=768M

post_max_size=200M
upload_max_filesize=200M

max_execution_time=60
max_input_time=60

max_input_vars=10000

realpath_cache_size=4096K
realpath_cache_ttl=600

opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=20000
```

### MySQL / MariaDB

```ini
innodb_buffer_pool_size=1G

innodb_log_file_size=256M

innodb_flush_log_at_trx_commit=2
innodb_flush_log_at_timeout=5

max_connections=200

thread_cache_size=25

table_open_cache=2048

tmp_table_size=64M
max_heap_table_size=64M
```

***

## Профиль «Рекомендуемый»

Подходит большинству клиентов iEXExchanger.

### Сервер

* 4 vCPU
* 8 GB RAM
* 80 GB NVMe SSD

### PHP 8.4

```ini
memory_limit=1500M

post_max_size=500M
upload_max_filesize=500M

max_execution_time=120
max_input_time=120

max_input_vars=20000

realpath_cache_size=8192K
realpath_cache_ttl=600

opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=32
opcache.max_accelerated_files=50000
```

### MySQL / MariaDB

```ini
innodb_buffer_pool_size=2G

innodb_log_file_size=512M

innodb_flush_log_at_trx_commit=2
innodb_flush_log_at_timeout=5

max_connections=300

thread_cache_size=50

table_open_cache=4096

tmp_table_size=128M
max_heap_table_size=128M

innodb_io_capacity=2000
innodb_io_capacity_max=4000
```

***

## Профиль «Высокая производительность»

Подходит для крупных обменников.

### Сервер

* 8 vCPU
* 16 GB RAM
* 160 GB NVMe SSD

### PHP 8.4

```ini
memory_limit=2000M

post_max_size=1000M
upload_max_filesize=1000M

max_execution_time=300
max_input_time=300

max_input_vars=30000

realpath_cache_size=16384K
realpath_cache_ttl=600

opcache.enable=1
opcache.memory_consumption=512
opcache.interned_strings_buffer=64
opcache.max_accelerated_files=100000
```

### MySQL / MariaDB

```ini
innodb_buffer_pool_size=6G

innodb_log_file_size=1G

innodb_flush_log_at_trx_commit=2
innodb_flush_log_at_timeout=5

max_connections=500

thread_cache_size=100

table_open_cache=10000

tmp_table_size=256M
max_heap_table_size=256M

innodb_io_capacity=4000
innodb_io_capacity_max=8000
```

***

## Профиль «Максимальная производительность»

Подходит для проектов с очень высокой нагрузкой.

Используется только опытными администраторами.

### Сервер

* 16+ vCPU
* 32+ GB RAM
* Enterprise NVMe SSD

### PHP 8.4

```ini
memory_limit=3000M

post_max_size=2000M
upload_max_filesize=2000M

max_execution_time=600
max_input_time=600

max_input_vars=50000

realpath_cache_size=32768K
realpath_cache_ttl=600

opcache.enable=1
opcache.memory_consumption=1024
opcache.interned_strings_buffer=128
opcache.max_accelerated_files=100000
```

### MySQL / MariaDB

```ini
innodb_buffer_pool_size=12G

innodb_log_file_size=2G

innodb_flush_log_at_trx_commit=2
innodb_flush_log_at_timeout=5

max_connections=1000

thread_cache_size=200

table_open_cache=20000

tmp_table_size=512M
max_heap_table_size=512M

innodb_io_capacity=10000
innodb_io_capacity_max=20000
```

***

## Оптимизация Nginx

Файл конфигурации:

```
/etc/nginx/nginx.conf
```

Рекомендуемые параметры:

```nginx
worker_processes auto;

worker_rlimit_nofile 65535;

events {
    worker_connections 4096;
    multi_accept on;
}

http {
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    client_max_body_size 2000M;
    gzip on;
    gzip_comp_level 6;
    gzip_min_length 1000;
}
```

***

## Настройка Swap

Для серверов до 8 GB RAM рекомендуется создать Swap.

Проверка:

```bash
free -h
```

Создание Swap 2 GB:

```bash
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
```

Проверка:

```bash
swapon --show
```

***

## Мониторинг сервера

Проверка памяти:

```bash
free -h
```

Проверка дисков:

```bash
df -h
```

Проверка процессов:

```bash
top
```

Установка htop:

```bash
apt install htop -y
```

Запуск:

```bash
htop
```

***

## Рекомендуемый профиль для большинства клиентов

Для большинства проектов iEXExchanger рекомендуется использовать следующую конфигурацию:

### Сервер

* 4 vCPU
* 8 GB RAM
* 80 GB NVMe SSD

### PHP

```ini
memory_limit=1500M
post_max_size=500M
upload_max_filesize=500M
max_execution_time=120
opcache.memory_consumption=256
```

### MySQL / MariaDB

```ini
innodb_buffer_pool_size=2G
innodb_log_file_size=512M
innodb_flush_log_at_trx_commit=2
max_connections=300
```

Данная конфигурация обеспечивает оптимальный баланс между производительностью, потреблением ресурсов и стабильностью работы iEXExchanger.


---

# 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://docs.iexexchanger.com/help-center/administrirovanie/optimizaciya-proizvoditelnosti.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.
