I see plenty of posts talking about a huge influx of new users to lemmy.ml lately. Can we get some numbers about that? How many new users per day are we talking? How does that translate to number of requests per second (or minute) on the frontend?

What kind of hardware is lemmy.ml running on? Is it just a single server? Can lemmy instances be run on a loadbalanced cluster?

I’m really interested to see how efficient and resilient the lemmy software really is, at the moment I am getting the impression that it is buckling under the load of, honestly, not even that many users…

    • @waiglOP
      link
      English
      11 year ago

      This seems to count accounts and threads over the entire lemmy user base (btw, how does that even work in a distributed system like this?), not just one instance. Still interesting information, mind you, just not quite what I was looking for.

  • Salamander
    link
    fedilink
    English
    3
    edit-2
    1 year ago

    I don’t have access to the data on lemmy.ml. I have a small instance that appears on the joinlemmy site but not in the recommended section, so I can give you some data specific to a small instance.

    Not sure if there is a direct way to pull this data, so I just made a little python script that queries the database and plots the number of users registered each day:

    Code is under this spoiler tag in case someone wants to check this for their instance too:

    spoiler
    from subprocess import PIPE, Popen
    import numpy as np
    import matplotlib.pyplot as plt
    from matplotlib.dates import DateFormatter
    
    
    command = 'docker exec POSTGRES_CONTAINER psql -U USER -c "select validator_time from local_user;"'
    with Popen(command, stdout=PIPE, stderr=None, shell=True) as process:
        output = process.communicate()[0].decode("utf-8")
    
    
    time_signup = np.array(output.split('\n')[2:-3],dtype='datetime64[D]')
    
    first_user = min(time_signup)
    last_user = max(time_signup)
    dates = np.arange(first_user,last_user+1)
    count = [np.sum(time_signup == date) for date in dates]
    
    
    fig, ax = plt.subplots()
    plt.title('Amount of users registered per day to INSTANCE.TLD')
    ax.plot(dates,count,c='k',lw=1)
    myFmt = DateFormatter("%Y-%m-%d")
    ax.xaxis.set_major_formatter(myFmt)
    fig.autofmt_xdate()
    plt.savefig('plot.png',dpi=300)
    
    

    As to the number of requests per minutes… Hmm, I suppose that I can measure by counting the POST and GET requests in the nginx logs, I will try that and get back to you in a bit.

    • Salamander
      link
      fedilink
      English
      21 year ago

      Hmm, sorry, it turns out that estimating the requests is not something I can do as effortlessly. So I will have to leave it for another time. Hopefully someone else can be more helpful.