Перейти к основному контенту

JumpServer Panda: расчет системных требований

Компонент Panda публикует виртуальные приложения (веб-браузер, DBeaver и др.) на базе Linux-контейнеров — без сервера удалённых рабочих столов Windows. Сайзинг здесь принципиально другой, чем для основного JumpServer: там единица нагрузки — RDP/SSH-сессия через прокси, здесь — отдельный Docker-контейнер на каждую пользовательскую сессию виртуального приложения.

Ниже — переведённые данные нагрузочного тестирования вендора и формула для расчёта, оформленные отдельной статьей.


Минимальные требования к серверу

  • 4 vCPU / 8 ГБ ОЗУ — стартовая конфигурация. При более низкой возможны сбои и деградация производительности.
  • Docker с доступным реестром образов (или заранее вручную загруженные образы приложений).
  • Свободный диапазон портов под контейнеры приложений — не должен пересекаться с другими сервисами хоста.

Схема развёртывания:

  • Встроенная — сервер, на котором развёрнут JumpServer, сам является сервером публикации виртуальных приложений. Делит ресурсы с ядром JumpServer.
  • Внешняя — отдельный, выделенный сервер публикации; Panda и контейнеры приложений вынесены за пределы сервера JumpServer.

Потребление памяти на одну сессию (по данным тестирования)

ПриложениеСценарийRAM на контейнерПримечание по CPU
Panda (сам компонент)минимальноминимально
Chromeодна страница≈ 300 МБ3–11% ядра на контейнер
Chromeвидео / потоковое≈ 500 МБпотоковое видео сильно подвисает
DBeaverстатическая страница≈ 450 МБ

Во всех сценариях память становится узким местом раньше CPU — именно её объём определяет предельное число одновременных сессий на сервере.


Эталонная таблица вендора: проверенные конфигурации

Тестовый стенд: CentOS 7.9, Intel(R) Xeon(R) Gold 5117 CPU @ 2.00GHz, конфигурации 4C8G и 4C16G.

Способ установкиКонфигурацияПриложениеМакс. одновременных сессийРекомендуемая нагрузка
Встроенная Panda4C8GChrome (одна страница)85
Встроенная Panda4C16GChrome (одна страница)3024
Внешняя Panda4C8GChrome (одна страница)2016
Встроенная Panda4C8GDBeaver85
Встроенная Panda4C16GDBeaver1612
Внешняя Panda4C8GDBeaver1612

«Максимум» — предел, при котором занятость памяти достигает ~80% (порог теста), остальные компоненты стенда в этот момент были под низкой нагрузкой. «Рекомендуемая нагрузка» — тот же предел с запасом на реальные фоновые процессы (обычно ≈ 75–80% от максимума).

Обратите внимание: на одинаковой конфигурации 4C8G внешняя схема выдерживает в 2–2.5 раза больше сессий Chrome, чем встроенная (20 против 8) — потому что не конкурирует за память с ядром JumpServer, PostgreSQL, Redis и остальными компонентами.


Формула для конфигураций, не покрытых таблицей

Таблица вендора выше — основной ориентир для сайзинга. Если нужной комбинации в ней нет, для грубой оценки можно интерполировать:


Доступно_ГБ   = RAM_сервера_ГБ × 0.8 − Резерв_ГБ

Резерв_ГБ     = 4   (встроенная Panda: хост делится с ядром JumpServer/PostgreSQL/Redis)
              = 1   (внешняя Panda: выделенный сервер, только Docker + Panda)

Сессий        = Доступно_ГБ × 1024 / RAM_на_сессию_МБ   # 300 / 500 / 450 — из таблицы выше

Рекомендуемо  = Сессий × 0.75

Формула откалибрована по строкам с Chrome (даёт результат, близкий к таблице вендора, например 4C8G встроенная → 8, 4C16G встроенная → ~29–30). Для DBeaver разброс в исходных тестах больше — там формула даёт лишь порядок величины, и приоритет всегда за таблицей вендора.


Ограничения, которые нужно учитывать при выборе, что переводить в виртуальные приложения

  • Копирование/вставка через буфер обмена не поддерживается — возможны искажения символов и подвисания.
  • Управление файлами (загрузка/выгрузка) не поддерживается.
  • DBeaver в виде виртуального приложения пока не рекомендуется для продакшена: низкая плавность интерфейса и невозможность импорта/экспорта SQL-файлов через буфер обмена или файловый менеджер. Для доступа к базам данных предпочтительнее RDP/RemoteApp-сервер публикации (сайзинг — в jumpserver-sizing-guide.md).
  • Рекомендуемые сценарии для Chrome-приложений: интерфейсы управления сетевым оборудованием, веб-консоли систем виртуализации (vCenter, PVE).
  • Требуют дальнейшей оптимизации: страницы с видео/видеонаблюдением, разделы с импортом/экспортом файлов.

Обслуживание после развёртывания

После первичной установки часто разрастается buff/cache, что заметно снижает производительность сервера публикации. Рекомендуется однократно очистить кэш сразу после инициализации:


sync
echo 3 > /proc/sys/vm/drop_caches

Шпаргалка


RAM на сессию:        300 МБ (Chrome, 1 страница) | 500 МБ (Chrome, видео) | 450 МБ (DBeaver)
Резерв хоста:          4 ГБ (встроенная Panda) | 1 ГБ (внешняя Panda)

Доступно      = RAM_сервера × 0.8 − Резерв
Сессий        = Доступно × 1024 / RAM_на_сессию
Рекомендуемо  = Сессий × 0.75

Эталон вендора (4C8G / 4C16G, CentOS 7.9):
  Встроенная, 4C8G,  Chrome  → макс 8,  рекомендовано 5
  Встроенная, 4C16G, Chrome  → макс 30, рекомендовано 24
  Внешняя,    4C8G,  Chrome  → макс 20, рекомендовано 16
  Встроенная, 4C8G,  DBeaver → макс 8,  рекомендовано 5
  Встроенная, 4C16G, DBeaver → макс 16, рекомендовано 12
  Внешняя,    4C8G,  DBeaver → макс 16, рекомендовано 12

Источник: переведённый раздел о сайзинге из внутреннего документа вендора