-
Notifications
You must be signed in to change notification settings - Fork 3.5k
Description
Actions before raising this issue
- I searched the existing issues and did not find anything similar.
- I read/searched the docs
Is your feature request related to a problem? Please describe.
Context
CVAT setup guide shows how to setup via docker compose, and it works well, but now I'd like to self host on some other machine, which has lower specs,
and so I wanna see if it possible to remove some services like clickhouse, grafana, etc... or non-core services as much as possible such that the main annotation still works.
Tried so far: removing clickhouse, traefik, etc and their depends_on or other references, as well as the other compose files like dev, ci, etc tho only docker-compose.yaml actually works.
Could not find any related issues or docs, please do mention if I might've missed something there, hank you.
Benchmarks
I've ran on my local machine and benchmarked it:
NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
cvat_ui 0.00% 12.94MiB / 4GiB 6.7kB
cvat_worker_quality_reports 0.12% 203MiB / 4GiB 50.2kB
cvat_worker_chunks 0.23% 380.4MiB / 4GiB 61.9kB
cvat_worker_consensus 0.13% 201.6MiB / 4GiB 50.8kB
cvat_worker_utils 0.13% 370.5MiB / 4GiB 58.8kB
cvat_server 0.51% 394.5MiB / 4GiB 193kB
cvat_worker_annotation 0.14% 205.8MiB / 4GiB 49.5kB
cvat_worker_webhooks 0.13% 206.3MiB / 4GiB 49.2kB
cvat_worker_import 0.25% 386.3MiB / 4GiB 60.9kB
cvat_worker_export 0.23% 379.9MiB / 4GiB 58.7kB
cvat_vector 0.04% 83.4MiB / 4GiB 8.31kB
cvat_db 0.04% 23.76MiB / 4GiB 84.4kB
cvat_redis_inmem 0.35% 10.48MiB / 4GiB 82.9kB
traefik 0.00% 28.17MiB / 4GiB 9.09kB
cvat_grafana 0.29% 157MiB / 4GiB 12.8MB
cvat_clickhouse 1.47% 739.2MiB / 4GiB 13.9kB
cvat_redis_ondisk 0.16% 90.56MiB / 4GiB 14.4kB
cvat_opa 0.00% 34.9MiB / 4GiB 75kB
--------------------------------------------------------------------------------
TOTAL CPU 4.22% | MEM 3908.71 MiB | NET RX 0.00 MiB TX 0.00 MiB | BLK R 72.00 MiB W 0.00 MiB | PIDS 940
But taking out the clickhouse, and other non-core services may reduce that requirements even lower.
Describe the solution you'd like
The main idea is:
would it be possible to have some sort of docker-compose.minimal.yaml that can maybe work lower resources by using something like:
x-limits: &limits
deploy:
resources:
limits:
cpus: ${CPU_LIMIT}
memory: ${MEM_LIMIT}
services:
service-a:
<<: *limits Describe alternatives you've considered
No response
Additional context
None