Scaling to ~1500 concurrent users with large dataset


#1

I’m building an app that needs to work with a large collection (~ 40.000 records).
Of course I’ll never call that many records together and always take care of publications with fields specifications and proper sorting, which makes every subscription retrieve ~7% of that total into the client at a time.

Can Meteor handle a Db of that size in the background with a user base of 1000~2000 concurrent users?
I set up a MongoDB Replica Set with Oplog Tailing and packages for caching and performance monitoring.
How can I further prepare the app for that load?

I deployed using Digital Ocean and Compose.io.

Thanks in advance.


#2

It shouldn’t be an issue but you may want to load test it with a user script to ‘automate’ usage and then hammer it with something like the Blitz service. You can also run Kadira to monitor the app and see where the bottlenecks are so that you can adjust them.

Differential recently wrote a blog for an app they launched. It doesn’t say the exact concurrent users but they had ~10,000 queries a sec. and a little more than 10k users the first day.


#3

I didn’t know Blitz and guess I’ll be looking into that.

Thanks for the suggestions!


#4

No prob! Here’s the link: https://www.blitz.io . There’s also others but I haven’t used them personally. Some of the others also offer a way to script actions with a chrome extension but I remember it being super expensive. I ended up writing an ugly script with jquery and setTimeout that basically signs in, does normal actions for several minutes. You want to make sure they’re ‘working’ for long enough because it takes a bit to spool up thousands of ‘bot’ users.