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
Источник: переведённый раздел о сайзинге из внутреннего документа вендора