E
dit
A
ttach
P
rintable
r3 - 2014-09-29 - 21:22:05 - Main.cystrunk
You are here:
TWiki
>
Deployment Web
>
DeploymentPlanningAndDesign
>
PerformanceDatasheetsAndSizingGuidelines
>
PerformanceImpactOfSharingAJazzTeamServer50
<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.TWikiAdminGroup, TWikiDeploymentDatasheetsAuthorsGroup, Main.GrantCovell --> ---+!! Performance Impact of Sharing a Jazz Team Server within a Deployment of Multiple RDNG Servers</br> %DKGRAY% Authors: Main.SentellaCystrunk, Main.VaughnRokosz</br> Last updated: September 29, 2014</br> Build basis: Rational DOORS Next Generation (RDNG) 5.0<br> %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 Beginning with Rational DOORS Next Generation (RDNG) 5.0 release, the storage for Requirements Management (RM) application is decoupled from Jazz Team Server (JTS). With this architectural change comes the ability for multiple RDNG servers to share a single JTS server for common user and license information. This report looks at the performance impact of sharing an instance of JTS among multiple instances of RDNG. ---++Disclaimer The information in this document is distributed AS IS. The use of this information or the implementation of any of these techniques is a customer responsibility and depends on the customers ability to evaluate and integrate them into the customers operational environment. While each item may have been reviewed by IBM for accuracy in a specific situation, there is no guarantee that the same or similar results will be obtained elsewhere. Customers attempting to adapt these techniques to their own environments do so at their own risk. Any pointers in this publication to external Web sites are provided for convenience only and do not in any manner serve as an endorsement of these Web sites. Any performance data contained in this document was determined in a controlled environment, and therefore, the results that may be obtained in other operating environments may vary significantly. Users of this document should verify the applicable data for their specific environment.<br> ---++ Summary of Results <p> Results from the set of tests conducted for this study show virtually no performance impact when up to 3 instances of RDNG share a Jazz Team Server. <br> Tests were conducted with 100 users per RDNG server for up to three configurations including: * 1 JTS, 1 RDNG * 1 JTS, 2 RDNG * 1 JTS, 3 RDNG In all configurations, CPU and memory utilization on JTS remained fairly steady while each RDNG server operated independently without any signs of interference from JTS. CPU and heap consumption on JTS averaged about 1% and 0.26 GB, respectively. CPU utilization for each RDNG server averaged about 23% and page response times for their simulated users averaged about 0.8 seconds. </p> ---++Server Topology <p>The following topology was used for this testing:<br> </p> <img src="%ATTACHURLPATH%/topology.PNG" alt="topology.PNG" width="700" height="500" /> <br> <p>The specific versions of software used were:<br> </p> <br> <table class="gray-table"> <tbody> <tr> <th valign="top">Software<br> </th> <th valign="top">Version<br> </th> </tr> <tr> <td valign="top">IBM Rational CLM Applications<br> </td> <td valign="top">5.0<br> </td> </tr> <tr> <td valign="top">IBM HTTP Server and Web Server Plugin for !WebSphere<br> </td> <td valign="top">8.5.5.2<br> </td> </tr> <tr> <td valign="top">IBM !WebSphere Application Server<br> </td> <td valign="top">8.5.5.2<br> </td> </tr> <tr> <td valign="top">Oracle Database<br> </td> <td valign="top">11.2.0.3.0<br> </td> </tr> </tbody> </table> <br> ---++Hardware Description </h2> <p>This table lists the servers that were used for our testing:<br> </p> <table class="gray-table"> <tbody> <tr> <th valign="top">Role<br> </th> <th valign="top">Manufacturer / Model<br> </th> <th valign="top">CPU<br> </th> <th valign="top">Number of CPU/Cores<br> </th> <th valign="top">CPU Speed<br> </th> <th valign="top">Memory<br> </th> <th valign="top">Disk<br> </th> <th valign="top">Disk Capacity<br> </th> <th valign="top">OS<br> </th> </tr> <tr> <td valign="top">Reverse Proxy Server<br> </td> <td valign="top">IBM x3250 M3<br> </td> <td valign="top">Intel Xeon CPU X3480 <br> (1 quad-core)<br> </td> <td valign="top">8 / 4<br> </td> <td valign="top">3.07 GHz<br> </td> <td valign="top">15.5 GB </td> <td valign="top">RAID 0 SAS Disk x 1<br> </td> <td valign="top">279 GB </td> <td valign="top">RedHat Enterprise Linux Server 6.3, 64-bit<br> </td> </tr> <tr> <td valign="top">JTS Server<br> </td> <td valign="top">IBM Flex System x240 Compute Node <br> (Hypervisor)<br> </td> <td valign="top">Intel Xeon CPU E5-2670 0 <br> (Virtual Processor)<br> </td> <td valign="top">4 / 4<br> </td> <td valign="top">2.6 GHz </td> <td valign="top">16 GB</td> <td valign="top">VMWare Virtual Disk - SCSI<br> </td> <td valign="top">60 GB </td> <td valign="top">Windows Server 2012 Standard, 64-bit</td> </tr> <tr> <td valign="top">DNG Server #1<br> </td> <td valign="top">IBM Flex System x240 Compute Node <br> (Hypervisor)<br> </td> <td valign="top">Intel Xeon CPU E5-2670 0 <br> (Virtual Processor)<br> </td> <td valign="top">4 / 4<br> </td> <td valign="top">2.6 GHz </td> <td valign="top">16 GB</td> <td valign="top">VMWare Virtual Disk - SCSI</td> <td valign="top">60 GB </td> <td valign="top">Windows Server 2012 Standard, 64-bit</td> </tr> <tr> <td valign="top">DNG Server #2<br> </td> <td valign="top">IBM Flex System x240 Compute Node <br> (Hypervisor)<br> </td> <td valign="top">Intel Xeon CPU E5-2670 0 <br> (Virtual Processor)<br> </td> <td valign="top">4 / 4<br> </td> <td valign="top">2.6 GHz </td> <td valign="top">16 GB</td> <td valign="top">VMWare Virtual Disk - SCSI</td> <td valign="top">60 GB </td> <td valign="top">Windows Server 2012 Standard, 64-bit</td> </tr> <tr> <td valign="top">DNG Server #3<br> </td> <td valign="top">IBM Flex System x240 Compute Node <br> (Hypervisor)<br> </td> <td valign="top">Intel Xeon CPU E5-2670 0 <br> (Virtual Processor)<br> </td> <td valign="top">4 / 4<br> </td> <td valign="top">2.6 GHz </td> <td valign="top">16 GB</td> <td valign="top">VMWare Virtual Disk - SCSI</td> <td valign="top">60 GB </td> <td valign="top">Windows Server 2012 Standard, 64-bit</td> </tr> <tr> <td valign="top">Database Server<br> </td> <td valign="top">IBM x3650 M3</td> <td valign="top">Intel Xeon CPU X5667 <br> (2 quad-core)</td> <td valign="top">16 / 8<br> </td> <td valign="top">3.07 GHz</td> <td valign="top">31.3 GB<br> </td> <td valign="top">RAID 10 SAS Disk x 8 <br> (with write-back caching)<br> </td> <td valign="top">279 GB </td> <td valign="top">RedHat Enterprise Linux Server 6.3, 64-bit</td> </tr> </tbody> </table> ---++Data Volume and Shape For each DNG server, the artifacts were distributed between 6 projects for a total of 517,080 artifacts. The repository contained the following data: * 312 modules * 510,000 module artifacts * 7,080 requirement artifacts * 714 folders * 84 collections * 1,563,492 comments * 1,800 Public Tags * 1,428 Terms * 1,824,174 Links * 600 Views JTS index size on disk = 2.6 GB<br> RM index size on disk = 40.2 GB <br> Each project contained the following data: * 52 modules * 85,000 module artifacts * 1,180 requirement artifacts * 119 folders * 14 collections * 260,582 comments * 300 Public Tags * 238 Terms * 304,029 Links * 100 Views ---++Test Methodology IBM® Rational® Performance Tester was used to simulate the workload. A Rational Performance Tester script was created for each use case. The scripts are organized by pages; each page represents a user action. Users were distributed into many user groups and each user group repeatedly runs one script (use case). Tests were run as quickly as possible with a 1 minute think time between pages for each user. Test were run against a single JTS, single RDNG server configuration to find the maximum user load that could be supported with the given workload and sustained over an eight hour period with acceptable response times. This maximum user load was then executed against the remaining configurations to determine if there is any performance impact. ---++Workload Description This table shows the use cases and the number of simulated users who were repeatedly running each script: <table border="1" cellpadding="0" cellspacing="0" id="_397" style="margin-left:5px"> <tbody> <tr> <th colspan="1" rowspan="1" style="width: 167px; vertical-align: center; "> <p dir="ltr" id="_398" style="margin-left: 5px; "><b>Use case</b></p> </th> <th colspan="1" rowspan="1" style="width: 562px; vertical-align: center; "> <p dir="ltr" id="_399" style="margin-left: 5px; "><b>Description</b></p> </th> <th colspan="1" rowspan="1" style="width: 142px; vertical-align: center; "> <p dir="ltr" id="_400" style="margin-left: 5px; "><b>Percentage of 100 users</b></p> </th> </tr> <tr> <td colspan="1" id="_401" rowspan="1" style="width: 167px; vertical-align: center; "> <p dir="ltr" id="_402" style="margin-left: 5px; ">Copy/Paste/Move/Delete</p> </td> <td colspan="1" id="_403" rowspan="1" style="width: 562px; vertical-align: center; "> <p dir="ltr" id="_404" style="margin-left: 5px; ">Open a module that contains 1500 artifacts, select 25 artifacts, move them by using the copy and paste functions, and then delete the copied artifacts.</p> </td> <td colspan="1" id="_405" rowspan="1" style="width: 142px; vertical-align: center; "> <p dir="ltr" id="_406" style="margin-left: 5px; ">1%</p> </td> </tr> <tr> <td colspan="1" id="_407" rowspan="1" style="width: 167px; vertical-align: center; "> <p dir="ltr" id="_408" style="margin-left: 5px; ">Create an artifact</p> </td> <td colspan="1" id="_409" rowspan="1" style="width: 562px; vertical-align: center; "> <p dir="ltr" id="_410" style="margin-left: 5px; ">Create non-module artifacts.</p> </td> <td colspan="1" id="_411" rowspan="1" style="width: 142px; vertical-align: center; "> <p dir="ltr" id="_412" style="margin-left: 5px; ">3%</p> </td> </tr> <tr> <td colspan="1" id="_413" rowspan="1" style="width: 167px; vertical-align: center; "> <p dir="ltr" id="_414" style="margin-left: 5px; ">Create a collection</p> </td> <td colspan="1" id="_415" rowspan="1" style="width: 562px; vertical-align: center; "> <p dir="ltr" id="_416" style="margin-left: 5px; ">Create collections that contain 10 artifacts.</p> </td> <td colspan="1" id="_417" rowspan="1" style="width: 142px; vertical-align: center; "> <p dir="ltr" id="_418" style="margin-left: 5px; ">2%</p> </td> </tr> <tr> <td colspan="1" id="_419" rowspan="1" style="width: 167px; vertical-align: center; "> <p dir="ltr" id="_420" style="margin-left: 5px; ">Create a module artifact end-to-end scenario</p> </td> <td colspan="1" id="_421" rowspan="1" style="width: 562px; vertical-align: center; "> <p dir="ltr" id="_422" style="margin-left: 5px; ">Open a medium module that contains 1500 artifacts, create a module artifact, edit the new artifact, and delete the new artifact.</p> </td> <td colspan="1" id="_423" rowspan="1" style="width: 142px; vertical-align: center; "> <p dir="ltr" id="_424" style="margin-left: 5px; ">20%</p> </td> </tr> <tr> <td colspan="1" id="_425" rowspan="1" style="width: 167px; vertical-align: center; "> <p dir="ltr" id="_426" style="margin-left: 5px; ">Create a small module artifact end-to-end scenario</p> </td> <td colspan="1" id="_427" rowspan="1" style="width: 562px; vertical-align: center; "> <p dir="ltr" id="_428" style="margin-left: 5px; ">Open a small module that contains 500 artifacts, create a module artifact, edit that new artifact, and delete the new artifact.</p> </td> <td colspan="1" id="_429" rowspan="1" style="width: 142px; vertical-align: center; "> <p dir="ltr" id="_430" style="margin-left: 5px; ">11%</p> </td> </tr> <tr> <td colspan="1" id="_443" rowspan="1" style="width: 167px; vertical-align: top; "> <p dir="ltr" id="_444" style="margin-left: 5px; ">Display module history</p> </td> <td colspan="1" id="_445" rowspan="1" style="width: 562px; vertical-align: top; "> <p dir="ltr" id="_446" style="margin-left: 5px; ">Open a module that contains 1500 artifacts and show the module history and the module audit history.</p> </td> <td colspan="1" id="_447" rowspan="1" style="width: 142px; vertical-align: top; "> <p dir="ltr" id="_448" style="margin-left: 5px; ">1%</p> </td> </tr> <tr> <td colspan="1" id="_449" rowspan="1" style="width: 167px; vertical-align: top; "> <p dir="ltr" id="_450" style="margin-left: 5px; ">Hover over a module artifact and edit it</p> </td> <td colspan="1" id="_451" rowspan="1" style="width: 562px; vertical-align: top; "> <p dir="ltr" id="_452" style="margin-left: 5px; ">Open a module that contains 1500 artifacts and hover over an artifact. When the rich hover is displayed, edit the artifact text.</p> </td> <td colspan="1" id="_453" rowspan="1" style="width: 142px; vertical-align: top; "> <p dir="ltr" id="_454" style="margin-left: 5px; ">2%</p> </td> </tr> <tr> <td colspan="1" id="_455" rowspan="1" style="width: 167px; vertical-align: top; "> <p dir="ltr" id="_456" style="margin-left: 5px; ">Hover over and open a collection</p> </td> <td colspan="1" id="_457" rowspan="1" style="width: 562px; vertical-align: top; "> <p dir="ltr" id="_458" style="margin-left: 5px; ">Display all of the collections, hover over a collection, and then open it.</p> </td> <td colspan="1" id="_459" rowspan="1" style="width: 142px; vertical-align: top; "> <p dir="ltr" id="_460" style="margin-left: 5px; ">1%</p> </td> </tr> <tr> <td colspan="1" id="_461" rowspan="1" style="width: 167px; vertical-align: top; "> <p dir="ltr" id="_462" style="margin-left: 5px; ">Manage folders</p> </td> <td colspan="1" id="_463" rowspan="1" style="width: 562px; vertical-align: top; "> <p dir="ltr" id="_464" style="margin-left: 5px; ">Click Show Artifacts to display folder tree and then create a folder. Move the new folder into another folder and then delete the folder that you just created.</p> </td> <td colspan="1" id="_465" rowspan="1" style="width: 142px; vertical-align: top; "> <p dir="ltr" id="_466" style="margin-left: 5px; ">1%</p> </td> </tr> <tr> <td colspan="1" id="_467" rowspan="1" style="width: 167px; vertical-align: top; "> <p dir="ltr" id="_468" style="margin-left: 5px; ">Open the RM admin page</p> </td> <td colspan="1" id="_469" rowspan="1" style="width: 562px; vertical-align: top; "> <p dir="ltr" id="_470" style="margin-left: 5px; ">Open the rm/admin page.</p> </td> <td colspan="1" id="_471" rowspan="1" style="width: 142px; vertical-align: top; "> <p dir="ltr" id="_472" style="margin-left: 5px; ">1%</p> </td> </tr> <tr> <td colspan="1" id="_473" rowspan="1" style="width: 167px; vertical-align: top; "> <p dir="ltr" id="_474" style="margin-left: 5px; ">Open the project dashboard</p> </td> <td colspan="1" id="_475" rowspan="1" style="width: 562px; vertical-align: top; "> <p dir="ltr" id="_476" style="margin-left: 5px; ">Open a dashboard that displays the default dashboard.</p> </td> <td colspan="1" id="_477" rowspan="1" style="width: 142px; vertical-align: top; "> <p dir="ltr" id="_478" style="margin-left: 5px; ">4%</p> </td> </tr> <tr> <td colspan="1" id="_479" rowspan="1" style="width: 167px; vertical-align: top; "> <p dir="ltr" id="_480" style="margin-left: 5px; ">Search by ID and string</p> </td> <td colspan="1" id="_481" rowspan="1" style="width: 562px; vertical-align: top; "> <p dir="ltr" id="_482" style="margin-left: 5px; ">Open a project, select a folder, search for an artifact by its numeric ID, and click a search result to display an artifact.</p> <p dir="ltr" id="_483" style="margin-left: 5px; ">Search for artifacts by using a generic string search that produces about 50 results.</p> </td> <td colspan="1" id="_484" rowspan="1" style="width: 142px; vertical-align: top; "> <p dir="ltr" id="_485" style="margin-left: 5px; ">9%</p> </td> </tr> <tr> <td colspan="1" id="_486" rowspan="1" style="width: 167px; vertical-align: top; "> <p dir="ltr" id="_487" style="margin-left: 5px; ">Scroll 20 pages in a module</p> </td> <td colspan="1" id="_488" rowspan="1" style="width: 562px; vertical-align: top; "> <p dir="ltr" id="_489" style="margin-left: 5px; ">Open a module that contains 1500 artifacts and then scroll through 20 pages.</p> </td> <td colspan="1" id="_490" rowspan="1" style="width: 142px; vertical-align: top; "> <p dir="ltr" id="_491" style="margin-left: 5px; ">19%</p> </td> </tr> <tr> <td colspan="1" id="_492" rowspan="1" style="width: 167px; vertical-align: top; "> <p dir="ltr" id="_493" style="margin-left: 5px; ">Switch the module view</p> </td> <td colspan="1" id="_494" rowspan="1" style="width: 562px; vertical-align: top; "> <p dir="ltr" id="_495" style="margin-left: 5px; ">Open a module that contains 1500 artifacts and then change the view to add columns that display user-defined attributes.</p> </td> <td colspan="1" id="_496" rowspan="1" style="width: 142px; vertical-align: top; "> <p dir="ltr" id="_497" style="margin-left: 5px; ">18%</p> </td> </tr> <tr> <td colspan="1" id="_498" rowspan="1" style="width: 167px; vertical-align: top; "> <p dir="ltr" id="_499" style="margin-left: 5px; ">Upload a 4 MB file as a new artifact</p> </td> <td colspan="1" id="_500" rowspan="1" style="width: 562px; vertical-align: top; "> <p dir="ltr" id="_501" style="margin-left: 5px; ">Upload a file and create an artifact.</p> </td> <td colspan="1" id="_502" rowspan="1" style="width: 142px; vertical-align: top; "> <p dir="ltr" id="_503" style="margin-left: 5px; ">7%</p> </td> </tr> </tbody> </table> ---++Test Results - Compare Configurations <p>The following charts display the average server resource utilization and page response times in all tested configurations. The configurations are labeled as follows: * 1 JTS, 1 RDNG = 1-RM * 1 JTS, 2 RDNG = 2-RM * 1 JTS, 3 RDNG = 3-RM Each RDNG server is labeled according to the unique context root (i.e. /rm1, /rm2, /rm3) by which its RM application was deployed. </p><br> <img src="%ATTACHURLPATH%/ihs_cpu.PNG" alt="ihs_cpu.PNG" /><br> <img src="%ATTACHURLPATH%/jts_cpu.PNG" alt="jts_cpu.PNG" /><br> <img src="%ATTACHURLPATH%/jts_heap.PNG" alt="jts_heap.PNG" /><br> <img src="%ATTACHURLPATH%/oracle_cpu.PNG" alt="oracle_cpu.PNG" /><br> <img src="%ATTACHURLPATH%/dng_cpu.PNG" alt="dng_cpu.PNG" /><br> <img src="%ATTACHURLPATH%/page_ART.PNG" alt="page_ART.PNG" /><br> ---++Key Configuration & Tuning Parameters ---+++ !WebSphere Application Servers ---+++++ !JTS JVM arguments set to: <br> <verbatim> -Xmx4g -Xms4g -Xmn1g -Xcompressedrefs -Xgc:preferredHeapBase=0x100000000 -Xverbosegclog:gc.log -XX:MaxDirectMemorySize=1G -Xgcpolicy:gencon -Xloaminimum0.02 </verbatim> ---+++++ !DNG Each DNG server functions independently. Thus, a separate converter application is deployed for each DNG server. Using the RM administration console for each server, configure the _ConverterURL_ property to reflect the unique name of its converter installation.<br> !WebContainer thread pool set to Min 500 Max 500<br> JVM arguments set to: <br> <verbatim> -Xmx8g -Xms8g -Xmn2g -Xcompressedrefs -Xgc:preferredHeapBase=0x100000000 -Xverbosegclog:gc.log -XX:MaxDirectMemorySize=1G -Xgcpolicy:gencon -Xloaminimum0.02 </verbatim> ---+++ !IBM HTTP Server <p>In httpd.conf:<br> <verbatim><IfModule worker.c> ThreadLimit 25 ServerLimit 80 StartServers 1 MaxClients 2000 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 0 </IfModule></verbatim> ---+++ !Oracle Database Initialization parameters:<br> processes = 500<br> shared_servers = 20<br> dispatchers = 5<br> ---++Related Information <ul> <li><a href="https://jazz.net/downloads/rational-doors-next-generation/releases/5.0?p=news#TOC_F">RDNG 5.0 - Storage separation for the Requirements Management application</a></li> <li><a href="https://jazz.net/downloads/rational-doors-next-generation/releases/5.0?p=news#TOC_G">RDNG 5.0 - Multiple Requirements Management applications on the same Jazz Team Server</a></li> </ul> <sticky></div></sticky>
E
dit
|
A
ttach
|
P
rintable
|
V
iew topic
|
Backlinks:
We
b
,
A
l
l Webs
|
H
istory
: r3
<
r2
<
r1
|
M
ore 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
.