Another day, another update.

More troubleshooting was done today. What did we do:

  • Yesterday evening @phiresky@[email protected] did some SQL troubleshooting with some of the lemmy.world admins. After that, phiresky submitted some PRs to github.
  • @[email protected] created a docker image containing 3PR’s: Disable retry queue, Get follower Inbox Fix, Admin Index Fix
  • We started using this image, and saw a big drop in CPU usage and disk load.
  • We saw thousands of errors per minute in the nginx log for old clients trying to access the websockets (which were removed in 0.18), so we added a return 404 in nginx conf for /api/v3/ws.
  • We updated lemmy-ui from RC7 to RC10 which fixed a lot, among which the issue with replying to DMs
  • We found that the many 502-errors were caused by an issue in Lemmy/markdown-it.actix or whatever, causing nginx to temporarily mark an upstream to be dead. As a workaround we can either 1.) Only use 1 container or 2.) set proxy_next_upstream timeout; max_fails=5 in nginx.

Currently we’re running with 1 lemmy container, so the 502-errors are completely gone so far, and because of the fixes in the Lemmy code everything seems to be running smooth. If needed we could spin up a second lemmy container using the proxy_next_upstream timeout; max_fails=5 workaround but for now it seems to hold with 1.

Thanks to @[email protected] , @[email protected] , @[email protected], @[email protected] , @[email protected] , @[email protected] for their help!

And not to forget, thanks to @[email protected] and @[email protected] for their continuing hard work on Lemmy!

And thank you all for your patience, we’ll keep working on it!

Oh, and as bonus, an image (thanks Phiresky!) of the change in bandwidth after implementing the new Lemmy docker image with the PRs.

