%CPU %MEM TIME+ COMMAND
41.9 0.0 86:15.39 kswapd0
What in Mighty's Fuck name?!?
And it's all php-fpm fault!
(Well, it may be badly set up and it's fucking my Droplet, but holy cow, people!)
You know, this is the kind of stuff that pushes me towards writing my own WebDAV server and drop NextCloud altogether...
Maybe not php-fpm per se, but it looks like NextCloud is pushing MySQL to have 20+ active connections/threads.
... and what am I doing?
Just resyncing Joplin over WebDAV... 😕
I bet this number of threads is what is getting MySQL killed by the OOM watcher...
Found the MySQL configuration in the snap, but it seems its location is a mount point of sorts, so I can't change the configuration file 'cause the mount is readonly (and not even root can change it now).
Instead of syncing all my notes on my work account, I'm going to create a new directory on NextCloud and sync only the work notes there.
This should reduce the amount of transferred data and such. Also, if something bad happens here, it is easy to "forget" everything I captured.
@juliobiason Are you looking for something akin to Dropbox syncing with exceptions, because if you are then you might want to check out Syncthing (assuming you haven't already).
@craigmaloney Not quite.
I do like to use Joplin to keep notes, but for syncing, I'd need WebDAV (or some other proprietary stuff, like Dropbox itself). NextCloud offers a WebDAV interface for its content, but then there is this problem of unlimited MySQL threads which screws up my Droplet.
Also, I avoid as much as go code as possible.
@juliobiason Understandable. Happy to talk about my process if situations change.
Good luck! Hate it when MySQL throws a wobbler like that.
@craigmaloney Yeah, but I do believe the kernel of the problem is the Snap install: it was probably built for something larger than the smallest Droplet possible (and I don't need that much for a personal install, anyway).
Currently, I'm rebuilding the Droplet as an Ansible install, and then I'll have all the options available to me (including replacing MySQL with PostgreSQL).
@stevenroose Actually, the whole time I'm thinking about using Rust for this. 😀
I'm thinking about using sled as a database, 'cause you have directories as keys and files (and sub-directories) as values.
Also, I'd probably go with Actix, so I could have a "receive request" actor, a "download file" actor and even a "push from local filesystem to S3" actor -- I just need to wrap my head around actors and such.
@stevenroose (Also, lots of personal projects that I need to almost-complete before jumping into this one.)
The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!