ArcGIS for Server Performance and Scalability Optimizing GIS Services

Similar documents
Optimizing GIS Services: Scalability & Performance. Firdaus Asri

Architecting ArcGIS Server Solutions for Performance and Scalability

Best Practices for Designing Effective Map Services

Designing and Using Cached Map Services

ArcGIS for Server: Optimizing Performance and Scalability

Administering Your ArcGIS Enterprise Portal Bill Major Craig Cleveland

ArcGIS Server Performance and Scalability : Optimizing GIS Services

ArcGIS for Server Administration. Andrew Sakowicz

Introduction to ArcGIS Server Architecture and Services. Amr Wahba

ArcGIS Enterprise: Architecture & Deployment. Anthony Myers

Learning What s New in ArcGIS 10.1 for Server: Administration

Building Applications with the ArcGIS Runtime SDK for WPF

ArcGIS Runtime SDK for Java: A Beginner s Guide. Mark Baird JC Malott

Developing Qt Apps with the Runtime SDK

An Introduction to GIS for developers

ArcGIS Enterprise: Performance and Scalability Best Practices. Darren Baird, PE, Esri

Getting Started with ArcGIS Runtime SDK for Java SE

Introduction to Geodatabase and Spatial Management in ArcGIS. Craig Gillgrass Esri

Securing ArcGIS Server Services An Introduction

Editing Versioned Geodatabases : An Introduction

ArcGIS Enterprise: Portal Administration BILL MAJOR CRAIG CLEVELAND

ArcGIS for Server: Publishing and Using Map Services

ArcGIS for Server Michele Lundeen

ArcGIS Viewer for Microsoft Silverlight An Introduction

Desktop. ArcGIS Server. ArcGIS

Python Map Automation Beyond the Basics of arcpy.mapping

What s New in Desktop 10.1

Working with Feature Layers. Russell Brennan Gary MacDougall

Getting Started with ArcGIS Runtime SDK for Qt. Thomas Dunn & Nandini Rao

Performance and Scalability: Tuning, Testing, and Monitoring

Getting Started with the ArcGIS Server JavaScript API

Best Practices for Creating Web Maps. Brian Chong Justin Fan

ArcGIS Enterprise: Advanced Topics in Administration. Thomas Edghill & Moginraj Mohandas

Best Practices for Designing Effective Map Services

Introduction to ArcGIS Server 10.1

TRAINING GUIDE. Lucity GIS. Web Administration

Troubleshooting Performance Issues with Enterprise Geodatabases. Ben Lin, Nana Dei, Jim McAbee

ArcGIS Online: Three-and-a-Half Ways to Create Tile Layers. Eric Anderson & Adam Eversole Esri Support Services

Sharing Web Layers and Services in the ArcGIS Platform. Melanie Summers and Ty Fitzpatrick

Web AppBuilder Presented by

ArcGIS for Server: Administration and Security. Amr Wahba

ArcGIS Viewer for Flex An Introduction

ArcMap Tips and Tricks

Getting the most from the Maplex Label Engine

Publishing image services in ArcGIS

ArcGIS Runtime SDK for ios and macos: Building Apps. Suganya Baskaran, Gagandeep Singh

Advanced Map Caching. Tom Brenneman

Implementing and Optimizing ArcGIS Server Map Caches

Web Server (IIS 6) ArcGIS Server 9.1. ArcGIS Server 9.1 Server Object Manager. Server Object Container

Creating 2D Map Caches with

What s New for Developers in ArcGIS Maura Daffern October 16

Creating Great Labels Using Maplex

ArcGIS Pro: Mapping & Visualization. David Watkins, Edie Punt &

Getting Started with the ArcGIS API for JavaScript. Julie Powell, Paul Hann

Introduction to Web AppBuilder for ArcGIS: JavaScript Apps Made Easy

Publishing and Using Map Services with ArcGIS for Server. Craig Williams, Ty Fitzpatrick, & Tanu Hoque

What s s Coming in ArcGIS 10 Desktop

Getting Started with ArcGIS for Server. Charmel Menzel and Ken Gorton

Galigeo for Cognos Analytics Installation Guide - G experience

