Sugerencias de rendimiento para servicios de geoprocesamiento
Los clientes desean y esperan un servicio rápido, así que sus servicios de geoprocesamiento deben ser rápidos y eficientes. Debido a que ArcGIS for Server puede alojar varios clientes a la vez, los servicios ineficientes podrían 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.
Utilice las capas de datos de proyecto
Cuando ejecuta la herramienta de geoprocesamiento para crear un resultado para publicar, debe ejecutar la herramienta utilizando capas como entrada en lugar de rutas de acceso a los datasets del disco. Una capa hace referencia a un dataset en disco y las capas almacenan en la caché las propiedades sobre el dataset. Esto es especialmente cierto para las capas de dataset de red y las capas ráster. Al utilizar una capa en lugar de la ruta al dataset, hay una ventaja de rendimiento, debido a que cuando se inicia el servicio, crea la capa desde el dataset, almacena en la caché las propiedades básicas del dataset y mantiene el dataset abierto. Cuando el servicio se ejecuta, las propiedades del dataset están disponibles inmediatamente y el dataset está abierto y disponible para actuar en el mismo, obteniendo así un rendimiento superior.
Por ejemplo, el servicio Cuenca visual del SampleServer de Esri y ArcGIS Network Analyst extension, ejemplos que crean polígonos de tiempo de recorrido, utilizan capas. Según el tamaño del dataset, esto puede salvar al alza de 1 a 2 segundos por ejecución del servicio.
Utilice datos locales de ArcGIS Server
Los datos de proyecto requeridos por los servicios de geoprocesamiento deben ser locales en ArcGIS Server. Los datos que se comparten y a los que se accede mediante una ubicación de red compartida (UNC) son más lentos que si estuvieran disponibles en el mismo equipo. Los números de rendimiento varían mucho, pero por regla general la lectura y la escritura de datos través de LAN lleva el doble de tiempo que el disco local.
Escribir datos intermedios en la memoria
Puede escribir datos intermedios (temporales) 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.
Preprocesar los datos utilizados por las tareas
La mayoría de 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 operaciones específicas o datos conocidos, casi siempre hay una oportunidad para preprocesar los datos para optimizar la operación. Por ejemplo, agregar un índice espacial o de atributo es un proceso previo simple para optimizar las operaciones de selección espaciales o de atributo. Otros ejemplos:
- El tutorial Ejemplo de servicio de geoprocesamiento: cuenca hidrográfica preprocesa los datos hidrológicos creando una acumulación de flujo y un ráster de dirección.
- Puede calcular previamente las distancias desde ubicaciones conocidas utilizando las herramientas Cerca o Generar tabla próxima. Por ejemplo, supongamos que su servicio le permite a los clientes seleccionar parcelas vacías que estén a una distancia del río Los Ángeles definida por el usuario. Podría utilizar la herramienta Seleccionar capa por ubicación para realizar esta selección, pero sería mucho más rápido calcular previamente la distancia de cada parcela desde el río Los Ángeles (con la herramienta Cerca) y almacenar la distancia calculada como un atributo de las parcelas. Puede indexar este atributo utilizando la herramienta Agregar índice del atributo. Ahora, cuando el cliente emite una consulta, su tarea puede realizar una selección si de atributos simple y rápida en el atributo de distancia en lugar de una consulta espacial mucho menos eficiente.
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. Solo 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.
Utilizar sincrónico en lugar de asíncrono
Puede especificar que el servicio de geoprocesamiento se ejecute en sincrónico o asíncrono. En el modo asíncrono, el servidor sufre un poco de sobrecarga sufridas, lo que significa que las tareas asíncronas rara vez se ejecutan en un segundo. 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.
Evite las transformaciones de coordenadas innecesarias
Si la tarea utiliza datasets que están en distintos sistemas de coordenadas, las herramientas de geoprocesamiento empleadas por la tarea pueden necesitar transformar las coordenadas a un único sistema de coordenadas común durante la ejecución. Según el tamaño de sus datasets, transformar coordenadas de un sistema de coordenadas a otro puede retrasar su tarea. Debe ser consciente del sistema de coordenadas de los datasets y de si las herramientas utilizadas por su tarea necesitan realizar transformaciones de coordenadas. Es posible que desee transformar todos los datasets que utiliza su tarea a un sistema de coordenadas. Consulte los temas siguientes para obtener más información sobre los sistemas de coordenadas y el modo en que afectan a las herramientas de geoprocesamiento.
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 en sus datos de proyecto 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.
Diferencias entre 10.0 y las versiones posteriores
Si se crearon los servicios de geoprocesamiento en la versión 10.0, hubo técnicas específicas de rendimiento que usó para crear servicios, señaladas a continuación. Ya no es necesario utilizar estas técnicas en 10.1 y versiones posteriores.
Antes de la versión 10.1, si la configuración de ArcGIS Server estaba integrada por varios equipos o si se utilizaban rutas UNC para el directorio arcgisjobs, se recomendaba configurar un directorio de trabajo local. Este directorio de trabajos local ha mejorado significativamente el tiempo de ejecución, ya que el procesamiento de cada tarea se realiza en el servidor local y el resultado final es transferido al cliente. A partir de la versión 10.1, configurar los directorios de trabajos locales es una tarea del administrador del servidor SIG. Pero, como autor de una tarea, ya no tendrá que especificar que la tarea utilice el directorio de trabajo local, ya que se usa automáticamente si el servidor participa en un cluster de más de un equipo o si se hace referencia a los directorios mediante una ruta UNC.
Antes de la versión 10.1, el servicio de geoprocesamiento funcionaba contra los rásteres y se recomendaba tenerlos en el formato GRID. El formato GRID era generalmente más rápido, ya que algunas herramientas se han optimizado para trabajar contra GRIDS. A partir de la versión 10.1, todas las herramientas de ráster pueden leer y escribir el formato de origen sin pérdida de rendimiento.