This topic contains 2 replies, has 1 voice, and was last updated by  lev 7 years, 9 months ago.

Load Manager – Take 2

  • This article comes to replace article “Load Manager – Take 1″.

    To reply questions like “Can my hardware handle N channels?” or “How many channels my hardware can take at most?”, we have come up with initiative to create a tool for it. To make resources validation task measurable.

    This Load Manager tool is offered as example for advanced and enthusiastic Iguana Users.
    It is not ‘out of a box’ tool and need to be thoroughly reconfigured, to match any given system. Please feel free to modify and customize. Because it is more of engineering version, this tools code may contain some code which is not in use.

    Let’s see first how to answer question “Can my hardware handle N channels?”

    Module ‘LMConfig’ has detailed inline comments for all of configuration parameters.

    Please read comments in LMConfig thoroughly and adjust every configuration parameter as applicable with current goal and local system.

    Before proceeding to installation, few words about asynchronous nature of HTTP calls execution. Given we send HTTP calls to iguanaServer.lua for execution, our code doesn’t wait for action requested in call to complete, but keep running forward as soon as HTTP call responded. Thus we take advantage of ‘From HTTPS’ component, which allows to be configured to use multiple threads. Each thread (in ‘From HTTPS’ component) creates one channel to be tested, and validates this test channels configuration.

    Installation instructions:

    1. Install Iguana on Tested machine (I used Web Server Port 5621)

    2. Install Iguana on Tester machine (I used Web Server Port 6543 )

    3. Install Channel Manager on both

    4. Import channels to each machine, from respective repositories (attached below two zip files)

    5. Once channels are imported to Tested machine, stop Channel Manager

    6. Walk through Iguana channels configuration on Tested machine to identify any obvious errors there, if any. Apply ones best judgement, or leave ‘as is’ for now.

    7. No need to adjust the Translator scripts on Tested machine

    8. Configure on Tested machine “Settings > HTTP(S) Channel Settings”
    8.1. From HTTP Channels Server Use dedicated port
    8.2. Server Running Yes
    8.3. Port 6544
    8.4. Use HTTPS No
    8.5. Serve Files From a Directory No

    9. Tested machine is ready

    10. Walk through Iguana channels configuration on Tester machine to identify any obvious errors there, if any. Apply ones best judgement, or leave ‘as is’ for now. Configure “Settings > HTTP(S) Channel Settings” on Tester machine
    10.1. From HTTP Channels Server Use dedicated port
    10.2. Server Running Yes
    10.3. Port 6544
    10.4. Use HTTPS No
    10.5. Serve Files From a Directory No

    11. Open ‘From Translator’ script for channel ‘Remove test channels’ and complete configuration verification in ‘main’ module. Save a new Milestone if needed.

    12. Open ‘From Translator’ script for channel ‘Start test channels’ and complete configuration as needed. This script will need to know correct values for ‘TL’ and ‘TR’ variables defined in shared module ‘LMConfig’. Verify TR and TL have correct configuration and save a Milestone.

    13. Open ‘From Translator’ script for channel ‘Load Manager frontend’, and customize configuration in shared module ‘LMConfig’. What to change and why is in inline comments in module LMConfig itself. Save a Milestone to record your changes. Note that TL and TR we configured earlier in step (12), so no need to change them.

    14. Open ‘To Translator’ script for channel ‘Load Manager frontend’, and save a Milestone to record recent configuration changes (from step (13) with latest Milestone.

    15. Open ‘From Translator’ script for channel ‘Load Manager Backend’, and save a Milestone to record recent configuration changes (from step (13) with latest Milestone.

    16. Place into Iguana application folder copies of zip files for all of Translator projects you mentioned in LMConfig module. All skeleton projects I used, can be found in zip file below. Copy them to Iguana on application folders on both machines.

    Configuration completed.

    If you configured MAXLOAD = true, then you can start channel ‘Load Manager frontend’ and passively monitor both Iguanas Desktops, to see how channels built, executed, etc …

    When no more channels being added, make a note of number of running channels, of each type that you requested in LMConfig to create. This will be maximum load at approximate ‘sweet spot’ for this tested machine.
    Although it sounds so simple, but in fact it is very difficult to reach this point in load, and to make precise decision.
    Due to variety of Translator projects used with variety of Iguana channel types, it is not possible to predict all combinations, or to specify upfront any precise performance numbers. But one can get sort of estimation.
    The biggest dilemma in releasing this utility ‘into wild’ is that being improperly applied it can easily lead to false conclusions.

    The repeatable and predictable mode, of measuring a system, is to set MAXLOAD = false and to create specific number of channels, per your own configuration in LMConfig.

    One can create any specific number of channels, of any type, with any custom Translator projects, to simulate load as applicable with tested interfaces.

    Configure LMConfig to given scenario.

    Save Milestones in all of frontend and backend channels Translator projects.

    Launch ‘Load Manager frontend’ channel.

    Wait until all of requested channels got created.

    Launch channel named ‘Start test channels’.

    Launch (if needed) channels named ‘HL7 Test data generator” and “X12 Test data generator”,
    or apply your own choice of load to running channels.

    Observe Iguana counters in Dashboard and OS counters in Iguana Dashboard or other 3rd party tool.

    To clean the system, stop channel ‘Load Manager frontend’ and channel ‘Load Manager backend’.

    Launch channel ‘Remove test channels’ and wait until it stops. If not all the test channels got removed, then launch ‘Remove test channels’ channel repeatedly until all of test channels removed.

    When test channels all removed, stop ‘Load Manager HTTP Agent’ and ‘Load Manager Load Monitor’ channels on Tested machine.

    If some channels couldn’t be created due ‘permissions’ errors, then just repeat the test from beginning. Clean the system as explained above and relaunch ‘Load Manager frontend’ channel. When cleaning the system, verify that no yet processed data is left in channels queue.

    Yet completed, but first in queue to be worked on:
    – X12 Listener and X12 Client components
    – Custom Translator project to be used for ACK with LLP Listener component

    Replaced attached files with updated version…

    Attachments:
    You must be logged in to view attached files.

    Reason to replace files:
    – X12 Listener and X12 Client components completed
    – Custom Translator project now can be used for ACK with LLP Listener component and X12 Listener component

You must be logged in to reply to this topic.