Configure throughput tests

Test & measurement requires an end-to-end client-server architecture, typically with the server installed in a datacenter and client installed at customer premise (mbox used as a CPE router). All boxes (server and clients) are connected back to mfusion, which controls testing scheduling and consolidate testing results for reporting and alerting etc.

CONFIGURATION STEPS

1. Install and provision mbox

Both central (server) and remote (client) mbox need to be installed and brought up online, and provisioned in mfusion. Follow this guide to provision mbox on mfusion portal.

2. Configure remote (client) mbox for throughput testing

All the testings are initiated from the remote client to server, there're a few points to NOTE:

  • both client and server must be provisioned in mfusion (as per #1 above).
  • server must have static IP address, accessible by all client, and if there's firewall in front of server, firewall needs to permit inbound TCP/5201
  • client mbox must be able to reach application servers using respective application ports for apps tests (eg. TCP/80/443, TCP/21/20, TCP/25, etc)
  • one server can support one test client connection at a time, so there's a chance that when a client sends test request while there's an existing testing session, the request will be ignore and the client has to wait for next schedule/try.
  • one client can send/simulate multiple sessions to server at each test connection
  • if we are measuring maximum capacity of the link on client side, the server side link bandwidth must be bigger than client side
  • tests are configured & schedule on mfusion portal, however, if the local mfusion agent detect substantial user traffic on the WAN link ( > 128Kbps), it will skip this scheduled run and try again for next schedule, until the actual link usage is below 128Kbps. This is to minimize user interference. If there're users using the link, we should not conduct the test to cause unnecessary congestion to genuine usage.
  • we can configure maintenance period to turn on/off the scheduled test. Hosts or host groups will not run tests during maintenance period. eg. usually to measure general link capacity, we only run tests at night.

Configuration of mbox test client is very straightforward, there are two steps:

  • enable iperf testing items. When we provision mbox into mfusion, each host/box should have been attached with a template (eg. mbox_CMG) which by default comes with iperf testing item but is disabled, so we just need to enable it back. Go to configuration --> host --> items, click and enable back the testing items.

- "iperf_upload" measures maximum upload speed

- "iperf_download" measures maximum download speed

- "iperf_jitter" measures link quality or constancy of link performance. This is important for VoIP traffic but not essential for browsing

  • Configure test parameters. We need to specify a few testing parameters (eg. server address, how many simulated user sessions, port no. etc). Go to configuration --> host --> Macros, add below parameters

- {$PORT} is the TCP port used to communicate with server. It's optional to configure here. By default is 5201

- {$SESSION}" is the simulated user session. It's optional to configure here. By default is 1

- ${TIME} is the total for each test run. It's optional. By default is 10 seconds

- ${RECEIVER} is remote testing server IP. It's a MUST to configure this paramter.

3. Access to testing data and reporting from mfusion

Each test result is instantly available on mfusion. It's the same like other monitoring data. Just go to Infra Monitoring --> MIM database, click on the desired host, select "host dashboard", refer to "link capacity".

Scheduled report can be created at Infra Monitoring --> Infra Report

4. Run ad-hoc throughput tests from CLI

For non-scheduled test (ad-hoc) test, we can run from command line to produce the results immediately.

1. configure mbox basic network settings so that client & server can talk to each other directly (details), and configure firewall-input rules to permit TCP/5201 on the server side. sample config below (replace blue config text)

============

!

hostname CMG-IPserf

!

interface eth 0

description "connect Internet"

enable

ip address x.x.x.x/yy

!

ip route 0.0.0.0/0 nexthop m.m.m.m

!

firewall-input 4 permit all tcp dport 5201 remark "permit iperf test"

!

============

2. run test.

- on the server side, under enable mode, run command "test server", keep the command prompt open, wait for client to send over requests.

- on the client side, run command "test throughput <server ip>"

The end-to-end throughput results will show immediately after the tests. In below results, to interpret from client output, sent refer to upload speed, Received refers to download speed.