ArcGIS Enterprise Performance and Scalability Best Practices. Andrew Sakowicz

Using ArcGIS for Server. Javier Abadía, Esri España Peter McDaid, Esri UK

Leveraging OGC Services in ArcGIS Server. Satish Sankaran, Esri Yingqi Tang, Esri

Esri Best Practices: Tuning, Testing, and Monitoring. Andrew Sakowicz, Frank Pizzi,

ArcGIS Online: Best Practices for High-Demand Web Applications. Kelly Gerrow-Wilcox Bonnie Stayer Beth Romero

Design a Geodatabase. Rasu Muthurakku, Enterprise Solutions Architect / Consultant

ArcGIS Runtime SDK for WPF

Configuring ArcGIS Enterprise in Disconnected Environments

Enabling High-Quality Printing in Web Applications. Tanu Hoque & Jeff Moulds

Managing Image Data on the ArcGIS Platform Options and Recommended Approaches

What s New in ArcGIS 10.3 for Server. Tom Shippee Esri Training Services

ArcPad An Introduction

Configuring, Tuning and Managing ArcGIS Server. Dan O Leary James Cardona Owen Evans

ESRI Technology Update. Joe Holubar Larry Young

What should y you expect in this session? Basic to advanced topics Outline What is map caching? Why should I cache? Caching workflow How to create a c

Building Apps with the ArcGIS Runtime SDK for ios

ArcMap: Tips and Tricks

Integrating Imagery into ArcGIS Runtime Application. Jie Zhang, Zhiguang Han San Jacinto, 5:30 pm 6:30 pm

ArcGIS Viewer for Silverlight Advanced Topics

Introduction to ArcGIS API for Flex. Bjorn Svensson Lloyd Heberlie

ArcGIS Server Web Server Web Applications WWW. Applications. ArcGIS Server Manager. GIS Server. Data. Desktop GIS. ArcGIS Desktop (content author) SOM

Author. Publish. Use

ArcGIS for Server: What s New. Philip Heede, Jay Theodore

S s y t s em e s s Ar A ch c i h tec e t c ur u e e De D s e i s gn g, n C o C n o f n igu g r u at a ion o, n a n a d n D p e l p oy o m y en e t

TRAINING GUIDE. GIS Session Preview (New Features) 2017 and 2017r2

Enabling High-Quality Printing in Web Applications. Tanu Hoque & Scott Moore

Esri Production Mapping An Introduction

Getting Started with ArcGIS Runtime. Jeff Shaner David Cardella

ArcGIS Enterprise Administration

Esri Maps for SharePoint

Creating Mosaic Datasets and Publishing Image Services using Python

Introduction to Autodesk MapGuide EnterpriseChapter1:

ArcGIS Enterprise: An Introduction. Philip Heede

Using Imagery for Intelligence Analysis

Data Interoperability An Introduction

Best Practices with ArcSDE Technology. Katja Krivoruchko CA/NV/HI Technical Marketing ESRI

No Programming Required Create web apps rapidly with Web AppBuilder for ArcGIS

Designing and Using Basemaps. Jennifer Hughey

Providing Interoperability Using the Open GeoServices REST Specification

Caching Imagery Using ArcGIS

Encoded URLs in hyperlinks. TerraGo Publisher for ArcGIS TerraGo Publisher for ArcGIS Server TerraGo Arc2Edge Version 7.3.

Transcription:

Esri International User Conference San Diego, California Technical Workshops July 26, 2012 ArcGIS for Server Performance and Scalability Optimizing GIS Services Andrea Rosso (Esri), Craig Williams (Esri), David Cordes (Esri), Eric Miller (Esri)

Optimizing map services Craig Williams

Overview Types of map services - What s new at 10.1? Factors of map service performance - Data access - Rendering speed - Image size/compression

Map services 9.3.1 10.0 - MXD based map services - MSD based map services (optimized map service) Use the optimized map service for best quality and performance - Analyzer workflow guides you through potential problems

Map services at 10.1 One unified map service - An updated optimized map service - Supports additional capabilities, data types, layers, renderers New extension capabilities: - Network Analysis - Geoprocessing* Application http Map Server ArcGIS Server

