Edit
Attach
P
rintable
r9 - 2014-03-05 - 14:25:08 - Main.raube
You are here:
TWiki
>
Deployment Web
>
DeploymentPlanningAndDesign
>
PerformanceDatasheetsAndSizingGuidelines
>
CollaborativeLifecycleManagementPerformanceReportRQM406Release
<div id="header-title" style="padding: 10px 15px; border-width:1px; border-style:solid; border-color:#FFD28C; background-image: url(<nop>https://jazz.net/wiki/pub/Deployment/WebPreferences/TLASE.jpg); background-size: cover; font-size:120%"> <!-- * Set ALLOWTOPICCHANGE = Main.TWikiDeploymentDatasheetsAuthorsGroup, Main.TWikiAdminGroup, Main.GrantCovell --> ---+!! <img src="https://jazz.net/wiki/pub/Deployment/WebPreferences/new.png" alt="new.png" width="50" height="50" align="right">Collaborative Lifecycle Management performance report: Rational Quality Manager 4.0.6 release</br> %DKGRAY% Authors: [[Main.FelixChen][Felix Chen]]</br> Last updated: Jan 24, 2014</br> Build basis: Rational Quality Manager 4.0.6 %ENDCOLOR%</div></sticky> <!-- Page contents top of page on right hand side in box --> <sticky><div style="float:right; border-width:1px; border-style:solid; border-color:#DFDFDF; background-color:#F6F6F6; margin:0 0 15px 15px; padding: 0 15px 0 15px;"> %TOC{title="Page contents"}% </div></sticky> <sticky><div style="margin:15px;"></sticky> ---++ Introduction This report compares the performance of an unclustered Rational Quality Manager version 4.0.6 deployment to the previous 4.0.5 release. The test objective is achieved in three steps: * Run version 4.0.5 with standard 1-hour test using 1,000 concurrent users. * Run version 4.0.6 with standard 1-hour test using 1,000 concurrent users. * The test is run three time for each version and the resulting six tests are compared with each other. Three tests per version is used to get a more accurate picture since there are variations expected between runs. ---+++!! Disclaimer %INCLUDE{"PerformanceDatasheetDisclaimer"}% ---++ Findings ---+++ Performance goals * Verify that there are no performance regressions between current release and prior release with 1,000 concurrent users using the workload described below. ---+++ Findings * According to the testing results, the response times of the pages for 4.0.6 are roughly equivalent to 4.0.5 . * Comparing nmon data for both 4.0.6 and 4.0.5 show similar CPU, memory and disk utilization on application servers and database server. ---++ Topology The topology under test is based on [[https://jazz.net/library/article/820#Enterprise_Distributed_Linux__DB2][Standard Topology (E1) Enterprise - Distributed / Linux / DB2.]] <img src="%ATTACHURLPATH%/ServerOverview.png" alt="Server Overview" width="60%" height="60%" /> The specifications of machines under test are listed in the table below. Server tuning details listed in *[[#AppendixA][Appendix A]]* <table class="gray-table"> <tbody> <tr> <th valign="top">Function</th> <th valign="top">Number of Machines</th> <th valign="top">Machine Type</th> <th valign="top">CPU / Machine</th> <th valign="top">Total # of CPU vCores/Machine</th> <th valign="top">Memory/Machine</th> <th valign="top">Disk</th> <th valign="top">Disk capacity</th> <th valign="top">Network interface</th> <th valign="top">OS and Version</th> </tr> <tr> <td>Proxy Server (IBM HTTP Server and !WebSphere Plugin)</td> <td>1</td> <td>IBM System x3250 M4</td> <td>1 x Intel Xeon E3-1240 3.4GHz (quad-core)</td> <td>8</td> <td>16GB</td> <td>RAID 1 -- SAS Disk x 2</td> <td>279GB</td> <td>Gigabit Ethernet</td> <td>Red Hat Enterprise Linux Server release 6.4 (Santiago)</td> </tr> <tr> <td>JTS Server</td> <td>1</td> <td>IBM System x3550 M4</td> <td>2 x Intel Xeon E5-2640 2.5GHz (six-core)</td> <td>24</td> <td>32GB</td> <td>RAID 5 -- SAS Disk x 4</td> <td>279GB</td> <td>Gigabit Ethernet</td> <td>Red Hat Enterprise Linux Server release 6.4 (Santiago)</td> </tr> <tr> <td>QM Server</td> <td>1</td> <td>IBM System x3550 M4</td> <td>2 x Intel Xeon E5-2640 2.5GHz (six-core)</td> <td>24</td> <td>32GB</td> <td>RAID 5 -- SAS Disk x 4</td> <td>279GB</td> <td>Gigabit Ethernet</td> <td>Red Hat Enterprise Linux Server release 6.3 (Santiago)</td> </tr> <tr> <td>Database Server</td> <td>1</td> <td>IBM System x3650 M4</td> <td>2 x Intel Xeon E5-2640 2.5GHz (six-core)</td> <td>24</td> <td>64GB</td> <td>RAID 10 -- SAS Disk x 16</td> <td>279GB</td> <td>Gigabit Ethernet</td> <td>Red Hat Enterprise Linux Server release 6.1 (Santiago)</td> </tr> <tr> <td>RPT workbench</td> <td>1</td> <td>IBM System x3550 M4</td> <td>2 x Intel Xeon E5-2640 2.5GHz (six-core)</td> <td>24</td> <td>32GB</td> <td>RAID 5 -- SAS Disk x 4</td> <td>279GB</td> <td>Gigabit Ethernet</td> <td>Red Hat Enterprise Linux Server release 6.3 (Santiago)</td> </tr> <tr> <td>RPT Agents</td> <td>6</td> <td>VM image</td> <td>4 x Intel Xeon X5650 CPU (1-Core 2.67GHz)</td> <td>4</td> <td>4GB</td> <td>SCSI</td> <td>50GB</td> <td>Gigabit Ethernet</td> <td>Red Hat Enterprise Linux Server release 6.2 (Santiago)</td> </tr> <tr> <td>Network switches</td> <td>N/A</td> <td>Cisco 2960G-24TC-L</td> <td>N/A</td> <td>N/A</td> <td>N/A</td> <td>N/A</td> <td>N/A</td> <td>Gigabit Ethernet</td> <td>24 Ethernet 10/100/1000 ports</td> </tr> </tbody> </table> N/A: Not applicable. vCores = Cores with hyperthreading ---+++Network connectivity All server machines and test clients are located on the same subnet. The LAN has 1000 Mbps of maximum bandwidth and less than 0.3 ms latency in ping. ---+++Data volume and shape The artifacts were contained in *one* large project for a total of 579,142 artifacts. The repository contained the following data: * 50 test plans * 30,000 test scripts * 30,000 test cases * 120,000 test case execution records * 360,000 test case results * 3,000 test suites * 5,000 work items(defects) * 200 test environments * 600 test phases * 30 build definitions * 6,262 execution sequences * 3,000 test suite execution records * 15,000 test suite execution results * 6,000 build records * Database size = 15 GB * QM index size = 1.3 GB ---++Methodology Rational Performance Tester(RPT) was used to simulate the workload created using the web client. Each user completed a random use case from a set of available use cases. A Rational Performance Tester script is created for each use case. The scripts are organized by pages and each page represents a user action. The work load is role based as each of the areas defined under sequence of actions which are separated into individual user groups within an RPT schedule. The settings of the RPT schedule have been changed for RQM 4.0.6 performance test so that a global GC will not occur during the staging phase. Please also refer to the QM GC map. <img src="%ATTACHURLPATH%/userload.jpg" width="50%" height="50%"/> ---+++User roles, test cases and workload characterization *User Roles* #UserRoles <table class="gray-table"> <tbody> <tr> <th align="center" height="40"><b>Use role</b></th> <th align="center" height="40"><b>% of Total</b></th> <th align="center" height="40"><b>Related Actions</b></th> </tr> <tr> <td>QE Manager</td> <td align="center">8</td> <td>Test plan create, Browse test plan and test case, Browse test script, Simple test plan copy, Defect search, View dashboard</td> </tr> <tr> <td>Test Lead</td> <td align="center">19</td> <td>Edit Test Environments, Edit test plan, Create test case, Bulk edit of test cases, Full text search, Browse test script, Test Execution, Defect search</td> </tr> <tr> <td>Tester</td> <td align="center">68</td> <td>Defect create, Defect modify, Defect search, Edit test case, Create test script, Edit test script, Test Execution, Browse test execution record</td> </tr> <tr> <td>Dashboard Viewer</td> <td align="center">5</td> <td>View dashboard(with login and logout)</td> </tr> </tbody> </table> *Test Cases* #TestCases <table class="gray-table"> <tbody> <tr> <th align="center" height="40"><b>Use Role</b></th> <th align="left" height="40"><b>Percentage of the user role</b></th> <th align="left" height="40"><b>Sequence of Operations</b></th> </tr> <tr> <td rowspan=6>QE Manager</td> <td align="center">1</td> <td>[[#TestPlanCreate][Test plan create]]:user creates test plan, then adds description, business objectives, test objectives, 2 test schedules, test estimate quality objectives and entry and exit criteria.</td> </tr> <tr> <td align="center">26</td> <td>[[#BrowseTestPlansAndTestCases][Browse test plans and test cases]]: user browses assets by: View Test Plans, then configure View Builder for name search; open test plan found, review various sections, then close. Search for test case by name, opens test case found, review various sections, then close.</td> </tr> <tr> <td align="center">26</td> <td>[[#BrowseTestScript][Browse test script]]: user search for test script by name, open it, reviews it, then closes.</td> </tr> <tr> <td align="center">1</td> <td>[[#SimpleTestPlanCopy][Simple test plan copy]]: user search test plan by name, then select one, then make a copy.</td> </tr> <tr> <td align="center">23</td> <td>[[#DefectSearch][Defect search]]: user searches for specific defect by number, user reviews the defect (pause), then closes.</td> </tr> <tr> <td align="center">20</td> <td>[[#ViewDashboard][View Dashboard]]: user views dashboard</td> </tr> <tr> <td rowspan=8>Test Lead</td> <td align="center">8</td> <td>[[#EditTestEnvironment][Edit Test Environment]]: user lists all test environments, and then selects one of the environments and modifies it.</td> </tr> <tr> <td align="center">15</td> <td>[[#EditTestPlan][Edit test plan]]: list all test plans; from query result, open a test plan for editing, add a test case to the test plan, a few other sections of the test plan are edited and then the test plan is saved.</td> </tr> <tr> <td align="center">4</td> <td>[[#TestCaseCreate][Create test case]]: user create test case by: opening the Create Test Case page, enters data for a new test case, and then saves the test case.</td> </tr> <tr> <td align="center">1</td> <td>[[#BulkEditofTestCases][Bulk edit of test cases]]: user searches for test cases with root name and edits all found with owner change.</td> </tr> <tr> <td align="center">3</td> <td>[[#FullTextSearch][Full text search]]: user does a full text search of all assets in repository using root name, then opens one of found items.</td> </tr> <tr> <td align="center">32</td> <td>[[#BrowseTestScript][Browse test script]]: user search for test script by name, open it, reviews it, then closes.</td> </tr> <tr> <td align="center">26</td> <td>[[#TestExecutionFor4Steps][Test Execution]]: selects View Test Execution Records, by name, starts execution, enters pass/fail verdict, reviews results, sets points then saves. </td> </tr> <tr> <td align="center">11</td> <td>[[#DefectSearch][Defect search]]: user searches for specific defect by number, user reviews the defect (pause), then closes.</td> </tr> <tr> <td rowspan=8>Tester</td> <td align="center">8</td> <td>[[#CreateDefect][Defect create]]: user creates defect by: opening the Create Defect page, enters data for a new defect, and then saves the defect. </td> </tr> <tr> <td align="center">5</td> <td>[[#DefectModify][Defect modify]]: user searches for specific defect by number, modifies it then saves it.</td> </tr> <tr> <td align="center">14</td> <td>[[#DefectSearch][Defect search]]: user searches for specific defect by number, user reviews the defect (pause), then closes.</td> </tr> <tr> <td align="center">6</td> <td>[[#EditTestCase][Edit test case]]: user searches Test Case by name, the test case is then opened in the editor, then a test script is added to the test case (user clicks next a few times (server size paging feature) before selecting test script), The test case is then saved.</td> </tr> <tr> <td align="center">4</td> <td>[[#TestScriptCreate][Create test script]]: user creates test case by: selecting Create Test Script page, enters data for a new test script, and then saves the test script. </td> </tr> <tr> <td align="center">8</td> <td>[[#EditTestScript][Edit test script]]: user selects Test Script by name. test script then opened for editing, modified and then saved.</td> </tr> <tr> <td align="center">42</td> <td>[[#TestExecutionFor4Steps][Test Execution]]: selects View Test Execution Records, by name, starts execution, enters pass/fail verdict, reviews results, sets points then saves. </td> </tr> <tr> <td align="center">7</td> <td>[[#TestExecutionRecordBrowsing][Browse test execution record]]: user browses TERs by: name, then selects the TER and opens the most recent results.</td> </tr> <tr> <td>Dashboard Viewer</td> <td align="center">100</td> <td>[[#ViewDashboardWithLogin][View dashboard(with login and logout)]]: user logs in, views dashboard, then logs out. This user provides some login/logout behavior to the workload </td> </tr> </tbody> </table> ---++++Response time comparison The median response time provided more even results than the average response time. The nature of the high variance between tests where some tasks at time takes a longer time to run, such as when the server is under heavy load, makes the average response time less predictive. The median values are mainly included in the following tables and charts for comparison. In the repository that contained 500,000 artifacts with 1,000 concurrent users, no obvious regression was shown when comparing response times between runs. *Summary* There are totally *91* pages which are under test in the performance test. And the table below shows the summary of all the degradation pages whose response time are longer than in 4.0.5: %TABLE{ sort="off" headerbg="#3399FF" cellpadding="2" cellspacing="2" footerrows="1"}% |*Degradation percent range*|*Count*| |>=100%|0| |>=50% and < 100%|0| |>=20% and < 50%|4| |>=10% and < 20%|4| |>=0% and < 10%|32| |*Total*|*40*| If we ignore the pages which response time are less than 1s and degradation percent are less than 20%, then we got the *conclusion*: %TABLE{ sort="off" headerbg="#3399FF" cellpadding="2" cellspacing="2" }% |*Degradation percent range*|*Count*| |>=20%|0| So no page performance degradation could be felt by users. The numbers in the following charts include all of the pages for all of the scripts that ran. ---++Results *Resource utilization* %TABLE{ sort="off" headerbg="#3399FF" cellpadding="2" cellspacing="2" dataalign="center" caption="Resource utilization for 4.0.6" tableborder="2" tableframe="border" tablerules="none"}% ||QM server|DB server| |CPU|<img src="%ATTACHURLPATH%/run001-qm-cpu.jpg" width="100%"/>|<img src="%ATTACHURLPATH%/run001-db-cpu.jpg" width="100%"/>| |Disk|<img src="%ATTACHURLPATH%/run001-qm-diskbusy.jpg" width="100%"/>|<img src="%ATTACHURLPATH%/run001-db-diskbusy.jpg" width="100%"/>| |Memory|<img src="%ATTACHURLPATH%/run001-qm-mem.jpg" width="100%"/>|<img src="%ATTACHURLPATH%/run001-db-mem.jpg" width="100%"/>| *Garbage collection* Verbose garbage collection is enable to create the GC logs. The GC logs shows very little variation between runs. There is also no discernible difference between versions . Below is one example of the output from the GC log for each application. *QM* <img src="%ATTACHURLPATH%/run001-qm-gc.jpg" width="70%" height="70%" /> *JTS* <img src="%ATTACHURLPATH%/run001-jts-gc.jpg" width="70%" height="70%"/> #CreateDefect Create Defect <img src="%ATTACHURLPATH%/CreateDefect.png" width="70%" height="70%"/> [[#TestCases][Back to Test Cases & workload characterization]] #TestPlanCreate Create Test Plan <img src="%ATTACHURLPATH%/CreateTestPlan.png" width="70%" height="70%"/> [[#TestCases][Back to Test Cases & workload characterization]] #TestCaseCreate Create Test Case <img src="%ATTACHURLPATH%/CreateTestCase.png" width="70%" height="70%"/> [[#TestCases][Back to Test Cases & workload characterization]] #TestScriptCreate Create Test Script <img src="%ATTACHURLPATH%/CreateTestScript.png" width="70%" height="70%"/> [[#TestCases][Back to Test Cases & workload characterization]] #BrowseTestPlansAndTestCases Browse Test Plans & Test Cases <img src="%ATTACHURLPATH%/BrowseTestPlansandTestCases.png" width="85%" height="85%"/> [[#TestCases][Back to Test Cases & workload characterization]] #BrowseTestScript Browse Test Scripts <img src="%ATTACHURLPATH%/BrowseTestScripts.png" width="70%" height="70%"/> [[#TestCases][Back to Test Cases & workload characterization]] #BulkEditofTestCases Bulk Edit of Test Cases <img src="%ATTACHURLPATH%/BulkEditofTestCases.png" width="70%" height="70%"/> [[#TestCases][Back to Test Cases & workload characterization]] #DefectSearch Defect Search <img src="%ATTACHURLPATH%/DefectSearch.png" width="70%" height="70%"/> [[#TestCases][Back to Test Cases & workload characterization]] #DefectModify Defect Modify <img src="%ATTACHURLPATH%/DefectModify.png" width="70%" height="70%"/> [[#TestCases][Back to Test Cases & workload characterization]] #EditTestCase Edit Test Case <img src="%ATTACHURLPATH%/EditTestCase.png" width="80%" height="80%"/> [[#TestCases][Back to Test Cases & workload characterization]] #EditTestEnvironment Edit Test Environment <img src="%ATTACHURLPATH%/EditTestEnvironment.png" width="70%" height="70%"/> [[#TestCases][Back to Test Cases & workload characterization]] #EditTestPlan Edit Test Plan <img src="%ATTACHURLPATH%/EditTestPlan.png" width="70%" height="70%"/> [[#TestCases][Back to Test Cases & workload characterization]] #EditTestScript Edit Test Script <img src="%ATTACHURLPATH%/EditTestScript.png" width="85%" height="85%"/> [[#TestCases][Back to Test Cases & workload characterization]] #FullTextSearch Full Text Search <img src="%ATTACHURLPATH%/FullTextSearch.png" width="70%" height="70%"/> [[#TestCases][Back to Test Cases & workload characterization]] #SimpleTestPlanCopy Simple Test Plan Copy <img src="%ATTACHURLPATH%/SimpleTestPlanCopy.png" width="70%" height="70%"/> *NOTE:* There is no data for page 'Start Duplicate' in 406 because that the RPT script is not fit to the protocol change in 406. [[#TestCases][Back to Test Cases & workload characterization]] #TestExecutionFor4Steps Test Execution For 4 Steps <img src="%ATTACHURLPATH%/TestExecutionFor4Steps.png" width="80%" height="80%"/> [[#TestCases][Back to Test Cases & workload characterization]] #TestExecutionRecordBrowsing Test Execution Record Browsing <img src="%ATTACHURLPATH%/TestExecutionRecordBrowsing.png" width="80%" height="80%"/> [[#TestCases][Back to Test Cases & workload characterization]] #ViewDashboard View Dashboard <img src="%ATTACHURLPATH%/ViewDashboard.png" width="70%" height="70%"/> [[#TestCases][Back to Test Cases & workload characterization]] #ViewDashboardWithLogin View Dashboard with Login <img src="%ATTACHURLPATH%/ViewDashboardwithLogin.png" width="70%" height="70%"/> [[#TestCases][Back to Test Cases & workload characterization]] ---++ Appendix A #AppendixA <table class="gray-table"> <tbody> <tr> <th align="left" width="200"><strong>Product</strong><br></th> <th align="left" width="100"><strong>Version</strong></th> <th align="left" width="600"><strong>Highlights for configurations under test</strong></th> </tr> <tr> <td style="vertical-align: top;">IBM HTTP Server for !WebSphere Application Server</td> <td style="vertical-align: top;">8.5.0.1</td> <td style="vertical-align: top;">IBM HTTP Server functions as a reverse proxy server implemented via Web server plug-in for !WebSphere Application Server. Configuration details can be found from the [[http://pic.dhe.ibm.com/infocenter/clmhelp/v4r0/index.jsp?topic=%2Fcom.ibm.jazz.install.doc%2Ftopics%2Ft_config_reverse_proxy_ihs.html][CLM infocenter]]. *HTTP server (httpd.conf)*: * !MaxClients: increase value for high-volume loads [[http://publib.boulder.ibm.com/httpserv/ihsdiag/ihs_performance.html][(adjust value based on user load)]] * !ThreadsPerChild = 50 *OS Configuration*: * max user processes = unlimited </td> </tr> <tr> <td style="vertical-align: top;">IBM !WebSphere Application Server Network Deployment</td> <td style="vertical-align: top;">8.5.0.1</td> <td style="vertical-align: top;"><strong>JVM settings:</strong> * GC policy and arguments, max and init heap sizes: <verbatim> -XX:MaxDirectMemorySize=1g -Xgcpolicy:gencon -Xmx8g -Xms8g -Xmn2g -Xcompressedrefs -Xgc:preferredHeapBase=0x100000000 </verbatim> *Thread pools:* * Maximum !WebContainer = Minimum !WebContainer = 500 *OS Configuration:* System wide resources for the app server process owner: * max user processes = unlimited * open files = 65536 </td> </tr> <tr> <td>DB2</td> <td>DB2 10.1</td> <td> </td> </tr> <tr> <td>LDAP server</td> <td> </td> <td> </td> </tr> <tr> <td>License server</td> <td> </td> <td>Hosted locally by another server</td> </tr> <tr> <td>RPT workbench</td> <td>8.2.1.5</td> <td>Defaults</td> </tr> <tr> <td>RPT agents</td> <td>8.2.1.5</td> <td>Defaults</td> </tr> <tr> <td>Network</td> <td> </td> <td>Shared subnet within test lab</td> </tr> </tbody> </table> ---++++!! For more information * [[SizingReportCLM2012][Collaborative Lifecycle Management 2012 Sizing Report (Standard Topology E1)]] ---++++!! About the authors Main.FelixChen -------------------- ---+++++!! Questions and comments: * What other performance information would you like to see here? * Do you have performance scenarios to share? * Do you have scenarios that are not addressed in documentation? * Where are you having problems in performance? %COMMENT{type="below" target="PerformanceDatasheetReaderComments" button="Submit"}% %INCLUDE{"PerformanceDatasheetReaderComments"}% <sticky></div></sticky>
Edit
|
Attach
|
P
rintable
|
V
iew topic
|
Backlinks:
We
b
,
A
l
l Webs
|
H
istory
:
r11
<
r10
<
r9
<
r8
<
r7
|
More topic actions...
Deployment
Deployment web
Planning and design
Installing and upgrading
Migrating and evolving
Integrating
Administering
Monitoring
Troubleshooting
Community information and contribution guidelines
Create new topic
Topic list
Search
Advanced search
Notify
RSS
Atom
Changes
Statistics
Web preferences
NOTE: Please use the Sandbox web for testing
Status icon key:
To do
Under construction
New
Updated
Constant change
None - stable page
Smaller versions of status icons for inline text:
Copyright © by IBM and non-IBM contributing authors. All material on this collaboration platform is the property of the contributing authors.
Contributions are governed by our
Terms of Use.
Please read the following
disclaimer
.
Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more
here
.