Top Banner
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

ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Jun 11, 2020

Download

Documents

dariahiddleston
Welcome message from author
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
Page 1: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

ArcGISArcGIS Server Performance and ScalabilityServer Performance and Scalability——Performance Factors and OptimizationPerformance Factors and Optimization

Andrew SakowiczAndrew Sakowicz

Eric MillerEric Miller

11UC2009 Technical WorkshopUC2009 Technical Workshop

Page 2: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

IntroductionsIntroductions

•• Who are we?Who are we?

–– ArcGISArcGIS Server Product DevelopmentServer Product Development

–– Enterprise Implementation Enterprise Implementation

•• Assumptions about you, our audience:Assumptions about you, our audience:

–– Familiar with Familiar with ArcGISArcGIS DesktopDesktop–– Familiar with Familiar with ArcGISArcGIS DesktopDesktop

–– Basic knowledge of Basic knowledge of ArcGISArcGIS Server Architecture and conceptsServer Architecture and concepts

–– Comfortable with Web architecturesComfortable with Web architectures

22UC2009 Technical WorkshopUC2009 Technical Workshop

Page 3: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Schedule and OverviewSchedule and Overview

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

–– Recommended deployment architecturesRecommended deployment architectures

–– Primer: Tuning Primer: Tuning ArcGISArcGIS Server deployments inServer deployments in--situsitu

Question and answer period.Question and answer period.

33

Please complete the session survey!Please complete the session survey!

UC2009 Technical WorkshopUC2009 Technical Workshop

Page 4: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Case Studies: Poorly performing Web ApplicationsCase Studies: Poorly performing Web ApplicationsDemos:Demos:

Demo: Client-side graphics vs. dynamic map service

44

Demo: Dynamic MapService Map Draw

UC2009 Technical WorkshopUC2009 Technical Workshop

Page 5: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server 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.

UC2009 Technical WorkshopUC2009 Technical Workshop

Page 6: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

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

–– Disk speedDisk speed

•• 15K RPM SAS Disks15K RPM SAS Disks

–– Network latencyNetwork latency–– Network latencyNetwork latency

•• Fast switchesFast switches

–– Memory Bus SpeedMemory Bus Speed

•• CapacityCapacity

–– # CPU cores# CPU cores

–– Network bandwidthNetwork bandwidth

•• 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

Page 7: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

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

–– Compression: LZ77, JPEG, PNGCompression: LZ77, JPEG, PNG–– Compression: LZ77, JPEG, PNGCompression: LZ77, JPEG, PNG

77

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

UC2009 Technical WorkshopUC2009 Technical Workshop

Page 8: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

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.

60000

80000

100000

120000

140000

Th

rou

gh

pu

t (T

r/H

r)

Low Complexity Map: Throughput vs. data source

0

20000

40000

FGDB_Local_URL SHP_Local_URL Ora11g_AS_URL SQLSvr_AS_URL Postgres_AS_URL

Th

rou

gh

pu

t (T

r/H

r)

88

Machine Specs: 4, 2.5GHz Dual-core CPU, 8GB RAM

UC2009 Technical WorkshopUC2009 Technical Workshop

Page 9: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Performance Factors: Data SourcesPerformance Factors: Data Sources

•• Local vs. UNCLocal vs. UNC

–– Locally sourced data always results in better throughput.Locally sourced data always results in better throughput.

100000

120000

Th

rou

gh

pu

t (T

r/H

r)

High Complexity Map Service: Local vs. UNC (1 SOC)

99

0

20000

40000

60000

80000

FGDB_Local_URL FGDB_UNC_URL SHP_Local_URL SHP_UNC_URL

Th

rou

gh

pu

t (T

r/H

r)

UC2009 Technical WorkshopUC2009 Technical Workshop

Page 10: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

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

•• Updating DBMS statisticsUpdating DBMS statistics

•• Versioning managementVersioning management

–– Reconcile and postReconcile and post

–– CompressCompress

1010

NonNon-- optimal DBMS may be a source of significant performance degradationoptimal DBMS may be a source of significant performance degradation

UC2009 Technical WorkshopUC2009 Technical Workshop

Page 11: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Performance Factors: Performance Factors: ArcGISArcGIS Server FrameworkServer FrameworkSOMSOM

•• 165 map draw requests/sec per core165 map draw requests/sec per core

•• 60% CPU utilization on SOM machine60% CPU utilization on SOM machine

•• 0.027 seconds average response time0.027 seconds average response time

1111UC2009 Technical WorkshopUC2009 Technical Workshop

Page 12: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Performance Factors: Performance Factors: ArcGISArcGIS Server FrameworkServer FrameworkWeb Service ComponentsWeb Service Components

•• Web service handlersWeb service handlers

–– Easily overloaded by MIME data (REST/SOAP returning MIME)Easily overloaded by MIME data (REST/SOAP returning MIME)

•• Network saturationNetwork saturation

–– 72 cores can approach 40% Gigabit utilization72 cores can approach 40% Gigabit utilization

–– Network I/O (fullNetwork I/O (full--duplex)duplex)

•• CPU utilizationCPU utilization

–– Use multiple Web InstancesUse multiple Web Instances

•• Virtual DirectoriesVirtual Directories

–– Virtual output directory bottlenecksVirtual output directory bottlenecks

•• Network saturationNetwork saturation

•• Disk performanceDisk performance

