Sugerencias de rendimiento para servicios de geoprocesamiento
Los servicios de geoprocesamiento deben ser rápidos y eficientes. Los clientes desean y esperan un servicio rápido. Debido a que ArcGIS Server puede alojar varios clientes de una vez, los servicios ineficientes pueden sobrecargar el servidor. Mientras más eficientes sean los servicios, más clientes se pueden proporcionar con los mismos recursos informáticos.
A continuación presentamos algunas sugerencias y técnicas para aumentar el rendimiento de los servicios. En general, las técnicas se presentan en orden: las que ofrecen mayores mejoras en el rendimiento se presentan primero. Las últimas sugerencias pueden reducir el tiempo de ejecución unas pocas décimas de segundo, lo que puede ser necesario para algunas tareas.
Utilizar directorios de trabajos locales
Si la configuración de ArcGIS Server tiene varios equipos, configure los directorios de trabajos locales en cada equipo. Esto mejorará significativamente el tiempo de ejecución. Configurar los directorios de trabajos locales es una tarea del administrador del sistema.
Utilizar las rutas locales para los datos y recursos
Si es posible, los datos utilizados por el servidor deberían almacenarse en el equipo que está ejecutando el servicio y no distribuirse a través de la red de área local (LAN). Leer los datos a través de la LAN es más lento que leerlos desde un disco local. Los números de rendimiento varían, pero una regla general es que transferir los datos a través de la LAN lleva el doble de tiempo que el disco local.
Escribir datos en la memoria
Puede escribir datos intermedios en la memoria. Escribir datos en la memoria es más rápido que escribirlos en el disco. También puede escribir los datos de salida en la memoria siempre y cuando no esté utilizando un servicio de mapas de resultado. No puede escribir los rásteres en la memoria.
Utilizar el formato ráster de cuadrícula de Esri
ArcGIS es compatible con muchos formatos de datos ráster diferentes. Si la tarea utiliza datos ráster, los datos ráster generalmente deberían almacenarse en formato GRID de modo que todos los procesos de modelo operen en las GRID. (Puede utilizar la herramienta De ráster a otro formato o la herramienta Copiar ráster para preprocesar cualquier ráster al formato GRID). El formato GRID generalmente es más rápido para el procesamiento que otros tipos de ráster pero puede utilizar cualquier tipo de ráster compatible dentro de los modelos y las secuencias de comandos.
Si no puede almacenar los datos ráster en formato GRID, es posible que desee utilizar la herramienta Copiar ráster dentro del modelo o secuencia de comandos para copiar una parte del ráster y después procesar sólo esa área que se enfocó. Para copiar una parte de un ráster, utilice la herramienta Copiar ráster y establezca el entorno de la extensión de salida de geoprocesamiento. Sólo se copiarán las celdas que caen dentro de la extensión.
Utilizar las capas de un documento de mapa de origen
Si el servicio utiliza un documento de mapa de origen, los modelos y las secuencias de comandos pueden utilizar las capas del documento de mapa de origen. Una capa hace referencia a un dataset en disco y algunas capas almacenan en la memoria caché las propiedades sobre el dataset. Esto es especialmente cierto para las capas de dataset de red, como se muestra en el ejemplo de servicio GP: Polígonos de tiempo de recorrido. Al utilizar una capa de dataset de red en lugar del dataset, hay una ventaja de rendimiento, debido a que ArcMap abre el dataset una vez, almacena en la memoria caché las propiedades básicas del dataset y mantiene el dataset abierto. Cuando se ejecuta el modelo, no se tiene que volver a abrir el dataset, ya que el documento de mapa de origen ya lo abrió; una mejora en el rendimiento.
Evite las transformaciones de coordenadas innecesarias
Consulte las Consideraciones de referencia espacial para los servicios de geoprocesamiento para obtener más información.
Agregar índices de atributo
Si la tarea es seleccionar los datos mediante las consultas de atributos, cree un índice de atributos para cada atributo que se utiliza en las consultas. Puede utilizar la herramienta Agregar índice del atributo. Sólo debe crear el índice una vez y lo hace fuera del modelo o la secuencia de comandos.
Agregar índices espaciales
Si el modelo o la secuencia de comandos realiza consultas espaciales en los shapefiles, cree un índice espacial para el shapefile mediante la herramienta Agregar índice espacial. Si está utilizando las clases de entidades de geodatabases, los índices espaciales se crean y se mantienen automáticamente por usted. En algunos casos, recalcular un índice espacial puede mejorar el rendimiento, como se describe Configurar índices espaciales.
Preprocesar los datos utilizados por las tareas
Los servicios de geoprocesamiento están pensados para centrarse en las aplicaciones que proporcionan respuestas a consultas espaciales específicas presentadas por clientes Web. Debido a que las tareas tienden a ser consultas específicas o datos conocidos, generalmente hay una oportunidad para preprocesar los datos para optimizar la consulta. Por ejemplo, agregar un índice espacial o de atributo es un preproceso simple, sólo debe realizarse una vez, fuera de la tarea.
A continuación presentamos algunos ejemplos sobre preprocesar desde los ejemplos de servicio de geoprocesamiento proporcionados con los datos del tutorial:
- El Servicio GP paso a paso: Ejemplo de Cuenca hidrográfica que preprocesa los datos hidrológicos al crear una acumulación de flujo y un ráster de dirección.
- El modelo Seleccionar lotes impositivos por vecindad (optimizado) en el ejemplo de servicio GP: Seleccionar datos preprocesa los datos mediante la herramienta Intersecar.
- Para las redes, utilice la herramienta Calcular ubicaciones para calcular previamente la ubicación de los puntos fijos en la red. Consulte el ejemplo de servicio GP: Buscar entidades cercanas en una red de calles para obtener un ejemplo de cómo utilizar Calcular ubicaciones.
Escribir datos en los shapefiles
Escribir datos en los shapefiles es más rápido que escribirlos en muchos otros formatos (sólo es más rápido escribir los datos en la memoria). Sin embargo, hay algunas limitaciones estrictas con los shapefiles, tales como los nombres de campo de 10 caracteres, que no hay compatibilidad para los valores nulos y compatibilidad limitada para la fecha/hora. Estas limitaciones pueden dañar el modelo o la secuencia de comandos. Consulte Consideraciones de geoprocesamiento para la salida del shapefile para obtener más información sobre la salida del shapefile.
Reducir el tamaño de los datos
Cualquier software que procesa datos funciona más rápido cuando el dataset es pequeño. Existen algunas maneras con las que puede reducir el tamaño de los datos geográficos:
- Quite los atributos innecesarios con la herramienta Eliminar campo.
- Las entidades de línea y poligonales tienen vértices que definen su forma. Cada vértice es una coordenada x,y. Es posible que las entidades tengan más vértices de los que necesita, lo que aumenta de manera innecesaria el tamaño del dataset.
- Si los datos provienen de una fuente externa, es posible que contengan vértices duplicados o vértices que se encuentran tan cerca que no contribuyen a la definición de la entidad.
- La cantidad de vértices no se ajusta a la escala de análisis. Por ejemplo, las entidades contienen detalles que son apropiados a grandes escalas, pero el análisis o la presentación es a una escala pequeña.
Utilizar Sincrónico en lugar de Asincrónico
Sincrónico significa que el cliente espera hasta que el servidor haya terminado de ejecutar la tarea. Asincrónico significa que el cliente puede hacer otro trabajo mientras el servidor ejecuta la tarea. Ejecutar la misma tarea en el modo sincrónico es una décima de segundo aproximadamente más rápido que ejecutarla en el modo asincrónico.