mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-07 04:12:04 +00:00
docs: name the memory cap on small hosts and the shared connection pool
Getting started names the APP_MEMORY_LIMIT default and how to lower it on a 2 GB host; the scaling guide says that web and worker share one pool in the bundled single-container setup. The rollup comment names migration 0372, which carries the hourly-mean statistic.
This commit is contained in:
1 parent
da56177290
commit
2bbcce73e4
3 files changed
+12
-3
No files matched your search
@@ -13,7 +13,12 @@ already installed, longer if a TLS-fronted public hostname is in scope
|
||||
unchanged.
|
||||
- **2 GB RAM, 10 GB free disk.** The Postgres data volume grows with
|
||||
measurement history; the Apple Health import worker can briefly
|
||||
hold a 1.5 GB upload in `/tmp` while it parses.
|
||||
hold a 1.5 GB upload in `/tmp` while it parses. The app container is
|
||||
capped at `APP_MEMORY_LIMIT`, `1536m` by default (Node then sizes its
|
||||
heap at about 792 MB). On a 2 GB host that leaves too little for
|
||||
Postgres and the system, so set `APP_MEMORY_LIMIT=1g` in `.env`
|
||||
(a heap of about 524 MB); a long-used account then runs closer to
|
||||
that heap, and the weekly backup with it.
|
||||
- **Outbound HTTPS** to `ghcr.io` (image pulls) plus whichever
|
||||
integration endpoints you plan to enable (Withings, OpenAI, etc.).
|
||||
The opt-in environmental-context module additionally reaches
|
||||
|
||||
@@ -163,7 +163,11 @@ the knob as `DB_CONNECTION_LIMIT`, baked into `DATABASE_URL` as
|
||||
`connection_limit`; `DATABASE_POOL_MAX` remains a working explicit
|
||||
override. Resolution order: `DB_CONNECTION_LIMIT`, then
|
||||
`DATABASE_POOL_MAX`, then the `connection_limit` URL parameter, then
|
||||
the default of 20.
|
||||
the default of 20. In the bundled single-container setup
|
||||
(`HEALTHLOG_PROCESS_TYPE=all`) the web requests and the background
|
||||
worker run in one process and share that one Prisma pool, so a budget
|
||||
sized for the web traffic alone leaves the worker's jobs queueing for
|
||||
the same connections.
|
||||
|
||||
Plan total Postgres slots as **container_count × budget**.
|
||||
A stock Postgres 16 container ships with `max_connections = 100`, so
|
||||
|
||||
@@ -597,7 +597,7 @@ async function runRollupAggregate(
|
||||
* every reading, so the band and the windowed slope are untouched.
|
||||
*
|
||||
* Hours and days are UTC, matching the UTC day this tier buckets by; migration
|
||||
* 0373 applies the same statistic to rows stored before it.
|
||||
* 0372 applies the same statistic to rows stored before it.
|
||||
*/
|
||||
async function applyHourlyMeanDay(
|
||||
db: Pick<typeof prisma, "$queryRawUnsafe">,
|
||||
|
||||
Reference in new issue
Block a user