–– Use multiple output directories on different machines.Use multiple output directories on different machines.

1212UC2009 Technical WorkshopUC2009 Technical Workshop

Page 13: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Performance Factors: Performance Factors: ArcGISArcGIS Server FrameworkServer FrameworkWeb Service ComponentsWeb Service Components

•• MIME MIME vsvs URL return typeURL return type

–– For serving maps, MIME can scale better than URLFor serving maps, MIME can scale better than URL

•• Disk and UNC shares are often bottlenecks before network bandwidthDisk and UNC shares are often bottlenecks before network bandwidth

–– MIME performs better with smaller imagesMIME performs better with smaller images

180000

MIME vs. URL

1313UC2009 Technical WorkshopUC2009 Technical Workshop

0

20000

40000

60000

80000

100000

120000

140000

160000

180000

FGDB_Local_MIME FGDB_Local_URL

Th

rou

gh

pu

t (T

r/H

r)

High Complexity Map (large images)

Low Complexity Map (small images)

Page 14: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Performance Factors: Performance Factors: ArcGISArcGIS Server FrameworkServer FrameworkWeb ServicesWeb Services

•• SecuritySecurity

–– SSLSSL

–– LSASSLSASS

•• http://support.esri.com/index.cfm?fa=knowledgebase.techarticles.articleShohttp://support.esri.com/index.cfm?fa=knowledgebase.techarticles.articleShow&d=32620w&d=32620w&d=32620w&d=32620

–– Web Tier SecurityWeb Tier Security

•• User/Role StoresUser/Role Stores

•• Token ServerToken Server

1414UC2009 Technical WorkshopUC2009 Technical Workshop

Page 15: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

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

3

3.5

Insta

nces p

er

CP

U c

ore

at

Max T

hro

ug

hp

ut

Variance of Service Instances by Source Data Type

1515

0

0.5

1

1.5

2

2.5

FGDB_Local FGDB_UNC SHP_Local SHP_UNC Ora11g_AS Ora11g_DC SQLSvr_AS SQLSvr_DC

Insta

nces p

er

CP

U c

ore

at

Max T

hro

ug

hp

ut

UC2009 Technical WorkshopUC2009 Technical Workshop

Page 16: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Performance Factors: Performance Factors: ArcGISArcGIS Server ServicesServer ServicesMapServiceMapService

•• MxdMxd

–– Optimizing map symbols for performanceOptimizing map symbols for performance

–– Spatial indexSpatial index

–– Projecting on the flyProjecting on the fly

–– Optimizing map text and labels for performanceOptimizing map text and labels for performance

•• Use annotationsUse annotations

•• Avoid Avoid maplexmaplex

–– Use fast joins (no cross db joins)Use fast joins (no cross db joins)

–– Avoid wavelet compressionAvoid wavelet compression--based raster types (MrSid,JPEG2000)based raster types (MrSid,JPEG2000)

1616UC2009 Technical WorkshopUC2009 Technical Workshop

Page 17: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Performance Factors: Performance Factors: ArcGISArcGIS Server ServicesServer ServicesMapServiceMapService

•• MxdMxd

–– Simplify dataSimplify data

–– Set scale dependencySet scale dependency

•• Tuning Tools: Tuning Tools:

–– MxdPerfStatMxdPerfStat

–– ArcMapArcMap 9.3.1 Analyzer Tool9.3.1 Analyzer Tool

1717UC2009 Technical WorkshopUC2009 Technical Workshop

Page 18: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Performance Factors: Performance Factors: ArcGISArcGIS Server Map ServicesServer Map ServicesOptimizing Optimizing mxdmxd with with MXDPerfStatMXDPerfStathttp://arcscripts.esri.com/scripts.asp?eLang=&eProd=&perPage=10&eQuery=mxdperfstathttp://arcscripts.esri.com/scripts.asp?eLang=&eProd=&perPage=10&eQuery=mxdperfstatC:>C:>mxdperfstatmxdperfstat --mxdmxd Portland_Dev09_Bad.mxd Portland_Dev09_Bad.mxd --xyxy 7655029;652614 7655029;652614 --scale 8000 scale 8000

1818UC2009 Technical WorkshopUC2009 Technical Workshop

Page 19: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

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:

–– Scale dependency (Scale dependency (SDE.TaxSDE.Tax Lots)Lots)

–– Labeling on dense features (Labeling on dense features (TaxlotDenseLabelTaxlotDenseLabel))

–– Query Definition (Tax Lots Query Def)Query Definition (Tax Lots Query Def)

1919UC2009 Technical WorkshopUC2009 Technical Workshop

Page 20: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Performance Factors: Performance Factors: ArcGISArcGIS Server Services Server Services Demo: Optimizing Demo: Optimizing mxdmxd with with MXDPerfStatMXDPerfStat

2020UC2009 Technical WorkshopUC2009 Technical Workshop

Page 21: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Performance Factors: Performance Factors: ArcGISArcGIS Server Services Server Services MapServiceMapService

Optimizing Optimizing mxdmxd with new with new ArcMapArcMap 9.3.1 Analyze Tool9.3.1 Analyze Tool

2121UC2009 Technical WorkshopUC2009 Technical Workshop

Page 22: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Performance Factors: Performance Factors: ArcGISArcGIS Server Services Server Services MapServiceMapService