Edit So as soon as the US folks wake up (hi!) we seem to need the second Lemmy container for performance. So that’s now started, and I noticed the proxy_next_upstream timeout setting didn’t work (or I didn’t set it properly) so I used max_fails=5 for each upstream, that does actually work.

  • phiresky
    link
    907
    edit-2
    10 months ago

    server load is too low, everyone upvote more stuff so i can optimize more

    edit: guess there is some more work to be done 😁

    • @woelkchen
      link
      14710 months ago

      Upvote causes an endless spinner on Liftoff. 😁

    • marsokod
      link
      11810 months ago

      I don’t understand your graph. It says you are measuring gigabit/sec but shouldn’t the true performance rating be gigabeans/sec for a Lemmy instance?

    • PatFusty
      link
      fedilink
      2810 months ago

      Double the image upload size and you will see more shitposts

      • @[email protected]
        link
        fedilink
        510 months ago

        I was gonna argue that you’d see more bean posts, but at this point they’re the same thing, both in the pun sense and the literal sense

    • s4if
      link
      2210 months ago

      Web-ui is very smooth rn… is this .world?
      😅
      Joke aside, the improvement is like heaven and earth. Love it!. Good work teams!

    • TheSaneWriter
      link
      fedilink
      1010 months ago

      I’m on another instance, but here’s some federated activity for you.

    • @PlutoniumAcid
      link
      810 months ago

      All hail @[email protected]! Today is your day. You have made the single most valuable contribution and you must be celebrated! Bravo! Hurrah!

    • @sorenant
      link
      710 months ago

      I was just going to post a meme about choosing either creating activity or spare the server from overloading. Now the joke won’t stick.

  • Isaac
    link
    25610 months ago

    The change is noticeable. Good job guys.

    Thanks for the updates.

    • @Carnelian
      link
      9610 months ago

      I agree. Felt it immediately when I started browsing. Everything is faster and more responsive, on top of the error messages disappearing

      • @jake_eric
        link
        2310 months ago

        Yup I can even post comments first try, without getting an error! Things are working well!

    • @FarLine99
      link
      210 months ago

      Really noticeable. Cool update. Thank you, guys! ❤️

  • Gnothi
    link
    12510 months ago

    This is why having a big popular instance isn’t all bad. It helps detect and fix the scaling problems and inefficiencies for all the other 1000s of instances out there!

    • AlmightySnoo 🐢🇮🇱🇺🇦
      link
      6010 months ago

      This, if everyone kept just spreading out to smaller instances as suggested in the beginning, while still a sensible thing to do, no one would have noticed these performance issues. We need to think a few years out, assuming Lemmy succeeds and Reddit dies, and expect that “small instance” will mean 50k users.

      • deweydecibel
        link
        14
        edit-2
        10 months ago

        I sincerely doubt reddit will die anytime soon, it’ll just exist as its own thing that it’s new target audience gets bored with and moves on from in a few years when something new and flashy catches their eye in the app store. Just like they do all the other apps designed in exactly the same fashion that reddit is currently morphing into.

        Meanwhile Lemmy will be slowly building it’s communities up to be what reddit used to be.

    • Bilb!
      link
      fedilink
      1810 months ago

      I’m actually kinda waiting a few releases to start promoting my instance anywhere, letting some other brave instance admins work the kinks out a bit first.

    • @rockstarpirate
      link
      1410 months ago

      Agreed. I decided to keep my community on lemmy.world specifically because of the community investment I see being put into it.

    • Avid Amoeba
      link
      fedilink
      610 months ago

      If this project is to stay for the long haul, we gotta load test it and stabilize it. These folks are doing the important work here. Large instances are more or less inevitable if Lemmy sticks.

  • @mintiefresh
    link
    12410 months ago

    Wow. So much smoother today.

    Great work.

    You dropped this 👑

      • @Krompus
        link
        810 months ago

        You’re gonna be when you see how fast I can bean post now.

  • @kionay
    link
    11510 months ago

    You guys had better quit it with all this amazing transparency or it’s going to completely ruin every other service for me. Seriously though amazing work and amazing communication.

  • @dreadedsemi
    link
    10110 months ago

    My upvote can go through fast now

    Good work

  • @sv1sjp
    link
    9210 months ago

    Thank you guys for your awesome work!

    Also to other people: DONATE TO FOSS PROJECTS. If 50.000 people donate only 0.5€, we have 25.000€ for funding the servers, coding, motivating/ people etc. Just don’t take a cup of coffee for 1 day. We are already 2 millions in Lemmy instances. We can build a decentralized world together!!

    • @wmrch
      link
      2410 months ago

      You can pry my cup of coffee from my my cold, dead hands.

      Will donate anyway, I really want this project to keep going.

    • Bappity
      link
      2010 months ago

      euro contributed 🫡

      • DopamineDeficient
        link
        310 months ago

        If there’s a thing you really need to pay in a foreign currency, look into Revolut or Wise. Since I occasionally have to pay stuff in Turkish lira, GBP and donated to USD-only Receivers I like to keep Revolut as my secondary bank account since exchanging one currency to another is completely free!

    • PropaGandalf
      link
      710 months ago

      you inspired me to serve the greater good!

      • @sv1sjp
        link
        18
        edit-2
        10 months ago

        For example, if you speak a second language, you can even help with translation in projects. Its very easy. E.g. I translated the Jerboa (Lemmy client for Android) in Greek 2-3 days ago. I needed only 1 hour to finish and special 15-20 minutes for fixes that I missed, yesterday.

  • Marxine
    link
    8110 months ago

    Boy does it feel good to have those reports and understand the work you guys do. It’s really inspiring! Thanks for your hard work, everything has been silk smooth! This instance is really great, Lemmy and its devs are really amazing and I feel at home in a nice, cozy community.

  • @Spectator
    link
    English
    8010 months ago

    I’m not sure wtf you just said, but lemmy.world feels very smooth today, so thank you for your continued hard work!

  • @sirnak
    link
    7910 months ago

    Am I getting this correct: the whole lemmy.world instance run in one single container on one single host?

    • @cley_faye
      link
      4710 months ago

      You’d be surprised at how much performance this kind of setup can squeeze off. Often the limitation is more on the DB/storage than network handling and processing power.

      • @eek2121
        link
        2410 months ago

        This. Most of the time, the bottleneck will be the database backend.

        Curious if lemmy.world uses separate reader/writer instances.

    • Bappity
      link
      1610 months ago

      if it runs this well on a single container, considering the amount of users it has, I fear the power it’d hold with more

    • @[email protected]
      link
      fedilink
      1010 months ago

      Lemmy is built on an async work stealing runtime and you can get very large instances from Amazon and the like.

      I’m sure the instance isn’t massive but number of containers and a single “host” are not great indicators of efficiency.

  • @Timou
    link
    6910 months ago

    So that’s why it was so smooth today… Great work!

    • @erik1984
      link
      English
      25
      edit-2
      3 months ago

      deleted by creator

  • @ericjmorey
    link
    65
    edit-2
    10 months ago

    Submitting PRs is literally the most effective response that helps everyone who uses Lemmy. Thanks to you all.

  • @MR_GABARISE
    link
    6310 months ago

    This is better optimization than most enterprise devs will see in their lifetimes.