perf: remote browser CPU / zombie optimization
- Add tini (init: true in compose) to reap orphan Chromium processes - Reduce screenshot push frequency (active 0.12→0.20s, idle 0.35→1.00s, deep idle 1.00→5.00s, backoff 0.60→2.00s) - Add 5s timeout to screenshot in WebSocket push loop - close() now wraps context.close() in asyncio.wait_for(10s) with browser.close() fallback on timeout - Two-phase close logging (closing → closed / close_failed) - Auth-capture sessions evicted after 10min TTL - shutdown() with timeout protection and logging - close_ok correctly tracks success through browser fallback path
This commit is contained in:
@@ -21,6 +21,9 @@ ENV PLAYWRIGHT_BROWSERS_PATH=/ms-playwright
|
||||
|
||||
RUN sed -i 's|http://deb.debian.org|https://mirrors.aliyun.com|g; s|http://security.debian.org|https://mirrors.aliyun.com|g' /etc/apt/sources.list.d/debian.sources
|
||||
|
||||
# Install tini as PID 1 to properly reap orphan Chromium zombie processes
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends tini && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# 系统依赖层:apt 包安装,缓存 deb 包避免重复下载
|
||||
RUN --mount=type=cache,target=/var/cache/apt \
|
||||
apt-get update \
|
||||
@@ -59,4 +62,5 @@ ENV DATABASE_URL=sqlite:////app/data/app.db
|
||||
|
||||
EXPOSE 8000
|
||||
|
||||
ENTRYPOINT ["tini", "--"]
|
||||
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]
|
||||
|
||||
Reference in New Issue
Block a user