•• Optimizing MXDs with the new Optimizing MXDs with the new ArcMapArcMap 9.3.1 Analyze Tool: DEMO9.3.1 Analyze Tool: DEMO

2222UC2009 Technical WorkshopUC2009 Technical Workshop

Page 23: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Performance Factors: Performance Factors: ArcGISArcGIS Server Services (Server Services (MapServiceMapService))Uncorrected vs. Corrected Source Uncorrected vs. Corrected Source ArcMapArcMap DocumentDocument

Th

rou

gh

pu

t (T

ran

sacti

on

s/H

r)

65800

Corrected(Unloaded TT: 0.34 sec)

(2.1 Instances/core)

2520

13

Number of Instances

Th

rou

gh

pu

t (T

ran

sacti

on

s/H

r)

17

(2.1 Instances/core)

Uncorrected(Unloaded TT: 11.97 sec)

(1.6 Instances/core)

2323UC2009 Technical WorkshopUC2009 Technical Workshop

Page 24: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Performance Factors: Performance Factors: ArcGISArcGIS Server ServicesServer ServicesMapServiceMapService

•• Cache base mapCache base map

•• Display the operational layer as a cached map serviceDisplay the operational layer as a cached map service

–– if your operational dataset changes infrequentlyif your operational dataset changes infrequently

•• Display the operational layer as clientDisplay the operational layer as client--side graphicsside graphics

–– Do not fetch large amounts of featuresDo not fetch large amounts of features

•• Can take a long time to stream features to client.Can take a long time to stream features to client.

•• Can take a long time to render in client.Can take a long time to render in client.

2424UC2009 Technical WorkshopUC2009 Technical Workshop

Page 25: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Performance Factors: Performance Factors: ArcGISArcGIS Server ServicesServer ServicesMapServiceMapService

Demo: ClientDemo: Client--side graphics vs. dynamic map serviceside graphics vs. dynamic map service

2525UC2009 Technical WorkshopUC2009 Technical Workshop

Page 26: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Performance factors: Performance factors: ArcGISArcGIS Server Services Server Services MapServiceMapService

Demo: Measuring map service Demo: Measuring map service

private function onCreationComplete():void

{

logger.text += getTimer() + ' ms: Application creation completed.\n';

myThematicLayer.addEventListener(Event.COMPLETE, onTilesLoaded)

myMap.addEventListener(PanEvent.PAN_START, onPanStart);

myMap.addEventListener(ZoomEvent.ZOOM_START, onZoomStart);

}

private function onTilesLoaded(event:Event):void

{

2626

if (panStartFlag){

TimeTileComplete = getTimer() - TimeTileStart ;

TimeTileStart = 0

logger.text += "Tiles took " + TimeTileComplete + " ms to pan.\n";

panStartFlag = false;

}

if (zoomStartFlag){

TimeTileComplete = getTimer() - TimeTileStart ;

TimeTileStart = 0

logger.text += "Tiles took " + TimeTileComplete + " ms to Zoom.\n";

zoomStartFlag= false;

}

}

UC2009 Technical WorkshopUC2009 Technical Workshop

Page 27: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Performance Factors: Performance Factors: ArcGISArcGIS Server Services Server Services MapServiceMapServiceDemo: Measuring clientDemo: Measuring client--side graphicsside graphics

private function doThematicQuery():void

