Jump to: navigation, search

Difference between revisions of "Jetty/Contributor Release Testing Check List"

m
 
(5 intermediate revisions by one other user not shown)
Line 2: Line 2:
 
| category =
 
| category =
 
==Testing a Jetty Release==
 
==Testing a Jetty Release==
 +
 +
{{Jetty Redirect|http://www.eclipse.org/jetty/documentation/current/release-testing.html}}
  
 
To test a Jetty release, complete the following steps for each release you want to test:
 
To test a Jetty release, complete the following steps for each release you want to test:
Line 12: Line 14:
 
  wget https://oss.sonatype.org/content/repositories/jetty-[reponumber]/org/eclipse/jetty/jetty-distribution/[jetty-version]/jetty-distribution-8.[jetty-minor-version].tar.gz
 
  wget https://oss.sonatype.org/content/repositories/jetty-[reponumber]/org/eclipse/jetty/jetty-distribution/[jetty-version]/jetty-distribution-8.[jetty-minor-version].tar.gz
  
<li> Extract to a directory of your choice.
+
<li> Extract to a directory of your choice.</li>
 
<li>Start jetty:
 
<li>Start jetty:
</li><tt>cd [installdir] ; java -jar start.jar OPTIONS=rewrite etc/jetty-rewrite.xml etc/jetty-ssl.xml</tt>
+
</li>
 +
cd [installdir] ; java -jar start.jar OPTIONS=rewrite etc/jetty-rewrite.xml etc/jetty-ssl.xml
 
<li>If there are no exceptions, proceed. Otherwise, investigate.
 
<li>If there are no exceptions, proceed. Otherwise, investigate.
 
<li>Open <nowiki>http://localhost:8080/</nowiki> in your favourite browser.
 
<li>Open <nowiki>http://localhost:8080/</nowiki> in your favourite browser.
Line 20: Line 23:
 
<li>Go through ALL the tests and verify that everything works as expected.
 
<li>Go through ALL the tests and verify that everything works as expected.
 
<li>Verify that hot deployment works.
 
<li>Verify that hot deployment works.
</li><pre>touch [pathToJettyDistribution]/contexts/test.xml</pre>
+
</li>
 +
touch [pathToJettyDistribution]/contexts/test.xml
 
<li>Verify that <tt>test.war</tt> gets redeployed in <tt>STDOUT</tt>.
 
<li>Verify that <tt>test.war</tt> gets redeployed in <tt>STDOUT</tt>.
  
Line 26: Line 30:
  
 
<ol>
 
<ol>
<li> <pre>clone git://github.com/cometd/cometd.git
+
<li> Clone CometD.
</li>git clone git://github.com/cometd/cometd.git</pre>
+
</li>
<li> Edit pom.xml and update <tt>jetty-version</tt> and repository URL to match the current staged release.
+
clone git://github.com/cometd/cometd.git
 +
git clone git://github.com/cometd/cometd.git
 +
<li> Edit <tt>pom.xml</tt> and update <tt>jetty-version</tt> and repository URL to match the current staged release.
 
</li>
 
</li>
 
     <properties>
 
     <properties>
Line 37: Line 43:
 
         <spring-version>3.1.0.RELEASE</spring-version>
 
         <spring-version>3.1.0.RELEASE</spring-version>
 
     </properties>
 
     </properties>
 
+
    <repositories>
  <repositories>
+
 
     <repository>
 
     <repository>
 
       <id>Jetty Staging</id>
 
       <id>Jetty Staging</id>
Line 45: Line 50:
 
   </repositories>
 
   </repositories>
  
<li> Build cometd:
+
<li> Build Cometd:
</li><tt>mvn clean install</tt>
+
</li>
 +
mvn clean install
 
<li>Be patient.
 
<li>Be patient.
<li>Run the loadtest as it is described here: http://cometd.org/documentation/2.x/howtos/loadtesting
+
<li>Run the loadtest as it is described here: http://cometd.org/documentation/2.x/howtos/loadtesting. Keep the default values, but make sure that you raise the clients setting to 1000. Run the loadtest until ''JIT compilation time'' is close to a value of zero (about 10k calls).
Keep the default values, but make sure that you raise the clients setting to 1000. Run the loadtest until ''JIT compilation time'' is close to a value of zero after about 10k calls).
+
 
<li>Make sure that the performance results are reasonably fast. On a MacBook Pro i7 2.6ghz dualcore produces the following:
 
<li>Make sure that the performance results are reasonably fast. On a MacBook Pro i7 2.6ghz dualcore produces the following:
 
+
<source lang="bash">
========================================
+
========================================
 
Statistics Started at Fri Mar 09 13:44:35 CET 2012
 
Statistics Started at Fri Mar 09 13:44:35 CET 2012
 
Operative System: Mac OS X 10.7.3 amd64
 
Operative System: Mac OS X 10.7.3 amd64
Line 118: Line 123:
 
Messages - Network Latency Min/Ave/Max = 1/114/417 ms
 
Messages - Network Latency Min/Ave/Max = 1/114/417 ms
 
Thread Pool - Concurrent Threads max = 239 | Queue Size max = 1002 | Queue Latency avg/max = 12/101 ms
 
Thread Pool - Concurrent Threads max = 239 | Queue Size max = 1002 | Queue Latency avg/max = 12/101 ms
 +
</source>
 +
<li> Deploy <tt>cometd.war</tt> to the <tt>webapps</tt> directory of the jetty-distribution tested above.
 +
</li>
 +
cp cometd-demo/target/cometd-demo-[version].war [pathToJetty]/jetty-distribution-[jetty-version]/webapps/
 +
<li>Start jetty and make sure there are no exceptions.
 +
</li>
 +
cd [pathToJetty] && java -jar start.jar
 +
<li>Go through all pages of the demo and test them:
 +
</li>
 +
http://localhost:8080/cometd-demo-2.4.1-SNAPSHOT/
  
6. deploy cometd.war to the webapps directory of the jetty-distribution tested above
+
If all tests are green, you are done! 
 
+
cp cometd-demo/target/cometd-demo-[version].war [pathToJetty]/jetty-distribution-[jetty-version]/webapps/
+
 
+
7. start jetty and make sure there's no exceptions
+
 
+
cd [pathToJetty] && java -jar start.jar
+
 
+
8. go through all pages of the demo and test them:
+
 
+
http://localhost:8080/cometd-demo-2.4.1-SNAPSHOT/
+
 
+
9. All tests green?
+
 
}}
 
}}

