Hi, I am running Vikunja on quite a limited performance VPS (1c/2GB RAM/20GB SSD). I have followed the installation steps, everything works perfectly and I am happy. However, I am starting to get preoccupied by the 12% memory usage of the mariadb container, I am wondering how I could mitigate this:
- Run Vikunka using the sqlite backend: there is never going to be more than 5 users on this instance, so this may be valid. What do you think ? When does the sqlite backend is not enough to sustain the load ? I could not find any figures on the website.
- Mutualiaze the SQL container between applications… This is something I did not wanted to do, as I rather would have liked to let all the applications have their own DB service, in order to ease upgrades and backups, but as this really is a personal server, the load is going to be very small anyway
So I am really looking for advices and ideas from this community’s side
Thanks you in advance !
For 5 users sqlite should be plenty.
Databases use memory to cache things but you can optimize that. It may be worth tuning the mariadb down a little. On the other hand, 12% memory usage still isn’t much.
Thank you for you answer. 12% memory usage relates only to roughly 200MB, which you are right isn’t very much… if you do not have only 2GB to spend. I plan to host other applications on this small VPS, and I am really trying to slim down the usage of each app as much as possible, this is why I was asking about sqlite/MariaDB.
Maybe you could publish informations in the installation guide about when the usage for a real DBMS (MariaDB, pgsql, …) becomes mandatory ?
Without having tested this I think it depends on the amount of concurrent users. I know from my own testing that ~150 users are fine (the response time isn’t as low as with ~10 users but still < 200ms). That was with a mariadb database so I’d expect sqlite to be able to handle similar load if not more.
In the future there will be features of Vikunja which will be a lot more performant when using special db features of mariadb or postgres, so that number might change.
I’ll add something to the docs