{

myGraphicsLayer.clear();

queryTask.url = textQueryURL.text.toString();

logger.text += getTimer() + " ms: Starting query...\n";

TimeQueryStart = getTimer();

queryTask.execute( query, new AsyncResponder( onResult, onFault ));

2727

myGraphicsLayer.addEventListener(FlexEvent.UPDATE_COMPLETE,graphicsLayerUpdated);

function onResult( featureSet : FeatureSet, token : Object = null ) : void

{

TimeQueryDone = getTimer();

var TimeQueryDiff:uint = getTimer() - TimeQueryStart;

logger.text += getTimer() + " ms: Query took " + TimeQueryDiff + " ms";

logger.text += " [" + myGraphicsLayer.numGraphics + " features].\n";

}

UC2009 Technical WorkshopUC2009 Technical Workshop

Page 28: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Performance Factors: Performance Factors: ArcGISArcGIS Server Services Server Services GPServiceGPService

•• Use Local Jobs Directory Use Local Jobs Directory

––Greatest single performance factor.Greatest single performance factor.

––9.3.1 allows simple deployment9.3.1 allows simple deployment

•• Subset very large Subset very large rastersrasters•• Subset very large Subset very large rastersrasters

•• Use native types like GRIDUse native types like GRID

•• Use Layers instead of raw data from dbUse Layers instead of raw data from db

•• Use inUse in--memory feature data setsmemory feature data sets

2828UC2009 Technical WorkshopUC2009 Technical Workshop

Page 29: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Performance Factors: Performance Factors: ArcGISArcGIS Server Services Server Services GPServiceGPService

•• PrePre--compute intermediate steps when possiblecompute intermediate steps when possible

•• Use local paths to data and resourcesUse local paths to data and resources

•• Avoid unneeded coordinate transformationsAvoid unneeded coordinate transformations

•• Add attribute indexesAdd attribute indexes•• Add attribute indexesAdd attribute indexes

•• Simplify dataSimplify data

Detailed instructions on the Detailed instructions on the Resource CenterResource Center at:at:

http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?id=1061&pid=1044&tohttp://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?id=1061&pid=1044&topicname=Performance_tips_for_geoprocessing_servicespicname=Performance_tips_for_geoprocessing_services

2929UC2009 Technical WorkshopUC2009 Technical Workshop

Page 30: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Performance Factors: Performance Factors: ArcGISArcGIS Server Services Server Services Image ServiceImage Service

•• JPEG compressed TIFF is the best performer by far (10JPEG compressed TIFF is the best performer by far (10--100x 100x faster)faster)

•• TiledTiled rastersrasters even faster than single TIFFeven faster than single TIFF

3030UC2009 Technical WorkshopUC2009 Technical Workshop

Page 31: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Performance Factors: Performance Factors: ArcGISArcGIS Server Services Server Services GeocodeGeocode and Globe Servicesand Globe Services

•• GeocodeGeocode ServicesServices

–– Use Use ArcSDEArcSDE address locators for single address address locators for single address geocodinggeocoding

–– Use local locator files instead of UNC locator files for batch Use local locator files instead of UNC locator files for batch geocodinggeocoding

•• Globe ServicesGlobe Services

–– Use BillUse Bill--boarded label annotations.boarded label annotations.–– Use BillUse Bill--boarded label annotations.boarded label annotations.

3131UC2009 Technical WorkshopUC2009 Technical Workshop

Page 32: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Performance Factors: Performance Factors: ArcGISArcGIS Server Services Server Services Mobile ServiceMobile Service

•• Document PreparationDocument Preparation

–– Minimize operational layersMinimize operational layers

–– Cache Cache basemapbasemap layerslayers

•• 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.

–– Upload/Download size limits (200K upload/4MB download) Upload/Download size limits (200K upload/4MB download) http://www.banmanpro.com/support2/File_Upload_limits.asphttp://www.banmanpro.com/support2/File_Upload_limits.asp

•• Usage considerationsUsage considerations

–– Avoid batch postings in favor of frequent updatesAvoid batch postings in favor of frequent updates

3232UC2009 Technical WorkshopUC2009 Technical Workshop

Page 33: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Performance Factors: Performance Factors: ArcGISArcGIS Server Services Server Services GeodataGeodata ServiceService

•• Data PreparationData Preparation

–– Perform regular version maintenance (keep versioning tree Perform regular version maintenance (keep versioning tree small, compress, schedule synchronizations, etc) small, compress, schedule synchronizations, etc) http://blogs.esri.com/Dev/blogs/geodatabase/archive/2008/11/25/Geodahttp://blogs.esri.com/Dev/blogs/geodatabase/archive/2008/11/25/Geodatabasetabase--replicationreplication--andand--compress.aspxcompress.aspx

–– Use 1 way replicas over 2 way replicas when possibleUse 1 way replicas over 2 way replicas when possible

–– Consider 2 way replicas instead of checkConsider 2 way replicas instead of check--out replicasout replicas

–– WellWell--defined data modeldefined data model

3333UC2009 Technical WorkshopUC2009 Technical Workshop

Page 34: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Performance Factors: Performance Factors: ArcGISArcGIS Server Services Server Services GeodataGeodata ServiceService

•• Service ConfigurationService Configuration

–– Server Object usage timeout (set larger than 10 min default)Server Object usage timeout (set larger than 10 min default)

–– Upload/Download default IIS size limits (200K upload/4MB download)Upload/Download default IIS size limits (200K upload/4MB download)

•• Usage considerationsUsage considerations•• Usage considerationsUsage considerations

–– Client HTTP timeout Client HTTP timeout http://support.esri.com/index.cfm?fa=knowledgebase.techarticles.artichttp://support.esri.com/index.cfm?fa=knowledgebase.techarticles.articleShow&d=35971leShow&d=35971

–– http://support.esri.com/index.cfm?fa=knowledgebase.techarticles.artichttp://support.esri.com/index.cfm?fa=knowledgebase.techarticles.articleShow&d=35972leShow&d=35972

3434UC2009 Technical WorkshopUC2009 Technical Workshop

Page 35: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Performance Factors: Client Applications and the ADFPerformance Factors: Client Applications and the ADF

•• Meet functional requirementsMeet functional requirements

•• 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

0.8

0.85

0.9

0.95

1

1.05

1.1

1.15

.NET ADF FlexResp

[on

se T

ime (

sec)

ADF vs. Flex Application Simple Dynamic Map

Rendering Comparison

UC2009 Technical WorkshopUC2009 Technical Workshop

Page 36: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Testing Testing ArcGISArcGIS Server Architectures (Data/Maps)Server Architectures (Data/Maps)

MapServiceMapService DescriptionDescription

•• High ComplexityHigh Complexity

–– 20 vector layers20 vector layers

–– 3 raster layers3 raster layers

–– Return image size ~ 100Return image size ~ 100--300 K300 K

–– Long transaction times (~0.3 sec)Long transaction times (~0.3 sec)

High Complexity

•• Low ComplexityLow Complexity

–– 1 vector layer1 vector layer

–– Return image size ~ 5Return image size ~ 5--50 K50 K

–– Short transaction times (0.06 sec)Short transaction times (0.06 sec)

•• BothBoth

–– 9.3.1 Fast “Optimized” 9.3.1 Fast “Optimized” MapServiceMapService

–– Data local on SOC machinesData local on SOC machines

–– FGDB dataFGDB data

Low Complexity

3636UC2009 Technical WorkshopUC2009 Technical Workshop

Page 37: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

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.

•• Hardware Hardware

–– 4 Dual4 Dual--Core 2.5 GHz CPU, 16 GB RAM, 15K RPM local disksCore 2.5 GHz CPU, 16 GB RAM, 15K RPM local disks

•• More Info? See detailed session.More Info? See detailed session.

3737UC2009 Technical WorkshopUC2009 Technical Workshop

Page 38: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

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

SOMSOM

SOCSOC11 SOCSOC22 SOCSOCnnSOCSOC33 ……

3838UC2009 Technical WorkshopUC2009 Technical Workshop

•• Best performingBest performing

•• Easy maintenanceEasy maintenance

Page 39: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

ArcGISArcGIS Server Architectures: “Classic” MIMEServer Architectures: “Classic” MIMEPerformance CharacteristicsPerformance Characteristics

ParametersParameters

•• Document Complexity: Document Complexity: HighHigh

•• Return Type: Return Type: MIMEMIME1000

1200

1400

1600

1800

Nu

mb

er

of

Sim

ula

ted

Users

WSWS11 WSWS22 WSWSmm

SOMSOM

SOCSOC11 SOCSOC22 SOCSOCnnSOCSOC33……

……

NLBNLB

ArcGIS Server Scalability (High Complexity)

•• Return Type: Return Type: MIMEMIME

•• Web Servers: Web Servers: 11--22

•• SOM Machines: SOM Machines: 11

•• SOC Machines: SOC Machines: 11--9 (72 cores)9 (72 cores)

ObservationsObservations

•• Linearity breaks down at Linearity breaks down at 77 SOC SOC machines (machines (425,000 425,000 TrTr/Hr/Hr), (), (49 49 corescores))

•• 22ndnd Web Server restores linearityWeb Server restores linearity

0

200

400

600

800

1000

1 2 3 4 5 6 7 8 9

Nu

mb

er

of

Sim

ula

ted

Users

Number of SOC Machines

Actual: 1 WS Actual: 2 WS Ideal3939UC2009 Technical WorkshopUC2009 Technical Workshop

Page 40: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

ArcGISArcGIS Server Architectures: “Classic” MIMEServer Architectures: “Classic” MIMEPerformance CharacteristicsPerformance Characteristics

ParametersParameters

•• Document Complexity: Document Complexity: LowLow

•• Return Type: Return Type: MIMEMIME

WSWS11 WSWS22 WSWSmm

SOMSOM

SOCSOC11 SOCSOC22 SOCSOCnnSOCSOC33……

……

NLBNLB

ArcGIS Server Scalability (Low Complexity)

2000

2500

3000

3500

Nu

mb

er

of

Sim

ula

ted

Users

•• Return Type: Return Type: MIMEMIME

•• Web Servers: Web Servers: 11--22

•• SOM Machines: SOM Machines: 11

•• SOC Machines: SOC Machines: 11--9 (72 cores)9 (72 cores)

ObservationsObservations

•• Linearity breaks down at Linearity breaks down at 88 SOC SOC machines (machines (1,150,000 1,150,000 TrTr/Hr/Hr), (), (56 56 corescores))

•• 22ndnd Web Server restores linearityWeb Server restores linearity

0

500

1000

1500

1 2 3 4 5 6 7 8 9

Nu

mb

er

of

Sim

ula

ted

Users

Number of SOC Machines

Actual: 1 WS Actual: 2 WS Ideal4040UC2009 Technical WorkshopUC2009 Technical Workshop

Page 41: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

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).).

