I’ve looked through other forum comments where SS users have done load testing and report that they can achieve thousands (e.g. ~20,000+) requests per second on things like a simple “hello world” REST request. Similarly, googling around I see comments like "node can handle 10,000 req /sec"etc etc. (see https://raygun.com/blog/increased-throughput-net-core/ )
Pardon my naivety, but as a simple investigation, having recently migrated to the .NET Core libraries and spinning up a new project, I run a self-hosted test case where i run a simple FOR loop through 5 rounds of 1000 registrations of a new user, saving their auth details into an MS SQL db with the ormlite auth repositories, and time how long it takes to insert 1000 new user accounts. On average, I’m seeing 1000 take 23-27 seconds, or around 35-45 new registrations per second… wildly wildly lower than the figures reported. These are, I realise, running in serial - i will continue trying a parallel implementation out of interest as well.
In the meantime, switching to a totally basic, unauthed endpoint that simple creates a domain model (Venue, a basically empty class) and does a ConvertTo (also basically an id+name pair for now), with no database access whatsoever, I see the requests average about 1000 every 8 seconds, or 100-125 per second… much better, but still nothing remotely like what I was expecting?
I’m running that on a MS Surface Book laptop with 8GB RAM which is a reasonably spec’d machine, if not exactly a super-server. It also seems to make no real difference running the solution in DEBUG vs RELEASE mode.
Am I am idiot for having expected the number of requests to be much higher? Am i misunderstanding or misinterpreting the earlier reported figures somehow? I’ve pushed internally to use SS for this greenfields project that will be relatively low load generally (a few users per minute looking through social events, for example) and the occasional high spike of traffic (during ticket sales openings), but these figures worry me a bit and I would like to understand what sort of “real world” performance I can expect so I can discuss with the product owners?
Or should I be diving into async endpoints and making use of that? Please pardon my ignorance, I’ve rarely had to worry much about performance management at a high scale before.