Skip To Content

Almacenamiento en caché de mapa según demanda

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 creen las teselas.

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 el público del mapa, especialmente a 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 negativamente al rendimiento cuando se utiliza mal o se utiliza demasiado. Las secciones siguientes contienen 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 complejos porque el sitio de ArcGIS Server 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 sitio de ArcGIS Server tiene que dibujar las teselas dinámicamente cuando el usuario navega por un área que no está en caché. Este dibujo dinámico toma más tiempo que una solicitud regular porque el sitio de ArcGIS Server crea un grupo de teselas a la vez. Este grupo de teselas tiene una dimensión de 2048x2048 píxeles si el servicio de mapas utiliza antialiasing y una dimensión de 4096x4096 si no utiliza antialiasing. Como resultado, debe preparar el mapa para dibujar áreas grandes a una velocidad aceptable.

Explorar:

El sitio de ArcGIS Server no crea una sola tesela cada vez en este caso porque, si lo hiciera, vería etiquetas duplicadas debido al hecho de que no hay forma de que el motor de etiquetado determine qué etiquetas existen en las teselas adyacentes.

En las dos secciones siguientes se explican 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 la 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.

Determinar qué áreas de un mapa serán más populares depende en gran medida de la finalidad y los usuarios a los que está destinado el 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 (a diferencia de los mapas base) pueden mostrar distintas tendencias de lugares populares. 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 los 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, asegúrese de que las áreas con alta densidad de carreteras y carriles se almacenen previamente en caché. Las herramientas de análisis espacial como Densidad kernel pueden ayudarle a determinar qué áreas generales están llenas de entidades interesantes.

Después de determinar qué van a visitar los usuarios con mayor frecuencia, cree una clase de entidad que aísle estas áreas. Haga 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 crean solamente dentro de los límites de la clase de entidad.

Puede encadenar varias herramientas en un modelo o script 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 del mapa, más solicitudes puede satisfacer con teselas almacenadas previamente en caché en lugar de crear teselas según demanda. A gran escala, es posible que solo necesite almacenar en caché una pequeña fracción del 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 un mapa, cree 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 el mapa, como urbana o rural, llana o montañosa. Anote 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, no tiene que hacer ningún ajuste.

Para una detección avanzada de capas ineficientes en un servicio de mapas, establezca el nivel de inicio de sesión del servidor de ArcGIS Server en Detallado. Realice una solicitud de dibujo al servicio de mapas, como acercar un marcador en ArcGIS Pro. Después, examine los registros de ArcGIS Server en ArcGIS Server Manager y anote el tiempo necesario para dibujar 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 en el nivel previo cuando finalice, ya que el inicio de sesión Detallado escribe más información de registro de lo que normalmente necesita.

Una vez que haya optimizado el 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 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 la caché del servicio hasta que esté completa. También puede dedicar solo 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, los datos del servicio de mapas siempre estarán actualizados.

Actualizar teselas

Cuando edita los datos de origen del servicio de mapas en caché, 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 según una clase de entidad y completar el resto de la caché según demanda, debe tener cuidado de que las actualizaciones incluyan todas las áreas necesarias.

Hay dos estrategias que puede seguir para actualizar su caché cuando esté 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. Elimine teselas según lo contrario de la clase de entidad que almacenó previamente en caché. Puede utilizar herramientas de edición de ArcGIS para hacer un polígono que represente la extensión completa del mapa y recortar un agujero para el área que se almacenó previamente en caché. El polígono del donut resultante es el área donde se deben eliminar las teselas. Consulte Cortar un agujeros en una entidad poligonal para obtener una explicación de cómo cortar un agujero en un polígono con la herramienta Recortar en ArcGIS Pro.

Alternativamente, puede eliminar todas las teselas de la caché antes de comenzar con la actualización, pero esto puede afectar negativamente a los recursos del sitio de ArcGIS Server si la caché es grande.

Si los usuarios se quejan de que tienen que esperar un determinado lugar para que se los almacene en caché según demanda después de cada actualización, agregue 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 del mapa. Si los usuarios vuelven constantemente a un lugar en el mapa, se debe almacenar previamente en caché.

Destinar las actualizaciones de la 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, exportar estas áreas cambiadas a una clase de entidad y actualizar las teselas en función del 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.