SOM CPU Utilization

WSWS11 WSWS22 WSWSmm

SOMSOM

SOCSOC11 SOCSOC22 SOCSOCnnSOCSOC33……

……

NLBNLB

((greengreen).).

IIS CPU Utilization

4141UC2009 Technical WorkshopUC2009 Technical Workshop

Page 42: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

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

Page 43: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

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

•• FS UNC PenaltyFS UNC Penalty

SOMSOM

SOCSOC11 SOCSOC22 SOCSOCnnSOCSOC33 ……

FSFS FSFSFSFS ……

4343UC2009 Technical WorkshopUC2009 Technical Workshop

Page 44: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

ArcGISArcGIS Server Architectures: “Classic” URLServer Architectures: “Classic” URLPerformance CharacteristicsPerformance Characteristics

ParametersParameters

•• Document Complexity: Document Complexity: HighHigh

•• Return Type: Return Type: URLURL

ArcGIS Server Scalability (High Complexity)

500

600

700

800

900

1000

Nu

mb

er

of

Sim

ula

ted

Use

rs

WSWS11 WSWS22 WSWSmm

SOMSOM

SOCSOC11 SOCSOC22 SOCSOCnnSOCSOC33……

……

NLB(w/Affinity)NLB(w/Affinity)

FSFS FSFSFSFS ……

•• Return Type: Return Type: URLURL

•• Web Servers: Web Servers: 11--22

•• SOM Machines: SOM Machines: 11

•• SOC Machines: SOC Machines: 11--5 (45 cores)5 (45 cores)

ObservationsObservations

•• Linearity breaks down at Linearity breaks down at 44 SOC SOC machines (machines (275,000 275,000 TrTr/Hr/Hr), (), (36 36 corescores))

•• 22ndnd Web Server Web Server does not does not restore restore linearitylinearity

0

100

200

300

400

500

