docs: README и docs приведены к реализации (#50)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
437ea27be7
commit
a399f7f8cc
4 files changed
+130
-81
No files matched your search
+10
-3
@@ -51,6 +51,14 @@ docker compose exec api sh -c 'rm -rf /app/extra/user_data_dir/*'
|
||||
- `restart: unless-stopped`.
|
||||
- `.env` подключается, если существует (шаблон — `env.example`).
|
||||
|
||||
## Переменные окружения приложения
|
||||
|
||||
| Переменная | По умолчанию | Описание |
|
||||
|---|---|---|
|
||||
| `BROWSER_SLOTS` | `10` | сколько Chrome работает параллельно; сверх — `503` |
|
||||
| `NO_SLOTS_RETRY_AFTER` | `5` | значение `Retry-After` (с) в ответе `503` |
|
||||
| `LOG_LEVEL` | `INFO` | `DEBUG` — полный дамп запроса/ответа (секреты клиента маскируются) |
|
||||
|
||||
## Нагрузка
|
||||
|
||||
Замер: `freelancehunt.com/projects` за Cloudflare Turnstile, `captcha_type: cloudflare`, ожидание списка проектов,
|
||||
@@ -73,9 +81,8 @@ docker compose exec api sh -c 'rm -rf /app/extra/user_data_dir/*'
|
||||
на челлендже).
|
||||
- Память — около **0,5–0,6 ГБ** на браузер.
|
||||
- Правило подбора: `BROWSER_SLOTS ≈ число ядер`, `API_MEM_LIMIT ≈ 0,6 ГБ × BROWSER_SLOTS + 1 ГБ`.
|
||||
Пример: сервер 4 ядра / 8 ГБ → 3–4 слота; сейчас `BROWSER_SLOTS = 10` зашит в `src/main.py` и рассчитан
|
||||
на ~10–12 ядер.
|
||||
- Сверх `BROWSER_SLOTS` запросы сразу получают `No slots available`, не ставятся в очередь.
|
||||
Пример: сервер 4 ядра / 8 ГБ → 3–4 слота. `BROWSER_SLOTS` задаётся в `.env` (по умолчанию 10 — на ~10–12 ядер).
|
||||
- Сверх `BROWSER_SLOTS` запросы сразу получают `503` с `code: no_slots`, не ставятся в очередь.
|
||||
|
||||
Повторить замер:
|
||||
|
||||
|
||||
Reference in new issue
Block a user