From 048baf588b623e42833cf97003273dc5cffe0e00 Mon Sep 17 00:00:00 2001 From: vitya Date: Fri, 28 Aug 2026 08:47:34 +0300 Subject: [PATCH] =?UTF-8?q?docs(runbook):=20bookva-es=20=D1=83=D1=80=D0=B5?= =?UTF-8?q?=D0=B7=D0=B0=D0=BD=20=D0=B4=D0=BE=20256m=20(Portainer=20=D1=81?= =?UTF-8?q?=D1=82=D0=B5=D0=BA=2037,=20=D0=B4=D0=BE=D1=81=D1=82=D1=83=D0=BF?= =?UTF-8?q?=20=D0=B5=D1=81=D1=82=D1=8C),=20gotcha=205=20=D0=B8=D1=81=D0=BF?= =?UTF-8?q?=D1=80=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .wiki/concepts/books-vds-memory-optimize-runbook.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.wiki/concepts/books-vds-memory-optimize-runbook.md b/.wiki/concepts/books-vds-memory-optimize-runbook.md index f2b7706..eff4cb8 100644 --- a/.wiki/concepts/books-vds-memory-optimize-runbook.md +++ b/.wiki/concepts/books-vds-memory-optimize-runbook.md @@ -27,8 +27,8 @@ process (mongod) score ~114`). Симптом-задача — «ozon fbs produc - **mongo (БД sched):** `books-job-scheduler-mongo` = `172.20.0.5:27017`, image `mongo:4.2`, БД `agendaDb` (sched-задачи: `sched_tasks`, `sched_schedules`, `sched_runs`). Source-of-truth compose: `/usr/docker/books-job-scheduler/docker-compose.yml` (**files-based**, НЕ Portainer-kzntsv). -- **ES:** `elasticsearch` (`/usr/docker/elasticsearch/docker-compose.yml`, `ES_JAVA_OPTS=-Xmx256m`), - `bookva-es` (Portainer/hidden — см. gotchas, `ES_JAVA_OPTS=-Xmx512m`). +- **ES:** `elasticsearch` (стек 33, `/usr/docker/elasticsearch/docker-compose.yml`, `ES_JAVA_OPTS=-Xmx256m`), + `bookva-es` (**Portainer стек 37, endpoint 1**; `ES_JAVA_OPTS` урезан 512m→`-Xmx256m`). - **CI-остатки:** `buildx_buildkit_builder-*` (`moby/buildkit:buildx-stable-1`), удалены. ## Диагностика (как понять, что это OOM) @@ -60,7 +60,8 @@ docker rm -f buildx_buildkit_builder-1ba06752-bf56-4b50-88c5-ce1b48f44a4e0 build ``` ### 3. Урезать ES heap (вторично; elasticsearch уже 256m) -`bookva-es` → `ES_JAVA_OPTS=-Xms256m -Xmx256m` (через его деплой; см. gotchas). +`bookva-es` → `ES_JAVA_OPTS=-Xms512m -Xmx512m` → `-Xms256m -Xmx256m`. +Сделано: Portainer PUT стека 37 (`PUT /api/stacks/37?endpointId=1` с реконструированным compose). Verify: `docker logs bookva-es | grep heap` → `heap size [256mb]`. ## Verify / smoke @@ -80,7 +81,7 @@ docker rm -f buildx_buildkit_builder-1ba06752-bf56-4b50-88c5-ce1b48f44a4e0 build 2. **Управление books VDS — файловые compose** `/usr/docker/*/docker-compose.yml`, НЕ Portainer-kzntsv. `portainer.kzntsv.site` endpoints — только `primary`+`stostayer`, книг там нет. Свой Portainer на books VDS — без host-port (нестандартно), напрямую не доступен. **Канон kzntsv «всё через Portainer» на книги не распространяется.** 3. **`com.docker.compose.project.config_files=/data/compose/22`** (label) — старый путь Portainer; `/data/compose/*` на диске НЕ существует. Реальный источник — `/usr/docker/*/docker-compose.yml`. 4. **compose-файлы в CRLF** (`\r\n`) — python-патч учитывать line-ending (иначе needle не матчит). -5. **`bookva-es`** — deploy неоднозначен (нет локального compose, `/data/compose/37` нет; управляется скрытым механизмом) — править осторожно, только при понимании деплоя. +5. **`bookva-es`** — **Portainer стек 37 (endpoint 1)**. Доступ есть: `BOOKS_PORTAINER_URL` + `BOOKS_PORTAINER_API_KEY` из `pass books-vds/full-env`. НО `GET /api/stacks/:id` НЕ отдаёт `stackFileContent` (в этой версии Portainer), поэтому compose реконструируется из `docker inspect` и обновляется через `PUT` стека. Не менять вслепую без этих данных. 6. **mongo warning XFS** — предупреждение, не ошибка (данные на ext4). 7. **`command` массив** в compose: `command: ["mongod", "--wiredTigerCacheSizeGB", "0.25"]` — строку тоже можно, но список надёжнее.