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…

  • Salamander@mander.xyz
    link
    fedilink
    English
    arrow-up
    1
    ·
    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.