Mapping capabilities Added data source support - XY events - Linear referencing events Added feature layer renderer support - Dot density - Charts - Geostats Added support for layers - Dimensions - Schematics - Network - Network Analysis - Tin - Terrain - Tracking

Dynamic Layers: The Concept New behavior with the map service that allows for per-request changes to the map Optional capability of map services May allow you to reduce the total number of services you need Allows for: - Updating renderers and symbols - Removing and reordering layers - Changing layer data sources - Adding new layers from registered data sources

Dynamic Layers: Use Cases Simple updates to the map service - Remove layers or reorder layers Thematic mapping - Updates to renderers Adding content from a data library - Find data from registered workspaces - Including query layers - Add to the map on a per-request basis Application http json REST 10.1 Map Service Workspaces

Factors of map service performance Data access Rendering Image compression / size Consider all of these when creating a map service

Data access Local data will draw faster than remote data Spatial index - Do you have one? (e.g. XY Events) - Is it sized correctly? - Universal features, slow all draws Attribute indexing - Not always needed

Data access case study : X Y Events Often used in cases where data comes from external systems A draw typically requires a complete row scan Alternative - Use a native spatial type in your database - -Query layers - Insert features via SQL in external systems - Features will be indexed and draw much faster

Data access troubleshooting Publishing analyzers indicate lack of a spatial index etc. Evaluate index efficiency - The number of features returned for each draw query - Large index grid sizes lead to too many features being drawn Evaluate I/O performance if using remote data Unnecessary attribute indexes - May confuse query plans in some databases - Don t index fields just because they exist in a def query

Rendering speed Optimized map services were introduced at 9.3.1 to resolve performance bottlenecks at this stage Remaining areas to be concerned with: Complex effects (e.g. geometric effects in representations) Inline annotation (aka Bloated annotation) Anti-aliasing performance - Higher levels use more RAM and are slower - Text anti-aliasing has a negligible effect in most cases Layer transparency

Rendering speed: transparency Layer transparency is applied to a layer as a whole - Involves a full layer blend Alternative: Use color transparency - Capability of optimized map services - Enabled via an option from analyzer warning 10009

Image compression / size Smaller images are faster to download Image formats have limitations - e.g. limited color palettes, lossy compression Image compression itself has a performance penalty - Use the preview window to evaluate performance of image type Evaluate size and performance in a test service in network conditions - Balance size vs. quality when choosing the image type based on your needs

Image compression / size (con t) Image type used for cached services affects: - Download size - Storage size of the cache - Portability For caching vector data - Consider new PNG image type at 10.1 - Chooses the correct PNG type (8, 24, 32) for each tile based on content - Low content areas use less storage.

ArcGIS Online Andrea Rosso

ArcGIS Online as a Case Study Very Large Scale deployment Multi-tenant ArcGIS Online Basemaps Portal Hosted Tiles Hosted Features Geocoding

ArcGIS Online as a Case Study

www.arcgis.com Web Site The Face of ArcGIS Online - Must perform Javascript API Front End - Dojo - REST Client - ArcGIS Server APIs - Portal API - WMS -

Optimizing the Network Builds - Coalesce (build) Javascript Files into fewer files to reduce downloads Compression - Make sure Web Server Gzip compression is enabled CDN + Versioning - Edge cache static files in a CDN (Akamai, CloudFront, etc.) for faster performance around the world - Improvements of 200%+ in page load times - Version resources to enable you to update information periodically. - /cdn/1916/js/dojo/dojo/dojo.js

ArcGIS Online Basemaps

Initial Basemap System Requirements Capability: Publish Map Services for use in all ArcGIS Clients Capacity: Support > 1,000 Concurrent Users Availability: Provide 24x7, 99.9% Availability Performance: Sub-second Response on Server & Highspeed access by User Flexibility: Rapidly Deploy New and Updated Maps

ArcGIS Online Basemap Architecture Akamai Users Web / ArcGIS Servers Data Appliances

ArcGIS Online Basemaps over time

ArcGIS Online Basemap Architecture Akamai Users Web / ArcGIS Servers Data Appliances

ArcGIS Server 10.1 Performance Improvements Eric Miller (Esri)

