How can I reduce the amount of storage used by my Lemmy instance?

TrinityTek@lemmy.world to Selfhosted@lemmy.world – 74 points –

I've had a Lemmy instance running on a VPS with 100 GB of storage for a few months and it has filled up. I've been searching for ways to reduce the amount of storage used but so far I am coming up empty. Can anyone point me in the right direction?

35

You are viewing a single comment

Firstly move pict-rs to object storage. My instance's pict-rs uses 150GB alone. I pay less than $2/mo to put it on Cloudflare R2. Backblaze B2 might be even cheaper. Instructions: https://crates.io/crates/pict-rs#filesystem-to-object-storage-migration

If that doesn't help enough and you're comfortable with SQL, you can purge the unnecessary entries in received-activities.

Command: delete from received_activity where published & NOW() - INTERVAL '3 days'; (Lemmy has problems with ampersands so you'll have to edit it)

Then do a vacuum full received_activity; to reclaim the space.

This deleted 98 million entries for me and reduced my database size from 49GB to 20GB a week ago when I started running out of space. No other effect as far as I can tell. Thanks @illecors@lemmy.cafe

Thank you, that SQL command looks like exactly what I'm after! I'm going to give that a shot. I appreciate the help!

what is stored in received_activity ? anything important? I mean obviously it's something the instance has received from other instances but is this then stored somewhere else (like comments then stored elsewhere for eg)

As far as I've been told it's basically just a log of all received activities. Nothing references it.

Nothing seems to have gone wrong in the past week on thelemmy.club since I removed it. I do have backups though.

in v0.19.0 Lemmy will automatically delete entries over 7 days old

https://github.com/LemmyNet/lemmy/issues/4113

https://github.com/LemmyNet/lemmy/commit/cb01427dcff14b3d88e30220695fc97978786a9a

currently it waits 3 months before deleting

Time to update then!

it's in alpha currently, but you could still run it

I think you might have to use the :dev tag to get this update, a bit risky to stay on that tag though, maybe wait for the next docker image of an alpha release