Changes between Version 2 and Version 3 of PerformanceTesting


Ignore:
Timestamp:
09/26/11 08:41:52 (13 years ago)
Author:
Samuli Seppänen
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • PerformanceTesting

    v2 v3  
     1[[TOC(inline, depth=1)]]
     2
    13= Introduction =
    24
    3 There have been significant changes in the future 2.3 branch since the relatively stable and conservative 2.1.x and 2.2.x releases. Therefore there's a definite need for wide testing in various areas, including performance. This page tries to outline what the most relevant tests are so that they can be ran on a regular basis during development to spot any regressions and bottlenecks. These tests are primarily aimed at the future OpenVPN 2.3 branch (current "master"). However, same setup can used to test older versions, too. Focus is on testing the most common configurations. If possible, potential bottlenecks are identified beforehand and tests focused there.
     5There have been significant changes in the future 2.3 branch since the relatively stable and conservative 2.1.x and 2.2.x releases. Therefore there's a definite need for wide testing in various areas, including performance. This page tries to outline what the most relevant tests are so that they can be ran on a regular basis during development to spot any regressions and bottlenecks. These tests are primarily aimed at the future OpenVPN 2.3 branch (current "master"). However, same setup can used to test older versions, too. Focus is on testing the most common and/or potentially useful configurations, as testing all combinations is practically impossible.
     6
     7= Goals =
    48
    59The tests have several goals:
     
    5963 * Other questions, which?
    6064
    61 = Test environments =
     65= Test environment =
    6266
    6367== General considerations ==
     
    6771== Amazon EC2 ==
    6872
    69 Amazon EC2 is used for maximum simultaneous connection testing, where a large number of clients is required. It can also be used for throughput tests, provided that the server and clients are in the same availability zone (to reduce unnecessary costs.
     73Amazon EC2 is used for maximum simultaneous connection testing, where a large number of clients is required. It can also be used for throughput tests, provided that the server and clients are in the same availability zone (to reduce unnecessary costs).
    7074
    71 Test environment setup is handled by the Python deployment tool that utilizes Fabric under the hood(FIXME: add link).
     75Test environment setup is handled by the Python deployment tool (see below) that utilizes Fabric under the hood.
    7276
    7377== Local (LAN) ==
     
    7579LAN environment is/can be used for throughput tests. Server and clients are connected to a high-quality, high-bandwidth switch to avoid forming external bottlenecks.
    7680
    77 Test environment setup is handled by the Python deployment tool that utilizes Fabric under the hood. Initial installation of client OSes is automated using FAE (Debian) or Kickstart (RHEL/Fedora derivative.
     81Test environment setup is handled by the Python deployment tool that utilizes Fabric under the hood. Initial installation of client OSes is automated using FAE (Debian) or Kickstart (RHEL/Fedora derivatives).
    7882
    7983== Configuring test server(s) ==
     
    8387The required steps:
    8488
    85  * Install precompiled OpenVPN binary and shared libraries
    86  * Install an OpenVPN configuration file
    87   * Repeat for all chosen configuration
     89 * Install a precompiled OpenVPN binary and shared libraries
     90 * Install an OpenVPN configuration file (for every configuration to test)
    8891 * Start OpenVPN
    8992 * Start memory/CPU usage monitoring tools
     
    107110  * Wait until the test is over
    108111  * Cleans up system state:
    109    * Kill OpenVPN gracefully; should it fail, makes note of it and uses ''kill -9''
     112   * Kill OpenVPN gracefully; should it fail, make note of it and use ''kill -9''
    110113   * Flush routes
    111114  * Push collected data into a centralized location (e.g. using SSH)
    112  * Install crontab entry for each test scenario
    113    * Launches a test script at a given time
     115 * Install crontab entry for each test scenario to launch a test script at a given time
    114116
    115117= Tools =