Changes between Version 2 and Version 3 of PerformanceTesting
- Timestamp:
- 09/26/11 08:41:52 (13 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
PerformanceTesting
v2 v3 1 [[TOC(inline, depth=1)]] 2 1 3 = Introduction = 2 4 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. 5 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 and/or potentially useful configurations, as testing all combinations is practically impossible. 6 7 = Goals = 4 8 5 9 The tests have several goals: … … 59 63 * Other questions, which? 60 64 61 = Test environment s=65 = Test environment = 62 66 63 67 == General considerations == … … 67 71 == Amazon EC2 == 68 72 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 .73 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). 70 74 71 Test environment setup is handled by the Python deployment tool that utilizes Fabric under the hood(FIXME: add link).75 Test environment setup is handled by the Python deployment tool (see below) that utilizes Fabric under the hood. 72 76 73 77 == Local (LAN) == … … 75 79 LAN 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. 76 80 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 .81 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 derivatives). 78 82 79 83 == Configuring test server(s) == … … 83 87 The required steps: 84 88 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) 88 91 * Start OpenVPN 89 92 * Start memory/CPU usage monitoring tools … … 107 110 * Wait until the test is over 108 111 * Cleans up system state: 109 * Kill OpenVPN gracefully; should it fail, make s note of it and uses''kill -9''112 * Kill OpenVPN gracefully; should it fail, make note of it and use ''kill -9'' 110 113 * Flush routes 111 114 * 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 114 116 115 117 = Tools =