mirror of
https://github.com/immich-app/immich.git
synced 2026-02-05 08:41:28 +03:00
[BUG] JavaScript heap out of memory #1474
Closed
opened 2026-02-05 01:59:57 +03:00 by OVERLORD
·
29 comments
No Branch/Tag Specified
main
fix/web-people-hidden-state
fix-filename-search-label
chore/yank-cloud-id
chore/oauth-labels
renovate/machine-learning
uhthomas/mobile-fix-app-bar-fade
feat/debug-schema
renovate/typescript-projects
fix/25803
feat/asset-file-apis
chore/translations
fix/web-switch-label-clickable
release/next
fix/timezones
fix/time-zone-upserts
midzelis/wip
push-zpwsovysllvn
push-nwxlpmyzkyrl
push-nvnkszuqwppm
renovate/github-actions
push-smstsuupsowp
refactor/adaptive_image
push-olwpzvrxnomt
push-lmxsupnmxspl
feat/web-chromecast-video-looping
feat/use-native-clients
renovate/flutter
fix/create-face-edited
fix/mobile-ios-mtls
docs/contributing
docs/mise-mobile
renovate/grafana-monorepo
feature/bottom-buttons-order
feat/immich-mobile-ui-showcase
refactor/consolidate-image-requests
renovate/connectivity_plus-7.x
renovate/major-vitest-monorepo
renovate/pypi-python-multipart-vulnerability
fix/mobile-people-query
sqlite_thumbs
feat/html-text
chore/no-macro-validation
refactor/purchase-store
uhthomas/mobile-fix-asset-jump
feat/pano-ocr
feat/shared-link-login
fix/database-backup-db-names
fix-keep-correct-ios-shared-album-asset
fix-memory-generation-and-display
feat/verify-permissions
refactor/album-service-small-tests
fix/ml-rocm-build
fix/flipped-dimensions-mobile
push-vpxwmwwxwnvw
fix-migration-width-height
refactor/more-queries
revert/prettier-translations
refactor/asset-service-queries
fix/locale-settings-desc
chore/add-debug-log
feat/edit-filters
shared-deep-link-handler
feat/mobile-editing
feat/thumbnail-native-clients
feat/platform-clients
feat/integrity-checks-izzy
fix/foreground-cloud-sync
feat/dynamic-layout
filter-by-person
feat/csp
refactor/sidebar
fix/disable-editing
fix/view-timeline-deeplink
image-zoom-on-slow-connection
fix-consider-dar-for-video-dimension
fix/merged-edited-assets
perf/optimize-album-sort
open-api-fix
feat/create-job-with-dto
use-toast-primary
feat/vitest-4
feat/ios-fastlane-match
match-signing
fix-update-time-update-timeline
chore/translation-keys
feat/modal-routes
feat/panorama-tiles
feature/mobile-view-asset-owner
feat/system-settings
feature/show-activity-count
better-info-in-asset-viewer
fix/all-people-count
feat/location-favorites
feature/rearrange-buttons-2
fix/download-storage-template
feat/kb-shortcuts-mobile
fix/people-count
push-qolzzzzxrvvn
chore/originals-in-asset-files
feat/asset-size-columns
ben/tree-a11y
new-search-filter-ui
refactor/expectSelectedReadonly
refactor/mobile-grdb
push-qvuktpxmkknu
feat/mobile-native-local-sync
refactor/timeline_ops
fix/scrubber_end
feat/version.txt
feat/context-menus
feat/server-chunked-uploads
refactor/virtualsegment
refactor/rename_daymonth_groups
fix/restrict-android-bg-worker
feat/android-periodic-worker
fix-remote-sync-clean-up
refactor/timeline_move_ops
renovate/mapbox-mapbox-gl-rtl-text-0.x
fix/timeline_split_selectable
feat/keyboard_actions_help_modal
feat/static_frontend
feat/notification-warnign-android
feat/plugins2
feat/plugins
test/create-workflow-token-action
fix/docs-force
debug/search-result-similarity
debug/cf-chunked-uploads
feat/eslint_rule
feat/search-filter-album/web
refactor/timeline_photostream
refactor/timelineasset_asset
feat/session-permissions
feat/timeline_photostream_assetnav
feat/timeline_minor_optimize
feat/timeline_perf_nocomp
feat/timeline_search_results_actions
feat/timeline_search_results_page
fix/timeline_padding
fix/timeline_search_reactivity_warnings
feat/timeline_scrollbar
feat/timeline_stream_withviewer
fix/timeline_back_forth_nav
refactor/timeline_photostream_component
fix/generated-files-checks
fix/locate-button-local
chore/base-image-mimalloc
refactor/timeline_assetlayout
refactor/timeline_selectable
refactor/timeline_aware_actions
refactor/timeline_monthsegment
feat/remove-old-pages
chore/deps-gradle
tmp_photostream
tmp/lcms
feat/mobile-dynamic-thumbnails
fix/mobile-finer-thumbnail-concurrency
refactor/timeline1
refactor/extract_photostream
refactor/rename_load_api
refactor/timeline2
refactor/timeline3
feat/multi-select-asset-viewer
feat-no-thumbhash-cache
refactor/asset_grid
feat/faster-access-checks
fix/18991
fix/19543
chore/temp-remove
fix/21419
feat/mobile-hdr-images
chore/update-mise-lockfile
feat/mise-server-checks
feat/mise-ci
feat/windows-2025
feat/dev_cli
refactor/mobile-migrate-clients
fix/map-theme
fix/require-checkbox
chore/use_swc
feat/efficient-thumbnail-decoding
refactor/mobile-thumbhash
refactor/mobile-thumbhash-new
fix/mobile-uncached-zoom
feat/beta-background-upload
fix/beta-timeline-memories-setting
fix/failed-uploads-not-removed
feat/mobile-shared-album
feat/groups
drift-map-page
drift-auth-user-sync
fix/disable-memory
feat/add-to-album-action
edit-date-time-action
drift-people-page
sqlite-remove-isIn
feat/inline-storage-columns
chore/required-reviewers
refact/asset-manager
fix/folder-sort
pnpm
feat/widget-multiple-server-urls
chore/medium-tests-dbname
fix/web-no-iterator-find
fix/map-pan-interruption
track-livephotos
timeline_events
chore/oxlint-migration
feat/maintenance-worker
feat/dav
chore/demo-snapshot
refactor/server-side-dedupe
feat/integrity-checks
dev/recognition-eval
lighter_buckets_test
perf/postgres-queue
postgres-queue
focus_rings
refactor/web-stores-1
refactor/add-to-taken
feat/sort-places
feat/sidecar-asset-file
vet
tmp/demo-snapshot-preview
fix/server-migration-file-extension
refactor/mobile-v2
fix/asset-update-race-condition
rknn-toolkit-lite2
refactor/mobile-split-up-search-page
feature/Add-rocm-support-for-machine-learning
feat/rocm
chore/async-hash-file
feat/shared-link-view-count
feat/rotation
feat/graphql
feat/job-ids
feat/ignore-library-permission-error
feat/docker-compose-builder
feat/kysely-typeorm
mobile/onboarding
no-video-player
fix/server-qsv-output-format
chore/server-geodata-tweaks
mobile/native-video-player-no-hero
feat/xxhash
fix/docs-concurrency
feat/preload-ml-textual-model
feat/local-tileserver
refactor/exif-orientation
original-path-infix
refactor/mobile/login-form-1
feat/server-editor-endpoints
fix/server-qsv-vbr
fix-mobile-db-problems
feat/ml-armnn-conversion
feat/mobile/backup-with-album-info
feat/fast-initial-sync-1
chore/handle-output_dims
feat/server-more-robust-generation
feat/unassign-faces
feat/shortcuts-on-asset-grid
feat/background-upload
feat/capacitor-mobile-app-poc
feat/server-nvenc-hw-decoding
release/v1.105
fix/mobile-fetch-non-archive
feat/fine-grained-access-controls
web/automation-ui
feat/mobile-server-endpoint-save-dropdown
feat/blurhash-thumbnail
object-storage
feat/memories-animations
dev/metrics
ml/tflite
feat/ml-export-cli
v2.5.3
v2.5.2
v2.5.1
v2.5.0
v2.4.1
v2.4.0
v2.3.1
v2.3.0
v2.2.3
v2.2.2
v2.2.1
v2.2.0
v2.1.0
v2.0.1
v2.0.0
v1.144.1
v1.144.0
v1.143.1
v1.143.0
v1.142.1
v1.142.0
v1.141.1
v1.141.0
v1.140.1
v1.140.0
v1.139.4
v1.139.3
v1.139.2
v1.139.1
v1.139.0
v1.138.1
v1.138.0
v1.137.3
v1.137.2
v1.137.1
v1.137.0
v1.136.0
v1.135.3
v1.135.2
v1.135.1
v1.135.0
v1.134.0
v1.133.1
v1.133.0
v1.132.3
v1.132.2
v1.132.1
v1.132.0
v1.131.3
v1.131.2
v1.131.1
v1.131.0
v1.130.3
v1.130.2
v1.130.1
v1.130.0
v1.129.0
v1.128.0
v1.127.0
v1.126.1
v1.126.0
v1.125.7
v1.125.6
v1.125.5
v1.125.4
v1.125.3
v1.125.2
v1.125.1
v1.125.0
v1.124.2
v1.124.1
v1.124.0
v1.123.0
v1.122.3
v1.122.2
v1.122.1
v1.122.0
v1.121.0
v1.120.2
v1.120.1
v1.120.0
v1.119.1
v1.119.0
v1.118.2
v1.118.1
v1.118.0
v1.117.0
v1.116.2
v1.116.1
v1.116.0
v1.115.0
v1.114.0
v1.113.1
v1.113.0
v1.112.1
v1.112.0
v1.111.0
v1.110.0
v1.109.2
v1.109.1
v1.109.0
v1.108.0
v1.107.2
v1.107.1
v1.107.0
v1.106.4
v1.106.3
v1.106.2
v1.106.1
v1.106.0
v1.105.1
v1.105.0
v1.104.0
v1.103.1
v1.103.0
v1.102.3
v1.102.2
v1.102.1
v1.102.0
v1.101.0
v1.100.0
v1.99.0
v1.98.2
v1.98.1
v1.98.0
v1.97.0
v1.96.0
v1.95.1
v1.95.0
v1.94.1
v1.94.0
v1.93.3
v1.93.2
v1.93.1
v1.93.0
v1.92.1
v1.92.0
v1.91.4
v1.91.3
v1.91.2
v1.91.1
v1.91.0
v1.90.2
v1.90.1
v1.90.0
v1.89.0
v1.88.2
v1.88.1
v1.88.0
v1.87.0
v1.86.0
v1.85.0
v1.84.0
v1.83.0
v1.82.1
v1.82.0
v1.81.1
v1.81.0
v1.80.0
v1.79.1
v1.79.0
v1.78.1
v1.78.0
v1.77.0
v1.76.1
v1.76.0
v1.75.2
v1.75.1
v1.75.0
v1.74.0
v1.73.0
v1.72.2
v1.72.1
v1.72.0
v1.71.0
v1.70.0
v1.69.0
v1.68.0
v1.67.2
v1.67.1
v1.67.0
v1.66.1
v1.66.0
v1.65.0
v1.64.0
v1.63.2
v1.63.1
v1.63.0
v1.62.1
v1.62.0
v1.61.0
v1.60.0
v1.59.1
v1.59.0
v1.58.0
v1.57.1
v1.57.0
v1.56.2
v1.56.1
v1.56.0
v1.55.1
v1.55.0
v1.54.1
v1.54.0
v1.53.0
v1.52.1
v1.52.0
v1.51.2
v1.51.1
v1.51.0
v1.50.1
v1.50.0
v1.49.0
v1.48.1
v1.48.0
v1.47.3
v1.47.2
v1.47.1
v1.47.0
v1.46.1
v1.46.0
v1.45.0
v1.44.0
v1.43.1
v1.43.0
v1.42.0_65-dev
v1.41.1_64-dev
v1.41.0_64-dev
v1.40.1_63-dev
v1.40.0_63-dev
v1.39.0_61-dev
v1.38.2_60-dev
v1.38.1_60-dev
v1.38.0_60-dev
v1.37.0_58-dev
v1.36.2_56-dev
v1.36.1_55-dev
v1.36.0_55-dev
v1.35.0_54-dev
v1.34.0_53-dev
v1.33.1_52-dev
v1.33.0_52-dev
v1.32.1_51-dev
v1.32.0_50-dev
v1.31.1_49-dev
v1.31.0_49-dev
v1.30.2_48-dev
v1.30.0_46-dev
v1.29.6_45-dev
v1.29.6_44-dev
v1.29.5_44-dev
v1.29.4_44-dev
v1.29.3_43-dev
v1.29.2_43-dev
v1.29.1_43-dev
v1.29.0_42-dev
v1.28.4_41-dev
v1.28.4_42-dev
v1.28.3_41-dev
v1.28.2_40-dev
v1.28.1_39-dev
v1.28.0_38-dev
v1.27.0_37-dev
v1.26.0_36-dev
v1.25.0_35-dev
v1.24.0_34-dev
v1.23.0_33-dev
v1.22.0_32-dev
v1.21.1_31-dev
v1.21.0_31-dev
v1.20.3_30-dev
v1.20.2_30-dev
v1.20.1_30-dev
v1.20.0_30-dev
v1.19.1_29-dev
v1.19.0_29-dev
v1.18.0_27-dev
v1.17.0_25-dev
v1.16.0_23-dev
v1.15.1_21-dev
v1.15.0_21-dev
v1.14.0_21-dev
v1.13.0_20-dev
v1.12.0_18-dev
v1.11.0_17-dev
v1.10.0_15-dev
v1.9.1_14-dev
v1.9.0_13-dev
v1.8.0_12-dev
v1.7.0_11-dev
v1.6.0_10-dev
v1.5.1+9-dev
v1.5.0+8-dev
v1.4.0+7-dev
v1.4.0+6-dev
v1.4.0-dev
v1.3.0-dev
v1.3.1-dev
v0.6-dev
v0.5-dev
v0.4-dev
v0.3-dev
v0.2-dev
first-android-release
No Label
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: immich-app/immich#1474
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @dtirer on GitHub (Oct 18, 2023).
The bug
The OS that Immich Server is running on
Debian Bookworm
Version of Immich Server
v1.82.0
Version of Immich Mobile App
v1.82.0
Platform with the issue
Your docker-compose.yml content
Reproduction steps
Additional information
No response
@alextran1502 commented on GitHub (Oct 18, 2023):
Which actions were going on when you encounter this issue?
@dtirer commented on GitHub (Oct 18, 2023):
I updated the log output so there's more context. It shows what happens from the moment the container starts up, to the point where the error ocurrs.
As far as I can tell, no particular jobs are running. When I view the list of jobs in the admin panel, nothing is running and it shows that the "Extract Metadata" job is paused
If I go to the "Repair" section, there do seem to be a lot of errors with files
@dtirer commented on GitHub (Oct 18, 2023):
Okay this seems to be a result of some docker networking changes I made.
I previously had all the immich containers on a
proxynetwork. My nginx proxy manager was always apart of this network.Then I tried adjusting the docker-compose file for immich so that only the immiich-proxy container was apart of the
proxynetwork, and the rest of the immich containers were apart of their own internal network. This seems to be causing the above issue.Is there a particular reason why this would be happening?
@alextran1502 commented on GitHub (Oct 18, 2023):
I am not sure tbh. I ran into this issue once when running the Medatada extraction job again for all assets. But after restarting the server it seems to work fine so we haven't been able to identify the cause of heap out of memory
@kfwebdev commented on GitHub (Oct 19, 2023):
I'm also seeing this issue every 5 minutes for immich-microservices only while trying to build thumbnails.
My instance is running Immich v1.82.0 on a Qnap TS-453E with Celeron J6412 4-core, 8gb ram.
Takes up about 50% of cpu and memory resources while running.
Tried reducing job concurrencies all down to 1 and disabling prefer wide gamut but no change.
@jrasm91 commented on GitHub (Oct 19, 2023):
This almost looks like an issue with generating a thumb for s specific file. Any way to figure out which one?
@kfwebdev commented on GitHub (Oct 19, 2023):
It looks like I was able to stop the crashing for my particular setup by recreating the
immich-microservicescontainer with environment variable:NODE_OPTIONS=--max-old-space-size=5096I tried
NODE_OPTIONS=--max-old-space-size=4096and it would still crash after hitting 4gb ram although it took longer than 5 minutes to hit the limit. At 5096, the thumbnails are getting created. I also reduced my concurrency to 3 thumbnails instead of the default 5.I noticed that Video Transcoding had started to process as well. I paused that and the memory usage went down considerably. Maybe the combination of thumbnail generation and video transcoding was causing Node to continue eating up memory.
Now sitting at about 35% of 8gb memory while processing 3 thumbnails in concurrency. Cpu usage maintaining about 90%.
Update:
I disabled Video Transcoding in the settings and recreated
immich-microservicesagain withNODE_OPTIONS=--max-old-space-size=4096. It's now happily creating thumbnails without crashing at 1 concurrency and about 30-40% cpu threshold. 2 concurrency thumbnails pushes it up about 70%. Same 35% of 8gb memory threshold.In conclusion, it seems that the Node JavaScript heap out of memory error was due to multiple jobs eating up memory until it hit the default
max-old-space-sizecausing a crash.For reference my Immich instance has 6827 photos and 1570 videos.
Qnap TS-453e running container station.
@jrasm91 commented on GitHub (Oct 19, 2023):
Thanks for the update, what you have reported makes sense. We will try to investigate the issue more.
@piciuok commented on GitHub (Oct 20, 2023):
Same here, on QNAP TS-453D.
My library:
PHOTOS: 23970
VIDEOS: 5922
STORAGE: 506 GB
Now, i increase size to 10GB - maybe now it process something successfully
@piciuok commented on GitHub (Oct 20, 2023):
Unfortunately, still:
@jrasm91 commented on GitHub (Oct 24, 2023):
I believe this may be related to reverse geocoding. Can we try deleting the contents of
/usr/src/app/.reverse-geocoding-dump(or equivalent) and then restarting the microservices container?@fatwhy commented on GitHub (Oct 27, 2023):
same issues with microservices, Javascript heap out of memory and core dump when generating thumbnails. On version 1.82.1 running on sysnology NAS.
<--- JS stacktrace --->
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
1: 0xc99960 node::Abort() [immich_microservices]
2: 0xb6ffcb [immich_microservices]
3: 0xebe910 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, v8::OOMDetails const&) [immich_microservices]
4: 0xebebf7 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, v8::OOMDetails const&) [immich_microservices]
5: 0x10d06a5 [immich_microservices]
6: 0x10d0c34 v8::internal::Heap::RecomputeLimits(v8::internal::GarbageCollector) [immich_microservices]
7: 0x10e7b24 v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::internal::GarbageCollectionReason, char const*) [immich_microservices]
8: 0x10e833c v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [immich_microservices]
9: 0x10ea49a v8::internal::Heap::HandleGCRequest() [immich_microservices]
10: 0x1055907 v8::internal::StackGuard::HandleInterrupts() [immich_microservices]
11: 0x14f7322 v8::internal::Runtime_StackGuardWithGap(int, unsigned long*, v8::internal::Isolate*) [immich_microservices]
12: 0x7f3c49f19ef6
Aborted (core dumped)
@jrasm91 commented on GitHub (Oct 27, 2023):
Does it help if the jobs are all paused originally and then microservices is started? Many of these errors are right when microservices are starting and the first thing it does is initialize the reverse geocoder. Also can these out of memory issues be reproduced while reverse geocoding is disabled?
@fatwhy commented on GitHub (Oct 27, 2023):
All jobs were paused after core dumped, then restarting microservices would result in core dump again shortly.
@knakalm commented on GitHub (Nov 4, 2023):
I've had the same problem. It turns out that if the "microservices" container has misconfigured DNS and cannot access public domains, it will eat up the entire --max-old-space-size=xxxx, accompanied by high CPU usage, and crash. As soon as I added DNS configuration to the container, it ran exactly as expected with minimal RAM usage.
@EricKemmeren commented on GitHub (Nov 4, 2023):
I first had to disable reverse geocoding, but with the added DNS option I could enable it again without eating up my CPU and RAM, thank you!
@fatwhy commented on GitHub (Nov 5, 2023):
I have updated the DNS settings and so far so good. It has been running for over a hour without crashing. Keeping fingers crossed.
@fatwhy commented on GitHub (Nov 5, 2023):
still running after 7 hours. Thanks for the DNS info!
@atlas-shrugged08 commented on GitHub (Nov 5, 2023):
I was facing the same issue, I added the DNS settings (changed the IP to match the IP of my server(?)). Now the frequency has reduced a lot (thank you @knakalm )and the resources are not being used when idle but the oom still gets triggered if I do an action like "merging 2 faces" - tried that a couple of times with different faces and was consistently reproduced. logs below.
Edit: Adding the latest one, if it helps:
@fatwhy commented on GitHub (Nov 5, 2023):
It crashed again after running for a day. I will changed the thumbnail job settings from 5 to 3 and see if helps.
@nodis commented on GitHub (Nov 9, 2023):
@knakalm What IP address is' 192.168.0.100 'for you? thanks
@knakalm commented on GitHub (Nov 9, 2023):
It's an address of local DNS server
@MrPixel1 commented on GitHub (Nov 12, 2023):
I observed a similar behavior today after trying to get Immich up and running in a compose stack which does not have internet access.
The microservices service keeps eating RAM and crashes when it reaches its limit (or renders my raspberry pi unresponsive).
Tried disabling the reverse geocoding (DISABLE_REVERSE_GEOCODING=truein the .env file) but that doesn't seem to make a difference.EDIT 1: Disabling geocoding solved the issue (I had to disable it using an immich.config file).
EDIT 2: The microservices service keeps crashing because of high RAM usage as soon as it tries generating thumbnails. I disabled ML, geocoding, video transcoding and I configured 1 concurrent job max per job type. I see two log messages like this:
LOG [MediaService] Successfully generated JPEG image thumbnail for asset ...and then it crashes/restarts.@zackpollard commented on GitHub (Nov 26, 2023):
In the next release we have completely reworked how reverse geocoding will function. We are replacing the old library with our own implementation that uses postgres for doing the reverse geocoding. This should result in much lower memory usage overall, and also should eliminate the microservices container running out of memory. We believe this was happening due to some issue with the logic in the old geocoding implementation which was not written by us. If you still continue to experience these issues after the next release (1.89.0) please open a new issue describing the problem. Cheers!
@atlas-shrugged08 commented on GitHub (Nov 30, 2023):
@zackpollard fwiw, my originally reported problem still exists on 1.89.0
@phiii commented on GitHub (Dec 21, 2023):
This is happening for me too on v1.91.4 on Ubuntu Server even with DNS updates to the docker.yml. Extreme high CPU usage. I had to disable reverse geocode settings for the time being.
@macross5 commented on GitHub (Dec 21, 2023):
I had the save problem with oom on v1.91.4.
I could fix it with the following environment variable on the microcontroller:
NODE_OPTIONS=--max-old-space-size=8192My synology has enough ram to handle it. I have to say aswell, that my external library is large (multiple TB).
@vb0 commented on GitHub (Jan 29, 2024):
There should be some kind of prominent runtime warning if memory tweaks are required for larger libraries. I've had immich_microservices crashing each time I would scan the library for months now, at first I haven't even noticed (except that nothing new got added). Then I've seen the "java running out of memory" and thought it's a regular bug and will be fixed, but for many releases nothing changed and now I tried this "max-old-space-size=8192" and it just works.
Just having too many objects for your configuration shouldn't be looking like a regular bug.
@ste7enm commented on GitHub (Apr 8, 2024):
Just to add, I am running v1.101.0 on Unraid and I was having a problem where the Immich docker would idle around >30% CPU usage. I added my DNS to the extra parameters field in advanced view (
--dns 192.XXX.XX.XXfor future Googlers) per the recommendation above and now I'm getting an average of 0.02% CPU at idle.Wild.
Edit: This wasn't my pickle, I think. It did help keep it way down at idle yesterday, but after immich_microservices spooled up again in earnest, it does't ever go back down. Now idling (jobs paused) at 40% CPU again. Drats.