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

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.

Способ установки Конфигурация Приложение Макс. одновременных сессий Рекомендуемая нагрузка
Встроенная Panda 4C8G Chrome (одна страница) 8 5
Встроенная Panda 4C16G Chrome (одна страница) 30 24
Внешняя Panda 4C8G Chrome (одна страница) 20 16
Встроенная Panda 4C8G DBeaver 8 5
Встроенная Panda 4C16G DBeaver 16 12
Внешняя Panda 4C8G DBeaver 16 12

«Максимум» — предел, при котором занятость памяти достигает ~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

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