Source of 10.1 Performance Improvements ArcGIS Server is now fully 64 bit - No memory limit per service instance - Contributes to improved performance DCOM-free framework - Number of service instances no longer OS limited - Enables more scalability options and better performance not limited by firewall considerations Moved most WebService handler processing to core More efficient core services

Performance/Scalability improvements All services have improved performance - Windows - Faster transaction times and greater throughput - Linux - Much faster transaction times and much greater throughput All this despite security being enabled by default All services and map caching scale linearly

Map Service Performance % Throughput Change: 10.1 vs. 10.0 SP2 (Map Service export) Throughput % D 100 90 80 70 60 50 40 30 20 10 0 57 65 37 40 28 73 33 62 40 43 44 27 27 12 Increasing Map Complexity ------------------>>>> Windows Linux

Map Service Performance 140 % Throughput Change: 10.1 vs. 10.0 SP2 (Map Service Identify/Query) 133 120 Throughput % D 100 80 60 40 93 70 48 31 20 0 3 Portland_Identify Portland_SpatialQuery Portland_AttributeQuery Map Service Operation Windows Linux

Map Service Scalability (Windows) Throughput (Tr/Hr) 600000 500000 400000 300000 200000 100000 0 Map Service: Export 1 2 3 4 5 6 7 8 Number of GIS Servers in Site CORINE_export StreetMap_export

Geocode Service Performance Throughput % D 250 200 150 100 50 0 % Throughput Change: 10.1 vs. 10.0 SP2 (Geocode Service FindAddress/ReverseGeocode) 32 38 23 29 45 209 Geocode Service Operation Windows Linux

Geocode Service Scalability (Windows) Throughput (Tr/Hr) Geocode Service: Find Address Candidates (FAC), Reverse Geocode (RGC) 7000000 6000000 5000000 4000000 3000000 2000000 1000000 0 1 2 3 4 5 6 Number of GIS Servers in Site NAComposite_FAC NAComposite_RGC

Feature Service Performance % Throughput Change: 10.1 vs. 10.0 SP4: Feature Service Edits/Queries PostGres (PG), Versioned (V), Nonversioned (NV), Archiving (A) Throughput % D 180 160 140 120 100 80 60 40 20 0 41 67 25 133 50 167 17 0 63 38 13 17 Feature Service Operation Windows Linux

Geoprocessing Service Performance (Windows) % Throughput Change: 10.1 vs. 10.0 SP2 (Geoprocessing Service) Throughput % D 180 160 140 120 100 80 60 40 20 0 130 27 36 50 135 25 161 Geoprocessing Model

Geoprocessing Service Scalability (Windows) Throughput (Tr/Hr) 120000 100000 80000 60000 40000 20000 0 PopulationByZip Model 1 2 3 4 5 6 7 8 Number of GIS Servers in Site

Image Service Performance Throughput % D 200 180 160 140 120 100 80 60 40 20 0 % Throughput Change: 10.1 vs. 10.0 SP2 (ImageService export/query) 92 59 4049 69 118 31 4 69 49 97 60 111 92 35 75 58 45 125 182 Data Source and Method Windows Linux

Image Service Scalability (Windows) Throughput (Tr/Hr) 500000 400000 300000 200000 100000 0 MDSurdexTIFF: export 1 2 3 4 5 6 7 8 Number of GIS Servers in Site

Throughput % D WMS Service Performance 120 100 80 60 40 20 0 % Throughput Change: 10.1 vs. 10.0 SP2 (WMS getmap from MapService and Image Service) 106 100 43 21 28 18 19 11 36 88 27 19 35 10 41 24 59 45 10198 Data Source and Service Type Windows Linux

WMS Service Scalability (Windows) Throughput (Tr/H4) 500000 400000 300000 200000 100000 0 WMS Service: getmap 1 2 3 4 5 6 7 8 Number of GIS Servers in Site CORINE_MS_getMap StreetMap_MS_getMap MDSurdexTIFF_IS_getMap

Geometry Service Performance 10.1 % Change in Throughput vs. 10.0 SP2 (Geometry Service) Throughput % D 800 700 600 500 400 300 200 100 0 720 104 89 129 539 606 257 282 275 252 94 89 75 88 67 5462 75 3 140 548 38 283 15 584 126 670 Method Name Windows Linux

