Files
ozone-tech_owl_prime/docs/SERVER_CAPACITY_REPORT.md
Даня Архипов 985f7c327d feat: maximize sorter demo realism and add safe agent MVP
Wire live classifyItem into continuous playback, add jam/E-stop cases,
presenter controls (seek/speed/hotkeys), quality modes, demo scripts,
audit docs, and a verify-only autonomous agent CLI with hard safety limits.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-15 16:53:35 +00:00

9.7 KiB
Raw Blame History

Отчёт о ёмкости сервера

Хост: OwlPrime (контейнеризованный Ubuntu 24.04)
Дата измерений: 2026-07-15
Приложение: OZON Tech Sorter Simulation → nginx 127.0.0.1:3100, tunnel → https://arhipovdan.ru/

Легенда типов данных: Измерено = получено диагностикой на сервере; Оценка = вывод по мощности без полного бенчмарка нагрузки.


1. Точные характеристики сервера

Ресурс Фактическое значение Тип
CPU Intel i5-9400F, 6 ядер, 2.9–4.1 GHz Измерено
RAM 15 GiB (≈13 GiB available) Измерено
Swap 15 GiB Измерено
Диск NVMe ~452 G, ~201 G свободно (~54% used) Измерено
GPU 2× NVIDIA GTX 1080 8 GB, driver 580.126.09, CUDA 13.0 Измерено
GPU load idle Измерено
Load average ~0.5–0.6 Измерено
OS Ubuntu 24.04 (containerized) Измерено
Node (build env) 20.20.2 Измерено
Docker CLI в этой среде отсутствует Измерено
PM2 отсутствует Измерено
App listen nginx 127.0.0.1:3100 Измерено
Public cloudflared → https://arhipovdan.ru/ Измерено
Git repo /home/coder/arhipovdan/app Измерено

2. Текущая нагрузка

Показатель Значение Вывод
Load avg 0.5–0.6 при 6 cores Большой запас CPU
GPU idle Можно зарезервировать под LLM/CV, но с осторожностью
Disk free ~201 G Достаточно для node_modules, dist, Playwright cache, артефактов агента
Swap 15 GiB Есть подушка, но swap thrash недопустим для демо

Оценка: сервер сейчас в «лёгком» режиме (статика nginx + tunnel). Основная 3D-нагрузка — на клиентском WebGL, не на сервере.


3. Доступные ресурсы (безопасный остаток)

Ресурс Оценка свободного бюджета Тип
CPU 4–5 ядер можно отдавать фону при лимите 1 тяжёлого worker Оценка
RAM ~8–10 GiB «мягкий» бюджет до давления на swap Оценка
VRAM (2×8 GB) теоретически хватает на 7B quant; на практике тяжело и конкурирует Оценка
Disk десятки GB под кэши/отчёты без риска Оценка

4. Допустимые фоновые процессы

Процесс Допустимо 24/7? Условия
nginx + cloudflared (prod static) Да Без изменения без явного deploy
Vite preview :3101 (demo) Краткосрочно Не путать с prod :3100
Vitest / build по запросу Да Последовательно, не параллельно с LLM
Playwright Chromium (1 worker) Да, по расписанию Не во время живого показа жюри
Agent MVP (verify-only) Да, с лимитами См. ниже
Локальная LLM 7B+ Только эксперименты Предпочтительно внешний API
CV training Нет как 24/7 Вынести на dedicated GPU / внешний
Server-side Three.js offscreen Возможно, не нужно Клиентский WebGL достаточен

5. Возможность локальных моделей (LLM)

Вариант Вердикт Комментарий
Локальная 7B+ на 2×1080 Возможна технически, тяжело VRAM суммарно 16 GB; квантизация нужна; CPU/RAM конкурируют с Playwright
Внешний LLM API Рекомендуется Hybrid Variant C
Полностью локальный агент (Variant A) Не рекомендуется на этом хосте Риск OOM / деградации демо

