Xojo Web Application, Amazon EC2, Scaling

Hi All,

I’m working with a client on a Xojo web/desktop back-end application and infrastructure architecture that will scale to thousands or 10’s of thousands of simultaneous users. We’ve selected Amazon as our provider for the infrastructure and Xojo as the enabling technology. I would like to suggest that Xojo Cloud would be on the plate, but that is not available yet.

Normally, I would suggest a node.js or Java solution for something of this scale however I’ve been impressed with the performance, memory footprint and ease of deployment Xojo Standalone web apps offer (no tomcat, apache, nginx, native performance, etc) .

Given the following:

  • Each Amazon AMI T1 micro Instance gives about 390-400mb of usable ram (from 600mb total after OS is loaded) and one CPU.
  • An EC2 instance will temporarily upgrade to 2 compute units based on load.
  • Xojo standalone applications are limited to 200 simultaneous sessions by default.

My questions are:

  • Can Xojo handle 200 simultaneous connections on a single EC2 instance given the memory limitations, CPU limitations of an Amazon AMI instance (see above)?
  • What are the memory requirements per instance, per session for a simple hello world application?
  • What is the best way to load test a Xojo web application?

We are in alpha at the moment so If anyone has experience with this, answers to the above would help us to predict the amount of cash we will need to spend on AWS services going forward.

Thanks in advance,

JIm

Super! I feel that the biggest challenge is the database. it does not seem obvious. Especially if the database has reached its limits and must be replicated on multiple instances (transactions…).

Do you think the app will run satisfactorily on a micro instance? Have you read Amazon’s documentation where they describe how the micro instance will be throttled if it uses too much CPU over a given period?

I’m not saying it won’t work, but just wondering if you’ve tried it yet and what kind of performance you got, and whether the app was throttled by Amazon. I have been contemplating doing something similar, but was planning on using small instances because of the above.

Oliver,

Thats a good question. The database performance so far has been superb. I don’t know how many instances it can support at this time and is one of the problems I have…in order to fully load test the database, I would need to spin up a ton of instances to get valid benchmarking data (which can be expensive).

Jay,

Another valid question however from what I can tell, A Xojo standalone “Hello World” Web application consumes about 12mb ram and 5% (on average) CPU cycles when idle. With one session that CPU usage can peak at 12%…I’m working on an application to load a single t1 micro instance so that I can get valid metrics on memory/cpu usage per session/per instance. And also to determine when Amazon will throttle the CPU. This metric is key to calculating cost.

Jay,

I forgot to mention, yes, so far the performance has been no problem. With the load balancer in the mix, even better (although, I’m not sure why this is).