ArcGIS ArcGIS Server Performance and Scalability Server Performance and Scalability— Performance Factors and Optimization Performance Factors and Optimization Andrew Sakowicz Andrew Sakowicz Eric Miller Eric Miller 1 UC2009 Technical Workshop UC2009 Technical Workshop
68
Embed
ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
ArcGISArcGIS Server Performance and ScalabilityServer Performance and Scalability——Performance Factors and OptimizationPerformance Factors and Optimization
ArcGISArcGIS Server deploymentServer deployment and optimization strategiesand optimization strategies
–– Case Studies: Optimizing web apps that consume Case Studies: Optimizing web apps that consume ArcGISArcGIS Server ServicesServer Services
Key performance factors in Key performance factors in ArcGISArcGIS Server system componentsServer system components–– Key performance factors in Key performance factors in ArcGISArcGIS Server system componentsServer system components
–– Optimizing components prior to deploymentOptimizing components prior to deployment
Performance Factors in Performance Factors in ArcGISArcGIS Server System ComponentsServer System Components
•• Machine ArchitectureMachine Architecture
•• Data SourcesData Sources
•• ArcGISArcGIS Server FrameworkServer Framework
•• ArcGISArcGIS Server servicesServer services
•• Client applications and the ADFClient applications and the ADF
55
Goal: Show how to optimize these components to deliver Goal: Show how to optimize these components to deliver highly performing highly performing ArcGISArcGIS Server deployments.Server deployments.
Performance Factors: Machine ArchitecturePerformance Factors: Machine ArchitectureSelect adequate hardware to support desired performance and loadSelect adequate hardware to support desired performance and load
•• PerformancePerformance
–– CPU SpeedCPU Speed
•• Published benchmarks: http://www.spec.org/cpu2006/results/cint2006.htmlPublished benchmarks: http://www.spec.org/cpu2006/results/cint2006.html
•• Mapping: Select CPU with the highest Baseline CINT Rate/CoreMapping: Select CPU with the highest Baseline CINT Rate/Core
•• GP: Select CPU with highest Baseline CFP Rate/CoreGP: Select CPU with highest Baseline CFP Rate/Core
•• Gigabit switches and NICs in Full Duplex modeGigabit switches and NICs in Full Duplex mode
–– # Disks and controllers# Disks and controllers
–– Amount of RAMAmount of RAM66UC2009 Technical WorkshopUC2009 Technical Workshop
Performance Factors: Data SourcesPerformance Factors: Data SourcesSelect data source that provide optimal performanceSelect data source that provide optimal performance
•• VectorVector
–– Data provider: DBMS, Data provider: DBMS, FileGDBFileGDB, , ShapefileShapefile, SDC, SDC
–– Storage type: ESRI Storage type: ESRI ST_GeometryST_Geometry, Oracle SDO, SQL Server Geometry, Oracle SDO, SQL Server Geometry
•• RasterRaster
–– Data provider: Image Server, Data provider: Image Server, FileGDBFileGDB, DBMS, SDC, DBMS, SDC
Conduct a simple benchmark to select optimal data source formatConduct a simple benchmark to select optimal data source formatAttend Attend ArcGISArcGIS Server Performance and Scalability Server Performance and Scalability –– Testing sessionTesting session
Performance Factors: Data SourcesPerformance Factors: Data SourcesRepresentative comparison of throughput variances based on service source data.Representative comparison of throughput variances based on service source data.
Performance Factors: Data SourcesPerformance Factors: Data SourcesOptimize DBMS configuration and conduct maintenanceOptimize DBMS configuration and conduct maintenance
•• DBMS configurationDBMS configuration
•• Create and maintain (rebuild) attribute indexesCreate and maintain (rebuild) attribute indexes
Performance Factors: Performance Factors: ArcGISArcGIS Server FrameworkServer FrameworkSOCSOC
•• Optimal number of instances does vary significantly by complexity of Optimal number of instances does vary significantly by complexity of service (complex map or GP model) and choice of source data type.service (complex map or GP model) and choice of source data type.
•• Varies in practice from 1 to 4 highVaries in practice from 1 to 4 high--isolation instances per CPU coreisolation instances per CPU core
Performance Factors: Performance Factors: ArcGISArcGIS Server Services Server Services Demo: Optimizing Demo: Optimizing mxdmxd with with MXDPerfStatMXDPerfStat
•• Focus on performance impact of:Focus on performance impact of:
Performance Factors: Performance Factors: ArcGISArcGIS Server Services Server Services Demo: Optimizing Demo: Optimizing mxdmxd with with MXDPerfStatMXDPerfStat
•• Service ConfigurationService Configuration–– Try to keep total service cache size under 250 MB to avoid network swapping. Try to keep total service cache size under 250 MB to avoid network swapping. –– Try to keep total service cache size under 250 MB to avoid network swapping. Try to keep total service cache size under 250 MB to avoid network swapping.
•• Ensure highest performance and scalabilityEnsure highest performance and scalability
•• Leverage existing skills and standardsLeverage existing skills and standards
•• Different API’s have different performance and functionality profiles, e.g.Different API’s have different performance and functionality profiles, e.g.
•• .Net.Net ADFADF•• .Net.Net ADFADF
•• Java ADFJava ADF
•• JavaScriptJavaScript
•• Flex APIFlex API
•• SilverLightSilverLight
3535
Conduct a simple benchmark to select optimal solutionConduct a simple benchmark to select optimal solutionAttend Attend ArcGISArcGIS Server Performance and Scalability Server Performance and Scalability –– Testing sessionTesting session
Testing Testing ArcGISArcGIS Server Architectures (Methodology)Server Architectures (Methodology)
•• SoftwareSoftware
–– MicroSoftMicroSoft Team Edition for Software Testers Team Edition for Software Testers
–– MicroSoftMicroSoft Load Test Agent/ControllerLoad Test Agent/Controller
•• Unit TestUnit Test
–– Export dynamic maps via SOAP serviceExport dynamic maps via SOAP service
–– 800x600 pixels800x600 pixels
–– PNG 8PNG 8
–– Random extents and scaleRandom extents and scale--levels that are relevels that are re--used between test runsused between test runs–– Random extents and scaleRandom extents and scale--levels that are relevels that are re--used between test runsused between test runs
•• Load TestsLoad Tests
–– Unit test is executed repeatedly by increasing numbers of test clients. Unit test is executed repeatedly by increasing numbers of test clients.
ArcGISArcGIS Server Architectures: “classic” MIMEServer Architectures: “classic” MIMENLB + SOM + N SOC + M Web Servers (WS)NLB + SOM + N SOC + M Web Servers (WS)
WSWS11 WSWS22 WSWSmm……
NLBNLB
AdvantagesAdvantages•• “classic”, users are familiar“classic”, users are familiar
•• Best performingBest performing
DisadvantagesDisadvantages•• SOM is a single point of failureSOM is a single point of failure
ArcGISArcGIS Server Architectures: “Server Architectures: “Classic” MIMEClassic” MIMEPerformance CharacteristicsPerformance Characteristics
Observations (continued)Observations (continued)
•• Note increase in SOM CPU Note increase in SOM CPU utilization between tests utilization between tests run with 1 web server run with 1 web server ((blueblue) and 2 web servers ) and 2 web servers ((greengreen).).
ArcGISArcGIS Server Architectures: “Classic” MIMEServer Architectures: “Classic” MIMEPerformance CharacteristicsPerformance Characteristics
ConclusionsConclusions
•• Small decrease in SOM Small decrease in SOM utilization results in utilization results in significant (%10) significant (%10) underutilization of SOC underutilization of SOC machines.machines.
WSWS11 WSWS22 WSWSmm
SOMSOM
SOCSOC11 SOCSOC22 SOCSOCnnSOCSOC33……
……
NLBNLB
1 Web Server2 Web Servers
machines.machines.
•• Add additional web server Add additional web server machines when IIS begins machines when IIS begins to compete with SOM for to compete with SOM for CPU.CPU.
SOC CPU Utilization4242UC2009 Technical WorkshopUC2009 Technical Workshop
ArcGISArcGIS Server Architectures: “classic” MIMEServer Architectures: “classic” MIMENLB + SOM + N SOC + M Web Servers (WS) + X File Servers (FS)NLB + SOM + N SOC + M Web Servers (WS) + X File Servers (FS)
AdvantagesAdvantages
WSWS11 WSWS22 WSWSmm……
NLB(w/Affinity)NLB(w/Affinity)
AdvantagesAdvantages•• “classic”, users are familiar“classic”, users are familiar
•• Best performing (of URL Best performing (of URL cfgscfgs))
•• Easy maintenanceEasy maintenance
DisadvantagesDisadvantages
•• SOM Single Point of FailureSOM Single Point of Failure
•• FS Single Point of FailureFS Single Point of Failure
•• Linearity breaks down at Linearity breaks down at 33 SOC SOC machines (machines (350,000 350,000 TrTr/Hr/Hr), (), (27 27 corescores))
•• 22ndnd Web Server Web Server does not does not restore restore linearitylinearity
0
200
400
600
800
1 2 3 4 5
Nu
mb
er
of
Sim
ula
ted
Use
rs
Number of SOC Machines
Actual Ideal4545UC2009 Technical WorkshopUC2009 Technical Workshop
ArcGISArcGIS Server Architectures: “Classic” URLServer Architectures: “Classic” URLPerformance CharacteristicsPerformance Characteristics
Observations (continued)Observations (continued)
•• Disk I/O on UNC share is not excessive.Disk I/O on UNC share is not excessive.
•• Network traffic to UNC share does not even approach peak disk Network traffic to UNC share does not even approach peak disk I/O transfer rates. I/O transfer rates.
WSWS11 WSWS22 WSWSmm
SOMSOM
SOCSOC11 SOCSOC22 SOCSOCnnSOCSOC33……
……
NLB(w/Affinity)NLB(w/Affinity)
FSFS FSFSFSFS ……
I/O transfer rates. I/O transfer rates.
ConclusionsConclusions
•• Inherent latency in UNC/CIFS share is the bottleneck.Inherent latency in UNC/CIFS share is the bottleneck.
•• A single service must use a single file server. If it becomes A single service must use a single file server. If it becomes popular it doesn’t scale very well.popular it doesn’t scale very well.
•• If many services exist, consider mapping each service to its own If many services exist, consider mapping each service to its own UNC share to improve performance.UNC share to improve performance.
ArcGISArcGIS Server Architectures: “Classic” MIMEServer Architectures: “Classic” MIMEVirtualization Penalty with Virtualization Penalty with VMWareVMWare
ArcGISArcGIS Server Architectures: “Classic” MIMEServer Architectures: “Classic” MIMEVirtualization Penalty with Virtualization Penalty with VMWareVMWare
SQL> connect sys@gis1_andrews as SQL> connect sys@gis1_andrews as sysdbasysdbaSQL> connect sys@gis1_andrews as SQL> connect sys@gis1_andrews as sysdbasysdba
Tuning Data Sources Tuning Data Sources –– Oracle Trace (continued)Oracle Trace (continued)Starting Oracle trace using a custom Starting Oracle trace using a custom ArcMapArcMap UIControlUIControl
Private Sub OracleTrace_Click()
. . .
Set pFeatCls = pFeatLyr.FeatureClass
Set pDS = pFeatCls
Set pWS = pDS.Workspace
sTraceName = InputBox("Enter <test_name><email>")
6363
pWS.ExecuteSQL ("alter session set tracefile_identifier = '" &
sTraceName & "'")
pWS.ExecuteSQL ("ALTER SESSION SET events '10046 trace name context
Tuning Data Sources Tuning Data Sources –– Oracle Trace (continued)Oracle Trace (continued)
•• Analyze queryAnalyze query
–– Elapsed time [sec] (CPU + wait event)Elapsed time [sec] (CPU + wait event)
–– CPU [sec]CPU [sec]
–– Query (Oracle blocks e.g. 8K read from memory)Query (Oracle blocks e.g. 8K read from memory)
–– Disk (Oracle blocks read from disk)Disk (Oracle blocks read from disk)
–– Wait event [sec], e.g. db file sequential read Wait event [sec], e.g. db file sequential read –– Wait event [sec], e.g. db file sequential read Wait event [sec], e.g. db file sequential read
–– Rows fetchedRows fetched
•• Example (cost of physical reads):Example (cost of physical reads):
–– Elapsed time = 13.02 secElapsed time = 13.02 sec