ArcGIS le ofrece la opción de crear teselas de caché de mapa según demanda a medida que los usuarios las visitan. El primer usuario que navegue por un área que no está en caché debe esperar mientras el servidor dibuja las teselas correspondientes. Después las teselas se agregan a la carpeta de caché del servicio y permanecen en el servidor hasta que el administrador del servidor las actualiza o elimina. Esto significa que los visitantes siguientes del área no tendrán que esperar a que se cree la tesela.
Si lo usa inteligentemente, el almacenamiento en caché según demanda puede ayudarle a ahorrar mucho tiempo y espacio en disco. La mayoría de los mapas muestran algún área que es árida, inutilizable o poco interesante para la audiencia del mapa, especialmente en grandes escalas (acercadas). El almacenamiento en caché según demanda lo alivia de la carga de crear y almacenar estas teselas innecesarias pero deja la posibilidad de que un usuario aún pueda ver el área si lo necesita.
Aunque el almacenamiento en caché según demanda es una característica útil, puede afectar el rendimiento cuando se utiliza mal o se utiliza demasiado. Este tema contiene sugerencias para utilizar el almacenamiento en caché según demanda de la manera más efectiva.
Lograr el mejor rendimiento
Un beneficio del almacenamiento en caché del mapa completo es que puede servir rápidamente mapas hermosos y complejos porque el servidor distribuye imágenes del mapa teseladas; no dibuja el mapa en cada solicitud. Sin embargo, cuando utiliza el almacenamiento en caché según demanda, el servidor no tiene que dibujar las teselas dinámicamente cuando el usuario navega por un área que no está en caché. Este dibujo dinámico en realidad toma más tiempo que una solicitud regular porque el servidor crea un grupo de teselas a la vez. Este grupo de teselas tiene una dimensión de 2048 x 2048 píxeles si se utiliza antialiasing y una dimensión de 4096 x 4096 si no se utiliza antialiasing.
¿Por qué el servidor no crea una tesela a la vez? Si lo hiciera, vería varias etiquetas duplicadas, porque no hay forma de que el motor de etiquetado determine qué etiquetas existen en las teselas adyacentes. Por lo tanto, el servidor crea un grupo de teselas a la vez, y debe preparar su mapa para que dibuje grandes áreas a una velocidad aceptable. Esta sección discute varias formas de reducir el coste de rendimiento en el almacenamiento en caché según demanda.
Determinar dónde almacenará en caché según demanda
Lo más importante que determinará cuando configure el almacenamiento en caché según demanda es qué áreas se crearán según demanda y qué áreas almacenará previamente en chaché. Nunca utilice el almacenamiento en caché según demanda para crear su caché completa. Siempre debe crear previamente algunas teselas en las áreas del mapa que espera que tengan el mayor tráfico de usuario, y así minimizar la posibilidad de que un usuario consuma los recursos del servidor al solicitar una tesela según demanda.
¿Cómo determina qué áreas de su mapa serán más popular? En gran parte, esto depende del propósito y audiencia de su mapa. En un mapa base general, los lugares poblados, carreteras, líneas de costa, parques y otros puntos de interés tienen el potencial de que los visiten con mayor frecuencia que otras áreas.
Los mapas temáticos pueden mostrar tendencias de lugares populares muy similares. Por ejemplo, los mapas que utiliza una compañía minera pueden tener un uso más alto en áreas donde hay mayor densidad de minas. Esto puede ocurrir en áreas despobladas o montañosas que serían poco interesantes para el público en general.
Para determinar qué áreas debe almacenar previamente en chaché, examine los patrones de uso de sus mapas actuales, ya sea online o en el escritorio. Puede aprender mucho a través de las observaciones informales de dónde tienden a navegar los usuarios y qué entidades consultan.
También es importante la disponibilidad y resolución de sus datos. Si sus datos son pobres o no existen en ciertas áreas, puede omitir almacenar en caché esas áreas. Aún si alguien solicita una tesela según demanda, no tomará mucho tiempo dibujarla si no hay nada para mostrar.
Sus datos también pueden estar muy vinculados con el propósito del mapa. Por ejemplo, si trabaja con un departamento de transporte, deseará asegurarse de que las áreas con alta densidad de carreteras y carriles se almacenen previamente en chaché. Las herramientas de análisis espacial como Densidad kernel pueden ayudarlo a determinar qué áreas generales son gruesas con entidades interesantes.
Después de determinar los lugares que visitarán con mayor frecuencia los usuarios, debe crear una clase de entidad que aísle estas áreas. Hará referencia a esta clase de entidad cuando ejecute la herramienta Administrar teselas de caché de servidor de mapas para asegurarse de que las teselas se creen solamente dentro de los límites de la clase de entidad.
Puede encadenar varias herramientas en un modelo o secuencia de comandos para obtener esta clase de entidad de lugares populares. El modelo puede contener varias entradas de entidades que se anticipa que van a ser populares, crear opcionalmente zonas de influencia en las entidades o determinar su densidad, y finalmente realizar el procesamiento posterior en la salida para asegurarse de que la clase de entidad resultante sea adecuada para una plantilla de almacenamiento en caché. Por ejemplo, puede utilizar la herramienta de geoprocesamiento Simplificar polígono para quitar los vértices excesivos que podrían ralentizar las herramientas de almacenamiento en caché.
Cuanto más pueda aislar áreas populares de su mapa, más solicitudes puede cumplir con las teselas almacenadas previamente en caché en lugar de crear teselas según demanda. En un nivel de gran escala, es posible que solo deba almacenar en caché una pequeña fracción de su mapa para satisfacer la gran mayoría de solicitudes de usuarios. Puede decidir utilizar el tiempo y el espacio en disco que ahorra para almacenar en caché de manera estratégica niveles de escala adicionales.
Probar y optimizar el mapa
Varias organizaciones tienen documentos de mapa complejos que se prepararon originalmente para propósitos SIG de escritorio. Estos mapas a menudo necesitan ajustes para cumplir con los tiempos de respuesta rápida que esperan los usuarios Web.
Antes de cambiar su mapa, es posible que desee crear una caché de prueba de una pequeña área para que le brinde algunas figuras de línea base. Elija un área que contenga una buena mezcla de geografía representada en su mapa: urbana o rural, plana o montañosa, y así sucesivamente. Observe el tiempo que lleva crear la caché de prueba. A continuación, habilite el almacenamiento en caché según demanda y acerque un área que no está en caché. Observe cuánto tiempo demoran las teselas en aparecer en varias escalas. Si el rendimiento es aceptable en este punto, puede elegir no hacer ningún ajuste.
Si desea mejorar el rendimiento de la creación de teselas según demanda o la velocidad de creación de la caché en general, debe utilizar el Editor del servicio para identificar y solucionar los embotellamientos de rendimiento en su mapa. Haga clic en el botón Analizar para encontrar y notificar problemas potenciales de rendimiento. Haga clic en el botón Vista previa para ver qué tan rápido se dibuja su mapa dinámicamente.
Para una detección más avanzada de capas ineficientes en su servicio de mapas, establezca el nivel de inicio de sesión del servidor en Detallado. Realice una solicitud de dibujo al servicio de mapas, como acercar un marcador en ArcMap. Después, examine los registros de ArcGIS Server en Manager y observe el tiempo de dibujo para cada capa. Rápidamente podrá decir qué capas llevan más tiempo. Es una buena idea repetir este ejercicio en las diferentes escalas de caché en áreas aleatorias del mapa. Recuerde volver a establecer el nivel de inicio de sesión al nivel previo cuando finalice, ya que Detallado escribe más información de registro de lo que normalmente necesita.
Una vez que haya optimizado su mapa, haga otra caché de prueba y anote cuánto tiempo demora en crear una tesela según demanda. Si el rendimiento todavía no es aceptable, puede optar por hacer una de estas cosas:
- Almacenar previamente en caché un área más grande. De esta manera se disminuye la posibilidad de encontrar una tesela según demanda. Puede intentar limitar el almacenamiento en caché según demanda solamente a las áreas más áridas en las escalas más grandes, y así asegurar que no se tengan que dibujar algunas entidades a la vez.
- Hacer una caché completa. Al almacenar previamente en caché todas las teselas, no tendrá que crear teselas según demanda. Esta puede ser la mejor opción si tiene el tiempo y el espacio para crear una caché completa y no se actualizará a menudo. Si el tiempo de inactividad del servidor mientras se almacena en caché es un problema, puede programar que los trabajos de almacenamiento en caché se realicen a la noche o los fines de semana para crear sin problemas su caché hasta que esté completa. También puede elegir dedicar sólo una instancia del servicio al almacenamiento en caché mientras otras instancias manejan las solicitudes del usuario.
- Utilice un servicio dibujado dinámicamente. Si no es factible crear una caché completa y el rendimiento es aceptable con un servicio dibujado dinámicamente, puede elegir omitir por completo el almacenamiento en memoria caché. Aunque esta opción no brinda el mejor rendimiento, sus datos siempre estarán actualizados.
Informes de estado y teselas creadas bajo demanda
Tenga en cuenta que las teselas del mapa creadas según demanda no se reflejan en los informes de estado de la caché que pueden verse en ArcMap. Esos informes solo hacen un seguimiento de las teselas que se crearon utilizando las herramientas de almacenamiento en caché.
Actualizar teselas
Cuando edita su base de datos de origen, debe actualizar la caché antes de que los usuarios puedan ver los cambios. Si sigue la recomendación de almacenar previamente en caché un área basado en una clase de entidad y completar el resto de su caché según demanda, deberá tener cuidado de que las actualizaciones incluyan todas las áreas necesarias.
Hay dos estrategias que puede seguir para actualizar su caché cuando haya estado creando teselas según demanda:
Eliminar todas las teselas que se crearon según demanda antes de realizar una actualización
Si crea teselas según demanda, probablemente almacenó previamente en caché una cierta área basado en una clase de entidad. Normalmente, también realizará la actualización basado en esa clase de entidad, y las teselas según demanda se desactualizarán si no las elimina.
Para eliminar las teselas, ejecute Administrar teselas de caché de servidor de mapas mediante el modo Eliminar teselas. Debe eliminar teselas basado en el inverso de la clase de entidad que almacenó previamente en memoria caché. Puede utilizar herramientas de edición de ArcGIS para hacer un polígono que represente la extensión completa de su mapa y cortar un agujero para el área que se almacenó previamente en memoria caché. El polígono del donut resultante es el área donde se deben eliminar las teselas. Consulte Cortar agujeros en polígonos existentes para obtener una explicación de cómo cortar un agujero en un polígono con el comando Recortar en ArcMap.
Alternativamente, puede eliminar todas las teselas en la caché antes de comenzar con la actualización, pero esto puede agregar alguna sobrecarga si su caché es grande.
Si le preocupa que los usuarios tengan que esperar un determinado lugar para que se los almacene en caché según demanda después de cada actualización, debe pensar en agregar este lugar al área que se almacena previamente en caché. Si ha almacenado previamente en caché de manera inteligente, el almacenamiento en caché según demanda sólo debe ocurrir con poca frecuencia en patrones aleatorios en las áreas menos interesantes de su mapa. Si los usuarios vuelven constantemente a un lugar, se debe almacenar previamente en caché.
Destine las actualizaciones de su caché para que cubran solo las áreas donde se editaron los datos
Una forma de hacer esto es utilizar el archivado de geodatabase o una herramienta personalizada para rastrear todos los cambios desde la última actualización, después exportar estas áreas cambiadas a una clase de entidad y actualizar las teselas basado en el límite de la clase de entidad.
Si está seguro de que solo está actualizando las áreas donde se realizaron ediciones, no tiene que eliminar todas las teselas que se crearon según demanda.