Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How many concurrent users can a web app built in Meteor.js handle? [closed]

We are building a web app which will be used during a contest to vote contestants and display real-time vote statistics on a central display.

The contest will last 15 minutes and around 4000 users will be connecting to the web app in that lapse of time and send votes, which however are unique per user device.

We are thinking to develop such web app using Meteor.js. However, due to our little experience in developing services for such big amount of concurrent users and the beta state of Meteor.js, we have some concerns regarding the actual feasibility of the project.

The following are the questions we are addressing:

  1. Is there any benchmark on how many concurrent users Meteor can handle? I assume this depends on the complexity of the web app itself. In our case it would be rather straight forward, only the client used for the central display will be subscribed to the live Mongo query votes.find({}), the rest of the users will only see the vote / already voted button.

Having some data from a real case or test scenario would help us a lot.

  1. Would Meteor's infrastructure be able to handle 4000 users? Or should we go for some other hosting solution as listed in this deleted question (you need 10k+ rep to see it)?

  2. Are there any performance considerations specific to Meteor.js we should be aware of?

We have seen already similar posts, however none of them was dealing with such large amount of users in such a short time:

  • How much load can meteor's servers handle? (2013)
  • How efficient can Meteor be while sharing a huge collection among many clients?

Also, we could use the Cluster smart package. Anyone has any experience with this?

like image 269
francesco Avatar asked Aug 06 '13 15:08

francesco


People also ask

How many concurrent users can my website handle?

With a single CPU core, a web server can handle around 250 concurrent requests at one time, so with 2 CPU cores, your server can handle 500 visitors at the same time.

Is Meteor scalable?

If you don't need real-time then just use Meteor methods or Apollo. This will make Meteor as scalable as any other socket based node app. Do use out of the box pub/sub to validate ideas quickly but don't expect to scale without any tweaks.

How does meteor JS work?

Meteor allows you to develop in one language, JavaScript, in all environments: application server, web browser, and mobile device. Meteor uses data on the wire, meaning the server sends data, not HTML, and the client renders it.

Should I use Meteor JS?

If you are an experienced JavaScript developer, you should give Meteor a chance — you will certainly enjoy how fast and convenient the development process is. If you are a developer experienced in any language other than JavaScript but would like to master this language as well, Meteor.


1 Answers

UPDATE ClassCraft reports one Meteor server handling 6400 concurrent users. Read more in the Scalability section of my Why Meteor article.

See also the forum post
How Many Simultaneous Users Does the Biggest Current Meteor App Support?


Here's a benchmark not exactly about concurrent users, but rather about setting up subscriptions (arguably a more stressful test).

Arunoda has recently published the results of a test using meteor-down (a load testing tool similar to @alanning's meteor-load-test) and Cluster, a Meteor load balancing tool.

The test was run on the cheapest Digital Ocean servers (512MB RAM, $5/month), and the results were rather impressive:

enter image description here

For all the above scenarios, server response time is less than 8ms.

Essentially one commodity machine can handle 2500 Meteor subscriptions per minute and respond within 8 miliseconds. Horizontal scaling takes less than 5% overhead.

You can read more about the test at Meteor Cluster Performance Test: Impressive Results.

like image 54
Dan Dascalescu Avatar answered Sep 18 '22 14:09

Dan Dascalescu