1 2 3 4 5

Nu

mb

er

of

Sim

ula

ted

Use

rs

Number of SOC Machines

Actual Ideal

4444UC2009 Technical WorkshopUC2009 Technical Workshop

Page 45: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

ArcGISArcGIS Server Architectures: “Classic” URLServer Architectures: “Classic” URLPerformance CharacteristicsPerformance Characteristics

ParametersParameters

•• Document Complexity: Document Complexity: LowLow

•• Return Type: Return Type: URLURL

ArcGIS Server Scalability (Low Complexity)

1000

1200

1400

1600

1800

Nu

mb

er

of

Sim

ula

ted

Use

rs

WSWS11 WSWS22 WSWSmm

SOMSOM

SOCSOC11 SOCSOC22 SOCSOCnnSOCSOC33……

……

NLB(w/Affinity)NLB(w/Affinity)

FSFS FSFSFSFS ……

•• Return Type: Return Type: URLURL

•• Web Servers: Web Servers: 11--22

•• SOM Machines: SOM Machines: 11

•• SOC Machines: SOC Machines: 11--5 (45 cores)5 (45 cores)

ObservationsObservations

•• 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

Page 46: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

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.

4646UC2009 Technical WorkshopUC2009 Technical Workshop

Page 47: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

ArcGISArcGIS Server Architectures (MIME): Active/Active SOMsServer Architectures (MIME): Active/Active SOMs2 SOM + M SOC + N WS2 SOM + M SOC + N WS

AdvantagesAdvantages

WSWS11 WSWS22

SOMSOM11

NLBNLB

SOMSOM22

WSWS33 WSWSnn

AdvantagesAdvantages•• Highly AvailableHighly Available

•• Web Servers well utilizedWeb Servers well utilized

DisadvantagesDisadvantages

•• Duplication of service Duplication of service

configurationsconfigurations

•• SOMs don’t know how SOCs SOMs don’t know how SOCs

are utilized by other SOMs.are utilized by other SOMs.

SOCSOC11 SOCSOC22 SOCSOCmm……SOCSOC33

4747UC2009 Technical WorkshopUC2009 Technical Workshop

Page 48: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

ArcGISArcGIS Server Architectures: Active/Passive SOMsServer Architectures: Active/Passive SOMs2 SOM + M SOC + N WS2 SOM + M SOC + N WS

NLBNLB

WSWS11

AA PP

WSWS22

AA PP

WSWS33

AA PP

WSWSnn

AA PP

AdvantagesAdvantages•• Highly AvailableHighly Available

•• Independent SOMsIndependent SOMs

•• All web servers utilizedAll web servers utilized

•• All SOC machines utilizedAll SOC machines utilized

DisadvantagesDisadvantages

•• MaintenanceMaintenance

•• Only available in Java at Only available in Java at

9.3.1 (will be available in 9.3.1 (will be available in

.NET at 9.4).NET at 9.4)

SOMSOM11

SOCSOC11 SOCSOC22 SOCSOCmm……

SOMSOM22

SOCSOC33

4848UC2009 Technical WorkshopUC2009 Technical Workshop

Page 49: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

ArcGISArcGIS Server Architectures: “AllServer Architectures: “All--inin--ones” (MIME or URL)ones” (MIME or URL)N WS/SOM/SOC machinesN WS/SOM/SOC machines

AdvantagesAdvantages•• Highly AvailableHighly Available

•• Some ease of configuration (no Some ease of configuration (no distributed installation)distributed installation)

WSWS11 WSWS22 WSWSnn

SOMSOM11 ……

NLB (w/affinity)NLB (w/affinity)

SOMSOM22 SOMSOMnndistributed installation)distributed installation)

•• Easily imaged and VirtualizedEasily imaged and Virtualized

•• Supports URL or MIME return Supports URL or MIME return type with same linear scalabilitytype with same linear scalability

DisadvantagesDisadvantages

•• Duplication of service Duplication of service

configurationsconfigurations

•• Reduced performance (SOCs Reduced performance (SOCs

compete with SOM and WS)compete with SOM and WS)

SOCSOC11 SOCSOC22 SOCSOCnn

……22 nn

4949UC2009 Technical WorkshopUC2009 Technical Workshop

Page 50: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Physical Machine: 4 CPU/16GB RAM

VM: 4 CPU/16GB RAM

SOM SOC WS

1V_4C_16R

Physical Machine: 4 CPU/16GB RAM

VM: 1 CPU/2GB RAM

SOM SOC WS

VM: 1 CPU/2GB RAM

SOC

VM: 1 CPU/2GB RAM VM: 1 CPU/2GB RAM

4V_1C_2R

ArcGISArcGIS Server Architectures: “Classic” MIMEServer Architectures: “Classic” MIMEVirtualization Penalty with Virtualization Penalty with VMWareVMWare

5050UC2009 Technical WorkshopUC2009 Technical Workshop

Physical Machine: 4 CPU/16GB RAM

VM: 2 CPU/8GB RAM

SOM SOC WS

VM: 2 CPU/8GB RAM

SOC

2V_2C_8R

Physical Machine: 4 CPU/16GB RAM

VM: 1 CPU/4GB RAM

SOM SOC WS

VM: 1 CPU/4GB RAM

SOC

VM: 1 CPU/4GB RAM

SOC

VM: 1 CPU/4GB RAM

SOC

4V_1C_4R