Latest revision as of 14:54, 23 April 2013



Testing a Jetty Release


To test a Jetty release, complete the following steps for each release you want to test:

  1. Download the staged release:
  2. For Jetty 7:
    wget https://oss.sonatype.org/content/repositories/jetty-[reponumber]/org/eclipse/jetty/jetty-distribution/[jetty-version]/ jetty-distribution-7.[jetty-minor-version].tar.gz
    

    For Jetty 8:

    wget https://oss.sonatype.org/content/repositories/jetty-[reponumber]/org/eclipse/jetty/jetty-distribution/[jetty-version]/jetty-distribution-8.[jetty-minor-version].tar.gz
    
  3. Extract to a directory of your choice.
  4. Start jetty:
  5. cd [installdir] ; java -jar start.jar OPTIONS=rewrite etc/jetty-rewrite.xml etc/jetty-ssl.xml
    
  6. If there are no exceptions, proceed. Otherwise, investigate.
  7. Open http://localhost:8080/ in your favourite browser.
  8. You should see the test.war webapp.
  9. Go through ALL the tests and verify that everything works as expected.
  10. Verify that hot deployment works.
  11. touch [pathToJettyDistribution]/contexts/test.xml
    
  12. Verify that test.war gets redeployed in STDOUT.

    Testing CometD

    1. Clone CometD.
    2. clone git://github.com/cometd/cometd.git
      git clone git://github.com/cometd/cometd.git
      
    3. Edit pom.xml and update jetty-version and repository URL to match the current staged release.
    4.    <properties>
             <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
             <jetty-version>7.6.2.v20120308</jetty-version>
             <jetty-plugin-version>${jetty-version}</jetty-plugin-version>
             <slf4j-version>1.6.4</slf4j-version>
             <spring-version>3.1.0.RELEASE</spring-version>
         </properties>
         <repositories>
         <repository>
           <id>Jetty Staging</id>
           <url>https://oss.sonatype.org/content/repositories/jetty-988/</url>
         </repository>
       </repositories>
      
    5. Build Cometd:
    6. mvn clean install
      
    7. Be patient.
    8. Run the loadtest as it is described here: http://cometd.org/documentation/2.x/howtos/loadtesting. Keep the default values, but make sure that you raise the clients setting to 1000. Run the loadtest until JIT compilation time is close to a value of zero (about 10k calls).
    9. Make sure that the performance results are reasonably fast. On a MacBook Pro i7 2.6ghz dualcore produces the following:
       ========================================
      Statistics Started at Fri Mar 09 13:44:35 CET 2012
      Operative System: Mac OS X 10.7.3 amd64
      JVM : Oracle Corporation Java HotSpot(TM) 64-Bit Server VM runtime 23.0-b16 1.7.0_04-ea-b14
      Processors: 4
      System Memory: 99.583336% used of 30.0 GiB
      Used Heap Size: 36.490677 MiB
      Max Heap Size: 1920.0 MiB
      Young Generation Heap Size: 896.0 MiB
      - - - - - - - - - - - - - - - - - - - -
      Testing 1000 clients in 100 rooms, 10 rooms/client
      Sending 1000 batches of 10x50 bytes messages every 10000 µs
      [GC [PSYoungGen: 786432K->8736K(917504K)] 823650K->45954K(1966080K), 0.0309940 secs] [Times: user=0.09 sys=0.00, real=0.03 secs]
      [GC [PSYoungGen: 795168K->11424K(917504K)] 832386K->48642K(1966080K), 0.0513360 secs] [Times: user=0.13 sys=0.00, real=0.05 secs]
      [GC [PSYoungGen: 797856K->14560K(917504K)] 835074K->51778K(1966080K), 0.0432940 secs] [Times: user=0.12 sys=0.00, real=0.05 secs]
      [GC [PSYoungGen: 800992K->15680K(917504K)] 838210K->52898K(1966080K), 0.0491200 secs] [Times: user=0.14 sys=0.00, real=0.05 secs]
      [GC [PSYoungGen: 802112K->17568K(917504K)] 839330K->54786K(1966080K), 0.0484950 secs] [Times: user=0.14 sys=0.00, real=0.05 secs]
      [GC [PSYoungGen: 804000K->17600K(917504K)] 841218K->54818K(1966080K), 0.0456460 secs] [Times: user=0.14 sys=0.01, real=0.05 secs]
      [GC [PSYoungGen: 804032K->19488K(917504K)] 841250K->56706K(1966080K), 0.0542000 secs] [Times: user=0.15 sys=0.00, real=0.05 secs]
      [GC [PSYoungGen: 805920K->20224K(917504K)] 843138K->57442K(1966080K), 0.0486350 secs] [Times: user=0.16 sys=0.00, real=0.05 secs]
      [GC [PSYoungGen: 806656K->20192K(917504K)] 843874K->57410K(1966080K), 0.0566690 secs] [Times: user=0.15 sys=0.00, real=0.06 secs]
      [GC [PSYoungGen: 806624K->21152K(917504K)] 843842K->58370K(1966080K), 0.0536740 secs] [Times: user=0.16 sys=0.00, real=0.06 secs]
      [GC [PSYoungGen: 807584K->21088K(917504K)] 844802K->58306K(1966080K), 0.0576060 secs] [Times: user=0.18 sys=0.00, real=0.06 secs]
      [GC [PSYoungGen: 807520K->22080K(917504K)] 844738K->59298K(1966080K), 0.0663300 secs] [Times: user=0.19 sys=0.01, real=0.06 secs]
      - - - - - - - - - - - - - - - - - - - -
      Statistics Ended at Fri Mar 09 13:45:21 CET 2012
      Elapsed time: 45826 ms
          Time in JIT compilation: 52 ms
          Time in Young Generation GC: 606 ms (12 collections)
          Time in Old Generation GC: 0 ms (0 collections)
      Garbage Generated in Young Generation: 9036.513 MiB
      Garbage Generated in Survivor Generation: 21.65625 MiB
      Garbage Generated in Old Generation: 0.0 MiB
      Average CPU Load: 156.54865/400
      ----------------------------------------
       
      Outgoing: Elapsed = 45820 ms | Rate = 218 messages/s - 21 requests/s - ~0.083 Mib/s
      Waiting for messages to arrive 996960/999045
      All messages arrived 999045/999045
      Messages - Success/Expected = 999045/999045
      Incoming - Elapsed = 45945 ms | Rate = 21743 messages/s - 9496 responses/s(43.68%) - ~8.295 Mib/s
      Messages - Wall Latency Distribution Curve (X axis: Frequency, Y axis: Latency):
       @                    _  24 ms (8765, 0.88%)
             @              _  45 ms (58952, 5.90%)
                @           _  67 ms (87065, 8.71%)
                   @        _  88 ms (113786, 11.39%)
                         @  _  109 ms (167426, 16.76%)
                         @  _  131 ms (176163, 17.63%) ^50%
                    @       _  152 ms (123182, 12.33%)
                @           _  174 ms (90918, 9.10%)
              @             _  195 ms (67209, 6.73%) ^85%
           @                _  216 ms (46989, 4.70%)
         @                  _  238 ms (24975, 2.50%) ^95%
        @                   _  259 ms (16509, 1.65%)
       @                    _  281 ms (8454, 0.85%) ^99%
      @                     _  302 ms (4324, 0.43%)
      @                     _  323 ms (2955, 0.30%)
      @                     _  345 ms (957, 0.10%) ^99.9%
      @                     _  366 ms (204, 0.02%)
      @                     _  388 ms (144, 0.01%)
      @                     _  409 ms (25, 0.00%)
      @                     _  430 ms (43, 0.00%)
      Messages - Wall Latency 50th%/99th% = 117/275 ms
      Messages - Wall Latency Min/Ave/Max = 2/123/430 ms
      Messages - Network Latency Min/Ave/Max = 1/114/417 ms
      Thread Pool - Concurrent Threads max = 239 | Queue Size max = 1002 | Queue Latency avg/max = 12/101 ms
    10. Deploy cometd.war to the webapps directory of the jetty-distribution tested above.
    11. cp cometd-demo/target/cometd-demo-[version].war [pathToJetty]/jetty-distribution-[jetty-version]/webapps/
      
    12. Start jetty and make sure there are no exceptions.
    13. cd [pathToJetty] && java -jar start.jar
      
    14. Go through all pages of the demo and test them:
    15. http://localhost:8080/cometd-demo-2.4.1-SNAPSHOT/
      

      If all tests are green, you are done!