This documentation related to the earlier version of Flashphoner.
We recommend you upgrade to the last version and check the actual documentation

Stress testing

This manual consist information about how to make Flashphoner stress tests.
We have a special Load tool, which helps you with that.

Load tool bundled as open source Flex project. You can download and build load tool from sources.
See: Downloads page to get sources. See also: Developer guide - how to build load tool

Flashphoner load tool is in progress now. This manual may have minor differences with real user interface(buttons, fields), but not in configs.


What is the stress testing

Stress testing is a form of testing that is used to determine the stability of a given system.
It involves testing beyond normal operational capacity, often to a breaking point, in order to observe the results.

We make stress testing to determine the maximum number of calls what one Flashphoner server can handle.

What is the Load tool

Load tool is the special flash application for simulating a large number of calls.
It has several options for customizing the test, and displays the logs during the testing process.

How the Load tool look

  1. Logs

    Client logs show what happens now

  2. Users state table

    This table show how many users are in each state

    • All - total number of users
    • Out - non-registered users
    • Free - registered users, free of any other state
    • Income - users who have incoming call now
    • Call - users who make outcoming call now
    • Talk - users who talking now
    • Sending video - users who send video now
  3. Main parameters section

    This is the parameters for main test configure

    • Accounts - click to get accounts from general.xml config.
      Here you need specify from/to borders of account base for this load tool.
      For example, if your set 1-10 - accounts from 1st to 10th from general.xml will be used.
    • Count of call - interval, how many calls you want to have permanent during the test.
      Learn more about Keeping calls number algorithm in the How the Load tool work section.
    • Min time of call - minumum call duration
    • Call self - does user can call to himself?
    • Enable video calls - is video calls enabled?
    • Apply - click to apply parameters
    • Start - click to start the test
  4. Users behavior table

    In this table we define a model of users behavior in each state.
    At the intersection of the "State" line and the "Action" column is the number of percetns. It denotes the percentage of cases in which the user will perform this action in this state.

    Learn more about Users behavior algorithm in the How the Load tool work section.

    There is the list of users actions

    • Login - user registers
    • Hangup - user hangs up
    • Logoff - user unregisters
    • Answer - user answers the incoming call
    • Call - user calls
    • Send video/Stop video - user sends bideo or stops it
    • Null - user do nothing

How the Load tool work

  1. Accounts

    Load tool use config general.xml as account base. It located in application root folder.

    general.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <flashphoner_accounts>
    <from>1</from>
    <to>300</to>
    <account_1>sip:[email protected]:5060,2001</account_1>
    <account_2>sip:[email protected]:5060,2002</account_2>
    ...
    <account_999>sip:[email protected]:5060,2999</account_999>
    <account_1000>sip:[email protected]:5060,3000</account_1000>
    </flashphoner_accounts>
    
  2. General test algorithm

    During the test each account do random action every 5 seconds.
    User action depends on:

    • Current user state
      Different states has different sets of actions. For example in the "Call" state user can`t call, because he already did it.
    • User behavior model
      Based on data from the Users behavior table
  3. States and actions

    There are lists of actions for each states. This actions users can do from this states.

    • Out - Login, Null
    • Free - Logoff, Call, Null
    • Income - Hangup, Logoff, Answer, Null
    • Call - Hangup, Logoff, Null
    • Talk - Hangup, Logoff, Send/Stop video, Null
    • Sending video - ...
  4. Users behavior algorithm

    For imitation users behavior in real production, we did it customizable.
    As was written above, you can specify the percentage of cases in which the user makes a particular action.
    For example your User behavior table looks like this:

      Hangup Logoff Answer Call     Send/
    Stop
    video  
    Null    
    Free - 5 - 80 - 15
    Incom 5 5 80 - - 10
    Call 5 5 - - - 90
    Talk 5 5 - - 80 10

    This means the user will often (80%) Сall when he is Free, almost always (80%) Answer when he has Incoming call, rarely (5%) Hangup during the talk, and quite often (80%) Send his video to the interlocutor.
    Thus, you can configure the most natural user behavior.

  5. Keeping calls number algorithm

    The purpose of the algorithm - to keep the number of calls at the same level (specified in the Count of call parameter) but constantly change people. This approach simulates reality quite well.
    Algorithm work like this:

    • If Calls number < Count of call - in the Incoming state users can do only Answer
    • If Calls numberCount of call - in the Incoming state users can do all actions
    • If Calls number > Count of call - in the Incoming state users can do only Hangup
  6. "Min call time" parameter

    This parameter need to balance load between signaling and media traffic.

    • Min time call short (few seconds)
      Server mostly will be loaded by the signaling processing.
      Users take a new decision every 5 seconds (this option can not be changed), so in this case they will do many connects, and make short talks.
    • Min time call long (few minutes)
      Server mostly will be loaded by the media processing.
      Users will rarely make the connection but talk for a long time every time.
      The main task of the server will transcode and transmit mediatrafik.

How to make a stress test

  1. Prepare

    You will need

    • Flashphoner unlimited license
      No need to buy it. Please write us, and we will send you unlimited in connections but limited in time license.
    • Wowza unlimit license
      No need to buy it. Use the Wowza Media Server evaluation license.
      You can order it here
    • 100-300 sip accounts
      Most likely it will require your own IP PBX, like Asterisk. You need to generate this accounts or get it from your friendly voip operator (all, top5).
      For example, Load tool consist two Asterisk config files, configured to 1000 accounts.
      • extensions.conf
        [default]
        ;exten=>2001,1,answer()
        ;exten=>2001,2,background(conf-adminmenu)
        ;exten=>2001,3,hangup()
        ;exten=>1,1,playback(digits/1)
        ;exten=>1,2,goto(default,2001,1)
        ...
        
        exten=>2001,1,Dial(SIP/2001)
        ...
        
        
      • sip.conf
        [general]
        bindport=5060
        bindaddr=66.666.666.66
        context=default
        dtmfmode=info
        videosupport=yes
        allow=all
        
        [2001]
        type=friend
        secret=2001
        host=dynamic
        canreinvite=no
        dtmfmode=info
        nat=yes
        ...
        
        
  2. Test

    We suppose here, that your already have Flashphoner installed and it works good.
    If not - please download it, install  it and configure it. For assistance check support page or contact us at [email protected]

    • Download Load tool
      Check this on the downloads page
    • Create sip accounts
      You need to create a number of accounts required for the test.
      To do this, follow the instructions of your IP PBX
    • Configure Load tool
      • Open flashphoner.xml and set ip of your IP PBX instead of default value
      • Configure general.xml as described in the How the Load tool work --> Accounts section 
      • Configure other parameters accordingly to How the Load tool work section and click Apply to save the parameters
    • Configure Flashphoner server
      Add to the flashphoner.properties this parameter
      speex_g711_speex_transcoding=true

      After that server will transcodes Flash-to-Flash calls this way: Speex->G711->Speex.
      If you do not set this parameter in true, server will not transcodes Flash-to-Flash calls at all (both sides support Speex - no need to transcode)
      So in this case you could not check how transcode operation load CPU and Memory.
      Transcoding added such an artificial way because for tests we use flash application on the both sides.

    • Click "Accounts" button
      After that Load tool will get parameters from general.xml
    • Click "Start" button
      After that tests will started and you will see changing in the Logs and in the Users state table
  3. Monitoring the results

    During the tests we need to monitor the results, otherwise it all makes no sense.

    • Flashphoner logs
      Will be updated
    • Wowza JMX console
      Will be updated

Labels

stress stress Delete
test test Delete
tests tests Delete
perfomance perfomance Delete
load load Delete
tool tool Delete
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.