Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

CLIENT_POOL_OOM Сетевое оборудование и VPN

Ошибка OpenVPN: MULTI: Out of memory during client pool allocation

Обновлено: 24.08.2026 · Официальная документация ↗
  • Сервер OpenVPN внезапно перестает принимать новые подключения с записью в логах: MULTI: Out of memory during client pool allocation.
  • Существующие клиенты теряют связь, новые сессии завершаются статусом Connection refused.
  • Системный мониторинг показывает исчерпание лимита файловых дескрипторов или памяти в slice службы systemd.

1. Переход на современную топологию подсети topology subnet

Устаревшая топология topology net30 выделяет виртуальную подсеть /30 (4 IP адреса) на каждого клиента, что мгновенно истощает адресный пул сервера.

В файле server.conf замените конфигурацию:

# Устаревшая конфигурация (не использовать):
# topology net30

# Оптимальная конфигурация:
topology subnet
server 10.8.0.0 255.255.240.0  # Подсеть /20 на 4094 хоста

2. Ограничение и контроль максимального количества сессий

Установите жесткий лимит одновременных клиентов исходя из доступной серверной RAM:

# Ограничить пул до 1024 клиентов
max-clients 1024

3. Снятие ограничений ресурсов в Systemd Unit

Серверные процессы OpenVPN могут упираться в лимиты cgroup TasksMax или LimitNOFILE. Создайте переопределение:

systemctl edit openvpn-server@server.service

Вставьте конфигурацию:

[Service]
LimitNOFILE=65535
LimitNPROC=65535
TasksMax=infinity
MemoryMax=4G
systemctl daemon-reload
systemctl restart openvpn-server@server.service

4. Очистка неактивных сессий (Keepalive tuning)

Уменьшите время удержания «мертвых» подключений в памяти сервера:

# Пинг каждые 10 секунд, отключение клиента при отсутствии ответа через 60 секунд
keepalive 10 60
💡 Практика специалистов: Для высоконагруженных инсталляций (>2000 сессий) запускайте несколько экземпляров OpenVPN на разных портах с балансировкой или переходите на многопоточный WireGuard / OpenVPN DCO (Data Channel Offload в ядре Linux).

Частые вопросы (FAQ)

Сколько оперативной памяти требуется одному клиенту OpenVPN?

В среднем один активный туннель в OpenVPN 2.5/2.6 требует от 250 КБ до 1 МБ оперативной памяти в зависимости от используемых шифров, буферов txqueuelen и размера таблицы маршрутов.

Чем topology subnet лучше topology net30?

Topology subnet работает как стандартный ethernet коммутатор: сервер забирает один адрес (например, 10.8.0.1), а каждый клиент получает ровно 1 адрес с единой маской подсети, экономя 75% IP-адресов.

Может ли утечка памяти в плагине авторизации вызвать эту ошибку?

Да, если используются сторонние скрипты auth-user-pass-verify или плагины LDAP/RADIUS с утечками дескрипторов, пул сессий быстро заполняется.

Как посмотреть текущее количество активных клиентов на сервере?

Настройте статус-лог в server.conf: status /var/log/openvpn/openvpn-status.log 10 и анализируйте секцию CLIENT LIST.

Полезные материалы
Рекомендуем