Repository navigation
Remnawave Admin v2.6.2
Remnawave Admin v2.6.2
Критическое исправление производительности
При ~4000 онлайн-пользователях CPU был загружен на 97% (все 4 ядра), PostgreSQL выдавал deadlocks. После обновления нагрузка снизилась до 8%.
Устранение deadlocks в коллекторе подключений
- Заменена последовательная обработка подключений (per-connection loop) на batch upsert через
UNNEST+ON CONFLICT - Количество DB-запросов на batch снижено с ~1500-3200 до ~5
- Устранены
asyncpg.exceptions.DeadlockDetectedErrorпри конкурентных batch-запросах от нескольких нод
Оптимизация резолва пользователей
- Добавлен batch-резолв email → UUID и short_uuid → UUID (2 запроса вместо N)
- Удалён N+1 post-processing для auto-close подключений (перенесён внутрь batch upsert)
Новые индексы для user_connections
- Partial UNIQUE index на
(user_uuid, ip_address) WHERE disconnected_at IS NULL - Composite index на
(user_uuid, disconnected_at, connected_at DESC)
Прочие исправления
- Включён
--ws-secretв команду установки агента - Поддержка camelCase полей
isConnected/isDisabledпри фильтрации нод
Результат
| Метрика | До | После |
|---|---|---|
| DB-запросов на batch (500 conn) | ~1500-3200 | ~5 |
| Deadlocks | Постоянно | Устранены |
| CPU при 4000 юзерах | 97% | 8% |
Обновление
docker compose pull && docker compose up -d
docker exec -it <container_name> alembic upgrade headuser_connections.