I’ve reported the same quite a few times, though I’m on Fedora 44 now it happens after about 3 or 4 days, so I just tried getting the info as I’m getting system alerts:
I had restarted since posting, and now my usage is: Memory: 968.9M (peak: 6.6G, swap: 880M, swap peak: 880M)
It will build up again, I’m sure, and then I’ll post the details.
@kenkendk that’s better, found it, but had issues with disk space but once sorted the dump completed:
/usr/lib/duplicati/createdump -u -f /srv/nextcloud/tmp/duplicati.dmp 845
[createdump] Gathering state for process 845 duplicati-serve
[createdump] Writing full dump to file /srv/nextcloud/tmp/duplicati.dmp
[createdump] Written 9353322496 bytes (2283526 pages) to core file
[createdump] Target process is alive
[createdump] Dump successfully written in 25499ms
The file is 832MB in size as a RAR, 9GB uncompressed, so should I DM it to you?
FYI, my server seems to have calmed down now with RAM returning to normal and the swap clearing out. I didn’t do anything other than run the earlier commands to get the info. Perhaps it was simply performing something in the background that was taking over 8hrs, but there was nothing showing on the UI or logs.
I have now spent some time analyzing the memory dump collected by @Taomyn.
There are no easy wins as it appears all the memory has actually been released by .NET and “only” 133MB was referenced as .NET memory.
The rest of the memory is “unmanaged” meaning it is allocated by glibc but released by the .NET code.
Poking around it, it looks like it is mostly paths and hash strings created during the backup scanning process. I could be wrong as I cannot identify purely binary data, but it did not look like obvious text file contents even though many paths have an extension that indicates they are text files.
One AI suggestion is to attempt to reduce the amount of memory pools that glibc keeps around by setting the environment variable in the service file:
[Service]
Environment="MALLOC_ARENA_MAX=2"
This will make glibc only have 2 pools, so it is forced to release memory faster.
If you can try with this setting, maybe this will fix the issue.
A recent issue reported in the 2.4 release thread reminded me of this issue.
The issue is that during the delete of old filesets, the memory usage can grow significantly if there are many files in a fileset. There will be a fix for this in the next canary.