Вывод: локальный инференс — опциональный research-path; production-агент должен использовать внешний API с бюджетом.


6. Возможность Playwright / Chromium

Критерий Вердикт
CPU + RAM Достаточно (Измерено ресурсы; Оценка нагрузки)
Параллелизм 1 worker
24/7 непрерывный прогон Нежелателен; лучше nightly / по событию
Конфликт с живой демо Высокий — не запускать во время показа

7. Возможность автономного агента

Однозначный вывод: возможен с ограничениями.

Параметр Лимит
Parallel workers 1
LLM Hybrid (внешний API primary)
Auto merge to main Запрещено
Auto production deploy Запрещено
Режим MVP verify-only (dry-run / run-once), без auto-patch
Kill switch agent/state/KILL

Подробности: AI_AGENT_SAFETY_LIMITS.md, AUTONOMOUS_AI_AGENT_ARCHITECTURE.md.


8. Рекомендуемые лимиты

Лимит Значение Источник
maxParallelWorkers 1 Agent MVP + ёмкость
maxCycleMinutes 25 agent/cli.mjs LIMITS
maxChangedFiles 12 Agent LIMITS
maxDiffLines 800 Agent LIMITS
dailyLlmBudgetUsd 5 Agent LIMITS
Playwright workers 1 Capacity
CPU soft cap для агента ≤50% одного ядра в idle-poll; burst на test/build Оценка
RAM soft cap агент+Chromium ≤4 GiB Оценка
Запрет merge main, prod deploy, чтение секретов в логи Policy

9. Режимы эксплуатации

Режим Что запущено Параллелизм Назначение
Минимальный безопасный nginx :3100 + tunnel 0 background jobs Стабильный публичный показ
Оптимальный + редкие agent dry-run, nightly tests 1 Поддержание качества
Максимальный + Playwright 1w + внешний LLM 1 Исследования (не во время демо)
Демонстрация Только prod или preview; агент STOP 0 Живое жюри
Автономное AI-улучшение Agent + external LLM, ветки feature/*, no deploy 1 Улучшения с human gate

10. Сводная таблица ёмкости

Ресурс Фактическое значение Текущая нагрузка Безопасный лимит Вывод
CPU 6c i5-9400F load ~0.5–0.6 1 тяжёлый worker Запас есть
RAM 15 GiB ≈13 available низкая ≤4 GiB агент+browser OK
Swap 15 GiB — не давить Избегать thrash OK как подушка
Disk ~452G ~201G free 54% used Оставить ≥50G free OK
GPU 2×1080 idle 0% Не для prod demo loop LLM/CV опционально
Playwright — нет 1 worker Да
Agent 24/7 — MVP с ограничениями Да
Local LLM 7B+ — нет эксперимент Тяжело; лучше API
CV training — нет external Не на этом хосте 24/7
Server 3D — нет не требуется Клиент WebGL

11. Риски ёмкости

Риск Вероятность Влияние Митигация
OOM при локальной LLM + Playwright Средняя Падение демо Не совмещать; API LLM
Swap thrash во время показа Низкая Лаги tunnel/nginx Режим «Демонстрация» = stop agent
Disk fill артефактами Низкая Сборка падает Ротация agent/reports, screenshot dirs
Старый dist на :3100 Высокая (процесс) Жюри видит не то Явный redeploy после merge
Нет docker CLI здесь Факт Сложнее ops Документировать внешний deploy path

12. Нужен ли дополнительный сервер?

Вопрос Ответ
Отдельный staging Желателен при частом агенте; на текущем хосте можно эмулировать preview :3101
Dedicated GPU server Да, если цель — CV training / тяжёлый local LLM
Доп. сервер для static demo Нет — текущий nginx достаточен

Итог: для demo + ограниченного агента текущий сервер достаточен. Для тяжёлого ML — вынести.