Skip to main content
August 5, 2011
Question

How to determine when FMS is starting to get overloaded?

  • August 5, 2011
  • 1 reply
  • 3048 views

We have a set of FMS's deployed on Amazon's EC2.  One of the things we want to be able to do is automatically detect when we should start up another FMS instance.  To do that, I've been looking for metrics I could measure on the local FMS box to help me identify "transition" points, e.g., when we should add capacity or remove excess capacity.

I ran some load testing to find out where the capacity limits of a particular box, but ran into a couple of problems:

   * Traditional system metrics (cpu/memory/run queue length) did not do a great job of predicting when we'd hit a wall.  Load was really the only thing that seemed to climb much and it was only at about 4 (on a 4-core box) when things went south.

   * When we *did* hit a wall, it was a pretty sharp cliff.  We seemed to be doing fine at 70+70 streams (~300kbps streams in reflected out) and at 75+75 streams, but when I went to 80+80 streams, BAM!  Things just started unravelling.  With very little in the way of error logs to indicate what might be happening.  But all of the sudden, my counters for simultaneous streams/etc dropped down from 80ish to 20ish (I was still publishing 80 to the server).

I tried bumping up the EC2 instance size (under the theory that we were being bandwidth-capped or stream-capped), but didn't really see much difference.

I see two possibilities:

  * We actually are being bandwidth- or stream- capped and going up to a bigger box didn't help

  * There are a number of other metrics on the server I could look at that would have shown a gradual degradation.

Assuming the latter, does anyone have any suggestions for what metrics I might measure on the FMS to decide if we were starting to get loaded?  For example, I've thought about comparing Stream.time to NetStream.time for streams I'm reflecting out of the server.

    This topic has been closed for replies.

    1 reply

    calmchessplayer
    Inspiring
    August 6, 2011

    You can determine that your FMS server is overloaded when your server does any of the followi

    ng ....phisically breaks down, runs out of ram, has no bandwidth, you have server side code that is inefficent or you have a  client side file that is making 100 connections per client.

    August 8, 2011

    The goal here is to detect warning signs of load _before_ failure.  I'm looking for a metric that would most closely match user subjective experience.  Also, the check needs to be automatable (either via server-side action script or a separate program running on the box).

    calmchessplayer
    Inspiring
    August 9, 2011

    Well its like this you need to know how many users your server can handle before it fails there is no real way to load test it without haveing alot of people log into your application. FMS theoretically can handle as many users as you can throw at it before your hardware either fails or runs out of resources such as ram. So if you are unable to monitor your server and determine ok when say 100 more users log on it is going to fail at which point your only option is to say add a new server loadbalancer or edge server. or put a message up saying our site has failed please come back when we have bought more junk to support you. By the way facebook we have more users than you hahahah I say this because your site will probably never acheive more users than your server can handle unless you are using a desktop computer to run FMS.