So I spent the whole day optimizing bird.makeup and got about a 5x in performance. Things are starting to run better, seems we are iterating on all accounts within 4-5 hours right now. I have other ideas that will probably get another 3x that I want to implement tonight, so performance should be right on target.

Until more people sign up of course! ๐Ÿ™ƒ

@vincent What are the system requirements, if any, for running your own instance?

My cloud server has 2 GB of RAM and it keeps running out of memory. I had to add a memory limit to the birdmakeup container in the docker-compose.yml file to keep the system stable (but now the container is killed/restarted every half hour or so).

When it works, performance is great though ๐Ÿ˜โ€‹ Thanks so much for building this!

@smallsco Yeah, there is a memory leak somewhere... I'm hunting for it!

@vincent @smallsco

I just took a quick look at it (by the way: nice code). Three things potential things I found (no guarantees):

1. The used version of Newtonsoft has a potential memory leak: github.com/advisories/GHSA-5cr
2. MagicKey has a property `_rsa` which needs to be disposed. (there might be more)
3. Quite a few regex that might never complete.

I would need to actually run the application for my tools to find something, but maybe I'm lucky with the above.

@DevWouter @smallsco Thanks for the compliment! But the credit goes to @BirdsiteLIVE .

I think I figured it out. I took a memory dump, and noticed large allocation related to SQL queries. When I removed Dapper and used vanilla npgsql the problem when away. It's really not obvious to me what was happening there, but it might be related to your number 1

@vincent @DevWouter @smallsco

I'm surprized, I've never noticed memory leaks in the past when running the official instance (and running it on a 500MB VPS all this time), could it be linked to some of your fork modifications?

Keep me updated by your findings!

@BirdsiteLIVE @vincent @DevWouter

FWIW, as a user I opted to use the Birdmakeup fork because I didn't want to create a Twitter Developer account and use their API... I'm trying to get away from that site, not tie myself more to it ๐Ÿ˜…

I would consider giving the original Birdsitelive a try though if I can get away with running it on a smaller/cheaper instance.

@smallsco @BirdsiteLIVE @DevWouter I think I figured it out, try doing a docker pull to see how it behaves

ยท Web ยท 2 ยท 0 ยท 1

@vincent @BirdsiteLIVE @DevWouter Thanks, just pulled, I'll let it run for a while and get back to you ๐Ÿ˜โ€‹

@vincent @BirdsiteLIVE @DevWouter Happy to report that the memory leak is fixed!!

My host is having some problems right now so I can't attach a fancy graph, but CPU usage has dropped from ~25% to ~4%, and memory utilization has remained flat at 28%. ๐Ÿ˜โ€‹ Thanks so much for tracking this down!

Sign in to participate in the conversation
Librem Social

Librem Social is an opt-in public network. Messages are shared under Creative Commons BY-SA 4.0 license terms. Policy.

Stay safe. Please abide by our code of conduct.

(Source code)

image/svg+xml Librem Chat image/svg+xml