2010 Indiana GIS Conference ESRI Technical Session 2010 Indiana GIS Conference ESRI Technical Session February 24, 2010 ArcGIS Server Performance Tuning Tom Brenneman
Agenda Hardware configurationHardware configuration –Dev/Staging/Test –Virtualization Service managementService management Map service optimizationMap service optimization –Caching –Dynamic services Image servicesImage services –Cache or no? –Compression Geoprocessing optimizationGeoprocessing optimization
Deployment Environments Staging Virtual Machines (Reflect Production) EDN System Production Systems Reverse Proxy Network Loadbalancer
Capacity Planning Toolkit Available on the Enterprise GIS resource centerAvailable on the Enterprise GIS resource center Details&scriptID=16406http://resources.esri.com/enterprisegis/index.cfm?fa=codeGallery Details&scriptID=16406http://resources.esri.com/enterprisegis/index.cfm?fa=codeGallery Details&scriptID=16406http://resources.esri.com/enterprisegis/index.cfm?fa=codeGallery Details&scriptID=16406 PDF + Excel calculatorPDF + Excel calculator
Virtualization ArcGIS Server is supported on Virtual ServersArcGIS Server is supported on Virtual Serversis supported is supported What is the cost?What is the cost? –10%-30% What to watch out forWhat to watch out for –Exhausting RAM on physical system –Disk IO Use SAN, NAS, or DAS storage for Imagery and map cacheUse SAN, NAS, or DAS storage for Imagery and map cache ResourcesResources –Enterprise resource center: Virtual Systems: Systems: Storage systems: systems: –VMWare deployment guide:
Service management Each service consumes memoryEach service consumes memory Consider consolidating servicesConsider consolidating services Consider Min instances of 0Consider Min instances of 0 One Day
Data Storage Always use direct connect for Enterprise Geodatabase accessAlways use direct connect for Enterprise Geodatabase access Avoid UNC paths when possibleAvoid UNC paths when possible –Local data is always faster –File Geodatabase Replication is an option Production ArcGIS Server Instance Staging ArcGIS Server Instance Map service Multi-user versioned Geodatabase File Geodatabase Geodatabase Replication
Application Considerations Browser based APIs perform and scale better than Server based APIsBrowser based APIs perform and scale better than Server based APIs Browser based APIs Server based APIs Mixed
Poor application design trumps everything
Organize data into logical groupings Basemaps Geographic frame of reference Contain static vector and raster data Reusable in multiple applications Operational Layers Show a focused item of interest Support functionality of the application Displayed on top of base map
Basemaps Provide geographic reference Use your own resourcesUse your own resources –Your authoritative data Use ArcGIS Online as much as you canUse ArcGIS Online as much as you can
Map services CachingCaching Optimized map servicesOptimized map services ProjectionsProjections Generalization and cartographyGeneralization and cartography
What should I cache? As much as you canAs much as you can All base mapsAll base maps Some operational layersSome operational layers But my server gets so slow when I update my cacheBut my server gets so slow when I update my cache –You should be building cache on your staging server
JPEG 55 – 15KBJPEG 90 – 33KB Which one looks better? Cache image format affects cache size / performance Many colors (Continuous symbology)Many colors (Continuous symbology) JPEGJPEG Small file size for many colors, no transparencySmall file size for many colors, no transparency Quality settings range from 55 (orthos) 90 (vector maps)Quality settings range from 55 (orthos) 90 (vector maps) Fewer colors (~256)Fewer colors (~256) –PNG 8 JPEG 90 – 21KBJPEG 55 – 10KB
Optimized map service Faster dynamic drawing than ArcIMSFaster dynamic drawing than ArcIMS Supports a subset of the most common layer typesSupports a subset of the most common layer types Prepare and publish with new Map Services Publishing Toolbar in ArcMapPrepare and publish with new Map Services Publishing Toolbar in ArcMap
Process Open a map documentOpen a map document AnalyzeAnalyze Fix errorsFix errors Preview – Shows performance of optimized drawingPreview – Shows performance of optimized drawing Fix warningsFix warnings Preview againPreview again Save MSD to same folder as Map DocumentSave MSD to same folder as Map Document Publish just like an MXDPublish just like an MXD
When should I use traditional MXD-based services? Fine-grained ArcObjects access (eg, Editor Task)Fine-grained ArcObjects access (eg, Editor Task) –SOAP and REST APIs only for optimized map service Cartographic representationsCartographic representations Unsupported layer type (TIN, CAD, Network Analyst etc.)Unsupported layer type (TIN, CAD, Network Analyst etc.) –When possible, break out unsupported layers into own services
Symbols and map data Simple symbols draw fasterSimple symbols draw faster – mizing_map_symbols_for_performance mizing_map_symbols_for_performancehttp://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?TopicName=Opti mizing_map_symbols_for_performance Map data ( =Optimizing_map_content_for_performance)Map data ( =Optimizing_map_content_for_performance) =Optimizing_map_content_for_performancehttp://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?TopicName =Optimizing_map_content_for_performance –Avoid Joins for symbology –Simplify your data More vertices take longer to drawMore vertices take longer to draw Use annotation whenever possibleUse annotation whenever possible –Web help contains more info for optimizing labels: mizing_map_text_and_labels_for_performance mizing_map_text_and_labels_for_performance mizing_map_text_and_labels_for_performance
Projections on the fly Best: No projections on the flyBest: No projections on the fly –Data can be projected through replication Good: Projections on-the-fly in the map serviceGood: Projections on-the-fly in the map service Bad: Projection on-the-fly in the map documentBad: Projection on-the-fly in the map document Really, really, really bad: a web service projected on-the-fly in a map documentReally, really, really bad: a web service projected on-the-fly in a map document Avoid projections on-the-fly here projections on-the-fly ok here
Image Services Great forGreat for –Making imagery available quickly –Modifying the image display (Bands, Tile, Pan Sharpening, etc…) –Modifying Compression –Analysis –Multiple products from the same base imagery Map cache scales better for basemapsMap cache scales better for basemaps Avoid MrSID and JPEG 2000Avoid MrSID and JPEG 2000 Best performance using JPEG compressed Tiled TIFF (10x-100x)Best performance using JPEG compressed Tiled TIFF (10x-100x) –Takes processing and could slow down delivery –Need third party tools to create (Fwtools + GDAL) More available in the desktop help:More available in the desktop help: – mization_considerations_for_ArcGIS_Image_Server mization_considerations_for_ArcGIS_Image_Serverhttp://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?TopicName=Opti mization_considerations_for_ArcGIS_Image_Server
Geoprocessing services Pre-compute intermediate steps when possiblePre-compute 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 Simplify dataSimplify data Detailed instructions on the Resource Center at: Resource CenterResource Center &topicname=Performance_tips_for_geoprocessing_services &topicname=Performance_tips_for_geoprocessing_services
2010 Indiana GIS Conference ESRI Technical Session 2010 Indiana GIS Conference ESRI Technical Session February 24, 2010 Questions?