Cache Size and Completion Time (Windows) Cache Creation Time (minutes) Creation Time (Windows): 1 node, 8 service instances 250 200 150 100 50 0 66 58 196 176 114 112 100 93 Cache Size (MBytes) Cache Size (Windows) 80000 70000 60000 50000 40000 30000 20000 10000 0 Map Name and Version

Cache Creation Scalability 35 Windows/Linux: Cache Tile Generation Rate (Bundles/Minute) 30 Bundles/Minute 25 20 15 10 5 0 1 2 3 4 5 6 7 8 Number of GIS Servers in Site Corine (Windows: Local) Corine (Linux: Local) Streetmap_UT_CO (Windows: Local) Streetmap_UT_CO (Linux: Local)

ArcGIS Server 10.1 Managing Performance David Cordes (Esri)

Managing Performance at 10.1 Managing Service Instances Managing Machines using Clustering

Managing Service Instances at 10.1 10.0: min/max instance settings are total for all machines 10.1: min/max instance settings are per-machine Simplifies sizing removes the guess work Scales as your hardware scales

Managing Service Instances at 10.1 On each machine - Start min # instances when service starts - Start another instance if - All existing instances busy - Less than max # of instances - Stop an instance if - Idle time for instance > idle time out - More than the min # of instances

Managing Service Instances at 10.1 Typical use: cyclic and gradual Usually min instance at least 1. Hardware or license constrained? - Max instances less than natural - Idle time out may be less (default 30 min, but maybe 5,10, or 15) Max # Instances Min # Instances

Managing Service Instances at 10.1 Two other common use patterns - Blip - Constant Blip - Service is pre-dominantly not used. - Used for short periods of time by few people. - Min/Max is usually 0/1. - Idle time-out depends on business needs. - Constant - Service usage does not vary much day-to-day. Usage often tied to a resource workers, trucks, etc. - Min/Max are usually set to be equal. Variability is not desired.

Managing Machines through Clustering at 10.1 Cluster is a set of ArcGIS Server machines. Each service is assigned to a cluster. Example: - Cluster default has Sample service - Machine1 - Machine2 - Cluster 2 - Machine3 - Machine4 When you publish a service S1 to cluster 2, the service will run on Machine3 and Machine4

Managing Machines through Clustering at 10.1 You can move machine between clusters on the fly. Example continued move machine2 from default cluster to cluster 2. - Cluster default has sample and publishing services - Machine1 - Machine2 - Cluster 2 has service S1 - Machine2 - Machine3 - Machine4 - When you publish a service S1 to cluster 2, the service will run on Machine3 and Machine4

Managing Machines through Clustering at 10.1 You can move services between clusters on the fly (requires service to be stopped and restarted). Example continued move sampl e service from default cluster to cluster 2 - Cluster default has publishing service - Machine1 - Machine2 - Cluster 2 has S1 and sample services. - Machine2 - Machine3 - Machine4 - When you publish a service S1 to cluster 2, the service will run on Machine3 and Machine4

Managing Machines through Clustering at 10.1 Performance implications: - More important services can have dedicated resources. - Heavy services (caching or geoprocessing) can be isolated from lighter services (map) - You can rebalance load as needed. - Important: All machines in a cluster should have identical hardware.

Further Reading & Sessions

Performance Related UC Sessions Session Time & Place Short URL ArcGIS for Server Performance and Scalability Testing and Monitoring Tools ArcGIS for Server Performance and Scalability Testing Methodologies Wed 3:40 20 min Room 03 Thur 1:30 75 min Room 32B http://bit.ly/nmrh5o http://bit.ly/nrsvo6

Performance Related Reading Resource Enterprise GIS Resource Center URL http://resources.arcgis.com (Enterprise GIS Community) Map Services http://bit.ly/ljsjnc Geoprocessing Services http://bit.ly/nrugsb

Evaluation & Questions

Evaluation Your feedback is extremely important Please fill out evaluations online http://esri.com/ucsessionsurveys - Offering ID (Wednesday): 672 - Offering ID (Thursday): 1938