-
Eliot Berriot authored
Optimizing your Funkwhale instance
Depending on your requirements, you may want to reduce as much as possible Funkwhale's footprint.
Reduce workers concurrency
Asynchronous tasks are handled by a celery worker, which will by default spawn a worker process per CPU available. This can lead to a higher memory usage.
You can control this behaviour using the --concurrency
flag.
For instance, setting --concurrency=1
will spawn only one worker.
This flag should be appended after the celery -A funkwhale_api.taskapp worker
command in your :file:`docker-compose.yml` file if your using Docker, or in your
:file:`/etc/systemd/system/funkwhale-worker.service` otherwise.
Note
Reducing concurrency comes at a cost: asynchronous tasks will be processed more slowly. However, on small instances, this should not be an issue.
Switch from prefork to solo pool
Using a different pool implementation for Celery tasks may also help.
Using the solo
pool type should reduce your memory consumption.
You can control this behaviour using the --pool=solo
flag.
This flag should be appended after the celery -A funkwhale_api.taskapp worker
command in your :file:`docker-compose.yml` file if your using Docker, or in your
:file:`/etc/systemd/system/funkwhale-worker.service` otherwise.