SOC SOC

Page 51: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

ArcGISArcGIS Server Architectures: “Classic” MIMEServer Architectures: “Classic” MIMEVirtualization Penalty with Virtualization Penalty with VMWareVMWare

5151UC2009 Technical WorkshopUC2009 Technical Workshop

Page 52: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Tuning PrimerTuning Primer

•• Profile and tune single user transaction response timeProfile and tune single user transaction response time

•• Optimize Optimize ArcMapArcMap mxdmxd documentdocument

•• Create attribute indexes for query and search tasksCreate attribute indexes for query and search tasks

•• Optimize services (cache, merge, image type)Optimize services (cache, merge, image type)

•• Optimize application requestsOptimize application requests

–– Number of requests per transactionNumber of requests per transaction

–– Browser cachingBrowser caching

–– Server cachingServer caching

•• DBMS configurationDBMS configuration

5252UC2009 Technical WorkshopUC2009 Technical Workshop

Page 53: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Browser

Web Server

SOM

Total Response

Time (t1-t2)

Wait Time

A test is executed at the web

browser.

It measures web browser call’s

elapsed time (roundtrip between

browser and data source)

t1 t2

Tuning PrimerTuning PrimerProfile user transaction response timeProfile user transaction response time

SOM

SOC

Wait Time

Search &

Retrieval Time

Usage Time

SDE/DBMS

5353UC2009 Technical WorkshopUC2009 Technical Workshop

Page 54: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Tuning PrimerTuning PrimerWeb diagnostic tools: Fiddler2Web diagnostic tools: Fiddler2

5454UC2009 Technical WorkshopUC2009 Technical Workshop

Page 55: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Tuning PrimerTuning PrimerWeb diagnostic tools: Fiddler2Web diagnostic tools: Fiddler2

•• Understand each request URLUnderstand each request URL

•• Verify cache requests are from virtual directory, not dynamic map Verify cache requests are from virtual directory, not dynamic map serviceservice

•• Validate host origin (reverse proxy)Validate host origin (reverse proxy)

•• Profile each transaction response timeProfile each transaction response time

5555Attend Attend ArcGISArcGIS Server Performance and Scalability Server Performance and Scalability –– Testing sessionTesting session

UC2009 Technical WorkshopUC2009 Technical Workshop

Page 56: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Tuning PrimerTuning PrimerWeb diagnostic tools: Web diagnostic tools: TamperdataTamperdata, , YslowYslow, Visual Studio TT, Visual Studio TT

5656UC2009 Technical WorkshopUC2009 Technical Workshop

Page 57: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Browser

Web Server

SOM

Transmission

Time

Wait TimeAGS context server statistics using

Tuning PrimerTuning PrimerAnalyze SOM/SOC statisticsAnalyze SOM/SOC statistics

SOM

SOC

Wait Time

Search &

Retrieval Time

Usage Time

SDE/DBMS

AGS context server statistics using

ArcCatalog, Manager or logs provide

aggregate and detailed information to

help reveal the cause of the

performance problem.

t1 t2

5757UC2009 Technical WorkshopUC2009 Technical Workshop

Page 58: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Tuning PrimerTuning PrimerAnalyze SOM/SOC statisticsAnalyze SOM/SOC statistics

•• ArcCatalogArcCatalog

•• New 9.3.1 detailed log New 9.3.1 detailed log -- set to verboseset to verbose

5858

<Msg time="2009-03-16T12:23:22" type="INFO3" code="103021" target="Portland.MapServer" methodName="FeatureLayer.Draw"

machine="myWebServer" process="2836" thread="3916" elapsed="0.05221">Executing query.</Msg>

<Msg time="2009-03-16T12:23:23" type="INFO3" code="103019" target="Portland.MapServer" methodName="SimpleRenderer.Draw"

machine="myWebServer" process="2836" thread="3916">Feature count: 27590</Msg>

<Msg time="2009-03-16T12:23:23" type="INFO3" code="103001" target="Portland.MapServer" methodName="Map.Draw" machine="myWebServer"

process="2836" thread="3916" elapsed="0.67125">End of layer draw: STREETS</Msg>

UC2009 Technical WorkshopUC2009 Technical Workshop

Page 59: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Tuning Tuning MxdMxd map documentmap documentNew New ArcMapArcMap 9.3.1 Analyze Tool9.3.1 Analyze Tool

5959UC2009 Technical WorkshopUC2009 Technical Workshop

Page 60: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Tuning Tuning MxdMxd map documentmap documentmxdperfstatmxdperfstat

http://arcscripts.esri.com/scripts.asp?eLang=&eProd=&perPage=10&eQuery=mxdperfstathttp://arcscripts.esri.com/scripts.asp?eLang=&eProd=&perPage=10&eQuery=mxdperfstat

Item At Scale Layer NameRefresh

Time (sec)Recommendations Features Vertices Labeling

Geograph

y Phase

(sec)

Graphics

Phase

(sec)

Cursor

Phase

(sec)

DBMS

CPU

DBMS

LIO

41 1,000 TaxlotDenseLabel 1.93

Simplify labeling, symbology:

GraphicsPhase=1.42; simplify geometry

and/or set label scale; convert polygon

to polyline: vertices fetched=200001;

simplify geometry and/or set label

scale: vertices fetched=200001; 1 200,001 TRUE 0.45 1.42 1.04 0.02 266

42 1,000 TaxlotDenseNoLabel 0.53

simplify geometry: vertices

fetched=200001; 1 200,001 FALSE 0.45 0.02 0.9 0.02 140

6060UC2009 Technical WorkshopUC2009 Technical Workshop

Page 61: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Browser

Web Server

SOM

Transmission

Time

Wait Time

Tuning Data sourcesTuning Data sources

SOM

SOC

Wait Time

Search &

Retrieval Time

Usage Time

SDE/DBMS

6161UC2009 Technical WorkshopUC2009 Technical Workshop

Page 62: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Tuning Data Sources Tuning Data Sources –– Oracle TraceOracle Trace

select username, select username, sidsid, serial#, program, , serial#, program, logon_timelogon_time

from from v$sessionv$session where username='STUDENT';where username='STUDENT';

USERNAME SID SERIAL# PROGRAM LOGON_TIMUSERNAME SID SERIAL# PROGRAM LOGON_TIM

------------------------------------------------------------ -------------------- -------------------- -------------------------------------------------------------------------------------------------------------------------------- ----

STUDENT 132 31835 gsrvr.exe 23STUDENT 132 31835 gsrvr.exe 23--OCTOCT--0606

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

Enter password:Enter password:

Connected.Connected.

SQL> execute SQL> execute sys.dbms_system.set_evsys.dbms_system.set_ev(132,31835,10046,12,'');(132,31835,10046,12,'');

PL/SQL procedure successfully completed.PL/SQL procedure successfully completed.

6262

DBMS trace is a very powerful diagnostic toolDBMS trace is a very powerful diagnostic tool

UC2009 Technical WorkshopUC2009 Technical Workshop

Page 63: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

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

forever, level 12'")

. . .

End Sub

UC2009 Technical WorkshopUC2009 Technical Workshop

Page 64: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Tuning Data Sources Tuning Data Sources –– Oracle Trace (continued)Oracle Trace (continued)

SQL ID : 71py6481sj3xu

SELECT 1 SHAPE, TAXLOTS.OBJECTID, TAXLOTS.SHAPE.points,TAXLOTS.SHAPE.numpts,

TAXLOTS.SHAPE.entity,TAXLOTS.SHAPE.minx,TAXLOTS.SHAPE.miny,

TAXLOTS.SHAPE.maxx,TAXLOTS.SHAPE.maxy,TAXLOTS.rowid

FROM SDE.TAXLOTS TAXLOTS WHERE SDE.ST_EnvIntersects(TAXLOTS.SHAPE,:1,:2,:3,:4) = 1

call count cpu elapsed disk query current rows

------- ------ -------- ---------- ---------- ---------- ---------- ----------

Parse 0 0.00 0.00 0 0 0 0

Execute 1 0.07 0.59 115 1734 0 0

6464

Fetch 242 0.78 12.42 2291 26820 0 24175

------- ------ -------- ---------- ---------- ---------- ---------- ----------

total 243 0.85 13.02 2406 28554 0 24175

Elapsed times include waiting on following events:

Event waited on Times Max. Wait Total Waited

---------------------------------------- Waited ---------- ------------

SQL*Net message to client 242 0.00 0.00

db file sequential read 2291 0.39 11.69

SQL*Net more data to client 355 0.00 0.02

SQL*Net message from client 242 0.03 0.54

********************************************************************************

UC2009 Technical WorkshopUC2009 Technical Workshop

Page 65: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

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

–– CPU = 0.85 sec CPU = 0.85 sec

–– Disk= 2291 blocksDisk= 2291 blocks

–– Wait event (db file sequential read )=11.69 secWait event (db file sequential read )=11.69 sec

–– Rows fetched = 24175Rows fetched = 24175

6565UC2009 Technical WorkshopUC2009 Technical Workshop

Page 66: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Tuning Data Sources Tuning Data Sources –– SQL ProfilerSQL Profiler

6666UC2009 Technical WorkshopUC2009 Technical Workshop

Page 67: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

SummarySummary

•• Today we covered:Today we covered:

–– Case Study: Optimizing a Flex API web applicationCase Study: Optimizing a Flex API web application

–– Reviewed key performance factors in Reviewed key performance factors in ArcGISArcGIS Server system componentsServer system components

–– Described strategies for component optimizationDescribed strategies for component optimization

–– Recommended deployment architecturesRecommended deployment architectures

–– Described methodology for tuning Described methodology for tuning ArcGISArcGIS Server deployments inServer deployments in--situsitu

6767

Still have questions?Still have questions?

UC2009 Technical WorkshopUC2009 Technical Workshop

Page 68: ArcGISArcGIS Server Performance and Scalability Server ...downloads2.esri.com/resources/mediaGallery/BEB4C... · Schedule and Overview ArcGISArcGIS Server deployment Server deployment

Additional ResourcesAdditional ResourcesQuestions, answers and information…Questions, answers and information…

•• Tech Talk Tech Talk

––Outside this room right now!Outside this room right now!

•• Other sessionsOther sessions

•• ESRI Resource CentersESRI Resource Centers

––PPTs, code and videoPPTs, code and video

resources.esri.comresources.esri.com•• Other sessionsOther sessions

––ArcGISArcGIS Server Performance Server Performance and Scalability and Scalability -- TestingTesting

6868

resources.esri.comresources.esri.com

UC2009 Technical WorkshopUC2009 Technical Workshop