Skip to main content

Afinar los servicios para satisfacer las necesidades del usuario

Los valores predeterminados de las propiedades de servicio pueden no ser apropiados para las necesidades de tus usuarios. Esto es especialmente cierto si hay un gran número de usuarios o si estos están realizando muchas solicitudes al sitio de ArcGIS Server. Este tema ofrece una vista general de conceptos, propiedades y técnicas que puede utilizar para configurar sus servicios de una forma más óptima.

Comprender las instancias de servicio

Cuando se realiza una solicitud a un servicio del sitio de ArcGIS Server como, por ejemplo, desplazarse por un mapa, ir a una dirección o mostrar una imagen con una regla de representación en pantalla, es una instancia del servicio publicado en ejecución en un equipo del servidor la que gestionará la solicitud. Las instancias de servicio funcionan gracias a los procesos de servidor propios de Esri, denominados procesos ArcSOC. Cada proceso ArcSOC necesita cierta cantidad de la memoria del equipo para poder ejecutarse.

Si tiene muchos servicios en el sitio de ArcGIS Server y cada uno utiliza una o varias instancias de servicio que siempre se están ejecutando, se podría alcanzar el límite de la memoria del equipo. Además, la ejecución en su organización de instancias de servicio conlleva costes de energía y, si implementa ArcGIS Server en una infraestructura en la nube, existe un coste monetario directo por cada instancia de servicio que ejecuta.

En consecuencia, es importante que los administradores de ArcGIS Server controlen la cantidad de instancias que ejecuta su sitio y las limiten cuando el rendimiento se vea reducido por el uso de memoria.

Los usuarios esperan resultados rápidos cuando interactúan con sus servicios (incluidos los productos creados mediante servicios, por ejemplo, mapas y aplicaciones web). Se requieren procesos de ArcSOC adecuados para gestionar el tráfico de servicios que recibe. Sin embargo, aprovisionar más recursos del servidor de los que necesita un servicio malgasta memoria del equipo, energía y dinero. Un buen objetivo para los administradores es reducir a la cantidad necesaria las instancias de servicio que se ejecutan sin influir en el rendimiento.

Instancias de servicios compartidas y dedicadas

ArcGIS Server permite utilizar instancias compartidas o instancias dedicadas para cada servicio de mapas o imágenes compatible publicado en un sitio de ArcGIS Server desde ArcGIS Pro. Utilizar instancias compartidas ahorra el uso de memoria al agrupar varios procesos de servidor activos para su uso por varios servicios. Por otro lado, las instancias dedicadas hacen que un servicio siempre esté disponible para gestionar las solicitudes mediante uno o varios procesos de servidor y son perfectas para utilizarlas en servicios que reciben solicitudes constantes o solicitudes que especialmente requieren potencia de cálculo.

En las nuevas implementaciones de ArcGIS Server, las instancias compartidas son la configuración predeterminada. Los administradores pueden elegir un tipo de instancia predeterminado (si los servicios de mapas compatibles deben utilizar desde el principio instancias compartidas o dedicadas) y cambiar el tipo de instancia para un servicio concreto en cualquier momento.

Sugerencia:

Para determinar desde qué aplicación se ha publicado un servicio, consulte las propiedades Tiempo de ejecución del servicio y Tipo de instancia de cada servicio en la aplicación ArcGIS Server Manager.

Las siguientes restricciones limitan los servicios que pueden utilizar el grupo de instancias compartido:

  • Solo se pueden configurar servicios de mapas e imágenes para que utilicen el grupo de instancias compartido. Otros tipos de servicios, por ejemplo, los servicios de geoprocesamiento, no son compatibles.

  • Solo se pueden habilitar las siguientes capacidades: representación cartográfica, imagen, acceso a entidades, WFS, WMS y KML. Desactive todas las demás capacidades antes de convertir un servicio dedicado a compartido.

Un servicio de mapas o imágenes de instancias dedicadas se ejecuta utilizando un conjunto específico de procesos ArcSOC. Los procesos de ese grupo no se usarán para ningún otro servicio. Un servicio de mapas o imágenes de instancia compartida se ejecuta utilizando un grupo de procesos ArcSOC que también se utilizan para cualquier otro servicio de instancia compartida. De forma predeterminada, cada instancia compartida de ArcSOC almacena en caché los 50 servicios utilizados más recientemente para que estén listos para administrar las solicitudes. Si una instancia compartida de ArcSOC ya tiene el número máximo de servicios almacenados en caché cuando un usuario realiza una solicitud de un nuevo servicio, ArcSOC descargará el servicio menos utilizado recientemente y cargará el nuevo servicio. Si los usuarios realizan solicitudes con regularidad en más de 50 servicios de instancias compartidas, puede aumentar el número predeterminado de servicios almacenados en caché por instancia compartida.

Cuándo utilizar cada tipo de instancia

Por lo general, se recomienda optar por instancias compartidas en lugar de instancias dedicadas. Las instancias compartidas ofrecen una mayor eficiencia general, ya que presentan el mismo rendimiento medio y el mismo ancho de banda, pero requieren muchos menos recursos del sistema.

Hay dos situaciones en las que se recomienda el uso de instancias dedicadas.

  • Cuando, por motivos empresariales, es necesario que un pequeño conjunto de servicios ofrezca un mayor rendimiento y escalabilidad en comparación con otros servicios.

  • Cuando la funcionalidad no es compatible con instancias compartidas, como los SOE que no son seguros para subprocesos o las redes de utilidades.

El hecho de designar unos servicios como dedicados no mejora automáticamente el rendimiento. Para mejorar el rendimiento mediante instancias dedicadas, también debe reducir el número de instancias disponibles para las instancias compartidas y configurar cuidadosamente el número de instancias para su servicio dedicado. Si se designan demasiados servicios como dedicados, es probable que el rendimiento se vea afectado. Se recomienda utilizar el menor número posible de servicios específicos de mapas o imágenes por sitio web.

Los servicios de mapas e imágenes consumen muchos recursos de la CPU. Por lo general, el rendimiento de un servidor ArcGIS Server dedicado a servicios de mapas e imágenes viene limitado por el número de núcleos de CPU. Si su equipo servidor tiene ocho núcleos y todos sus servicios se ejecutan en instancias compartidas, es probable que el rendimiento máximo se alcance cuando el servidor esté procesando ocho solicitudes simultáneas. ArcGIS Server podrá administrar más, pero esas solicitudes adicionales compartirán los recursos de la CPU. Todos los servicios que utilizan instancias compartidas reciben el mismo nivel de prioridad y pueden utilizar toda la potencia de la CPU de su servidor.

Las instancias dedicadas son adecuadas para un servicio que requiere un rendimiento constante, aunque ello suponga un deterioro del rendimiento de otros servicios. Por ejemplo, si tiene ocho núcleos, podría reservar la mitad de ellos exclusivamente para este servicio, estableciendo el número mínimo y máximo de instancias dedicadas en cuatro. Para garantizar que haya al menos cuatro núcleos disponibles para este servicio dedicado en todo momento, podría reducir el número de instancias compartidas a cuatro, de modo que nunca utilicen más de la mitad restante de los ocho núcleos.

ArcGIS Server permite la sobreasignación de instancias. Esto significa que, aunque un equipo solo tenga ocho núcleos, puede asignar más instancias de las que tiene núcleos. Aunque es posible una sobreasignación, esto hace que el rendimiento sea difícil de predecir y de controlar. Utilizar una sobreasignación del 10 % al 20 % podría mejorar la eficiencia, pero una sobreasignación excesiva probablemente perjudicará el rendimiento. En lugar de sobreasignar instancias dedicadas, es probable que note una mejora en el rendimiento si convierte algunos de los servicios dedicados en instancias compartidas.

Cantidad mínima y máxima de instancias de servicio

Cuando un servicio utiliza instancias dedicadas, es posible ajustar las cantidades máxima y mínima de instancias permitidas por equipo. Estos parámetros pueden ayudar a los servicios de su sitio a adaptarse a los cambios en el volumen de tráfico.

La propiedad de número mínimo de instancias representa el número de instancias dedicadas ya creadas y disponibles para su uso por parte de un servicio en cada equipo de ArcGIS Server. Por ejemplo, si establece este parámetro en tres instancias, siempre habrá al menos tres instancias ejecutándose en procesos de ArcSOC en cualquier momento, incluso cuando el servicio no esté recibiendo ninguna solicitud. Si no cree que el número de usuarios simultáneos de un servicio vaya a ser demasiado alto, considere la posibilidad de disminuir el número mínimo de instancias.

La propiedad de número máximo de instancias representa el número más alto de instancias de ese servicio que se pueden ejecutar en cualquier equipo de ArcGIS Server. Como administrador, debe determinar cuántas instancias de la configuración de un servicio cubrirán la demanda esperada por parte de los usuarios con un nivel de rendimiento aceptable.

La mejor manera de determinar la cantidad de instancias necesarias en la configuración de un servicio es a través de la monitorización del servidor. Si los tiempos de espera del cliente son largos o si las solicitudes caducan, puede que deba ajustar la cantidad de instancias disponibles o la manera en que la aplicación utiliza esas instancias.

Tenga en cuenta el tiempo durante el que los usuarios utilizarán los servicios. Algunas solicitudes al servidor requieren un trabajo más intenso que otras. Es posible que al servidor no le resulte tan difícil administrar un gran número de solicitudes de servicios ligeras como un número menor de solicitudes que requieren un mayor esfuerzo. Cada servicio tiene una propiedad de tiempo máximo de espera y una propiedad de tiempo máximo de uso. Si las solicitudes de los usuarios para los servicios caducan constantemente, posiblemente deba aumentar el tiempo máximo de espera o la cantidad de instancias disponibles del servicio.

Una vez que determine el número de instancias que darán servicio a los clientes, divídala entre el número de equipos de ArcGIS Server de su implementación y asigne al número resultante el número máximo de instancias para la configuración del servicio. Por ejemplo, si necesita un máximo de 10 instancias de un servicio que puedan manipular simultáneamente sus solicitudes, y dispone de 2 equipos de ArcGIS Server, establezca el número máximo de instancias en 5.

Cada instancia consume memoria, incluso cuando el servicio no se está utilizando. Configurar el número mínimo de instancias por equipo por debajo del número máximo de instancias por equipo permite liberar memoria mientras no se utiliza. Esto suele tener poco efecto en el rendimiento. Las solicitudes pueden experimentar retrasos cuando es necesario iniciar nuevas instancias. Para evitar el retraso, puede configurar el número mínimo de instancias por equipo en el mismo valor que el número máximo de instancias por equipo.

Use los registros y las estadísticas del servidor para determinar si las solicitudes excesivas están haciendo que se agote el tiempo de espera y si se están utilizando los servicios por encima del tiempo de uso máximo establecido. Utilice Server Manager para ajustar la cantidad de instancias de servicio disponibles y el máximo de tiempos de uso y de espera para un servicio.

Agrupación de instancias de servicio

Todos los servicios publicados con ArcGIS Server están agrupados. Esto significa que las instancias del servicio se pueden compartir entre varias sesiones de aplicación.

Una aplicación que utiliza una instancia de un servicio agrupado lo utiliza únicamente durante el tiempo que tarda en completar una solicitud (por ejemplo, para trazar un mapa o geocodificar una dirección). Después de completar la solicitud, la aplicación libera su referencia en el servicio y la devuelve directamente al grupo de instancias disponibles.

Reciclaje de instancias de servicio

Con el reciclaje del servicio se pueden eliminar los servicios que han quedado inutilizables y su sustitución por servicios nuevos, además de solicitar los recursos empleados por servicios obsoletos.

Los servicios suelen compartirse entre varias aplicaciones y sus usuarios. La reutilización puede provocar que determinados servicios no estén disponibles para las aplicaciones. Por ejemplo, una aplicación podría de forma incorrecta modificar el estado de un servicio o retener la referencia de un servicio, lo que provocaría que no estuviera disponible para otras aplicaciones o sesiones. En determinados casos, los servicios podrían dañarse y quedar inutilizables. Con el reciclaje se mantiene el grupo de servicios actualizado y se eliminan del ciclo los servicios obsoletos o inutilizables.

Durante el reciclaje, el servidor destruye y, después, vuelve a crear cada instancia utilizando la configuración de servicios. El reciclaje se produce como un proceso en segundo plano en el servidor. Aunque en la pantalla no aparece ningún mensaje que notifique la realización del reciclaje, puede ver los eventos asociados con el reciclaje en los archivos de registro.

El reciclaje destruye y vuelve a crear todas las instancias en ejecución de un servicio, independientemente de si esas instancias se encuentran o no por encima del mínimo especificado. Para devolver periódicamente el número de instancias en ejecución al mínimo especificado, el servicio deberá detenerse y reiniciarse. Para automatizar este proceso se puede crear un script de lote de Windows, de capa o de Python que ejecute un archivo ejecutable de línea de comandos API administrativos de ArcGIS Server personalizado. Este archivo ejecutable personalizado tomará el nombre del servidor, el nombre del servicio, el tipo del servicio y si el servicio debe iniciarse o detenerse como argumentos de la línea de comandos.

El tiempo transcurrido entre los eventos de reciclaje es el intervalo de reciclaje. El intervalo de reciclaje predeterminado es de 24 horas, que puede cambiar en el cuadro de diálogo Editor del servicio. También puede elegir el tiempo que la configuración se reciclará inicialmente. A partir de esa hora, el reciclaje se producirá cada vez que se alcance el intervalo de reciclaje.

Los servicios reciclan una instancia a la vez para garantizar que siempre hay instancias disponibles y para extender los accesos de rendimiento causados por la creación de una nueva instancia de cada servicio. El reciclaje se produce de forma aleatorio; sin embargo, las instancias de los servicios en uso por parte de los clientes no se reciclan hasta que se liberan. De esta forma, el reciclaje se produce sin tener que interrumpir al usuario de un servicio.

Si no hay suficientes instancias disponibles durante el reciclaje, se pone en cola una solicitud hasta que esté disponible una instancia. Si el tiempo máximo de espera del servicio se alcanza durante este período, los registros registran el mismo mensaje que harían normalmente.

Buscar conexiones de datos no válidas

Cuando una instancia de servicio se encuentra inactiva, puede resultar difícil para un administrador del servidor determinar si las conexiones con los datos de origen se mantienen correctamente. ArcGIS Server tiene mecanismos integrados para comprobar las conexiones no válidas a las geodatabases corporativas. Con estas comprobaciones se evita que el servicio deje de responder después de que una conexión con la base de datos se elimine o se interrumpa.

Nota:

La compatibilidad de la comprobación de conexiones de datos no válidas no incluye las geodatabases de archivos.

Puede habilitar las comprobaciones de validez de la conexión de datos abriendo la pestaña Procesos del cuadro de diálogo Editor del servicio en ArcGIS Server Manager y marcando la casilla de verificación Comprobar periódicamente y reparar las conexiones de datos para instancias inactivas. También es necesario especificar un intervalo en minutos en el que se validarán automáticamente las conexiones de servicio (y se repararán si fuera necesario). El valor predeterminado de 30 minutos se considera adecuado.

Habilitar estas comprobaciones también le puede ayudar en el caso de que el firewall cierre los puertos en geodatabases corporativas después de que los servicios permanezcan inactivos durante un determinado período de tiempo. En esta situación, la elección del intervalo de tiempo puede estar influenciada por los ajustes del tiempo de espera del firewall.

Tiempos de espera

La comprensión de los distintos valores de tiempo de espera del servicio disponible puede ayudarle a mantener sus servicios funcionando y disponibles. Estos valores están disponibles en la pestaña Agrupación del cuadro de diálogo Editor de servicio.

Una vez un cliente obtiene una referencia a un servicio, utiliza el servicio durante un período de tiempo antes de liberarlo. La cantidad de tiempo transcurrido desde que un cliente obtiene la referencia de un servicio y hasta que éste es liberado es el tiempo de uso. Para asegurarse de que los clientes no mantienen las referencias a los servicios durante demasiado tiempo (por ejemplo, en caso de que no liberen los servicios correctamente), cada servicio tiene un tiempo máximo que el cliente puede utilizar. Si un cliente retiene un servicio durante un tiempo de uso mayor que el permitido, el servicio será liberado automáticamente y el cliente perderá su referencia al servicio.

Sumergirse:

Cuando cree un nuevo servicio, el valor predeterminado para el tiempo de uso máximo es 600 segundos (10 minutos). Sin embargo, en el servicio PublishingTools generado previamente que viene con cada sitio de ArcGIS Server, el tiempo máximo de uso ha sido establecido en 3600 segundos (60 minutos). Esto es para acomodar los trabajos de publicación que tienen lotes de datos copiados en el servidor.

El tiempo de uso máximo también evita que los servicios se utilicen para procesar volúmenes de trabajo más elevados que los previstos por el administrador. Por ejemplo, un servicio utilizado por una aplicación que realice comprobaciones de geodatabases puede tener un tiempo de uso máximo de 10 minutos. En cambio, un servicio con una capa que solo se utiliza para dibujar mapas en una aplicación puede tener un tiempo de uso máximo de 1 minuto.

Cuando el número máximo de instancias de un servicio está en uso, el cliente que solicita un servicio se envía a la cola hasta que otro cliente libere uno de sus servicios. La cantidad de tiempo transcurrido entre la solicitud de un servicio por parte de un cliente y la obtención del mismo se llama tiempo de espera. Cada servicio tiene un tiempo máximo durante el que un cliente esperará para obtener un servicio. Si se supera el tiempo de espera máximo de un cliente para un servicio, la solicitud se interrumpe.

Un tercer tiempo de espera dicta el tiempo máximo que una instancia inactiva se puede mantener en ejecución. Cuando los servicios dejan de utilizarse, se mantienen en ejecución en el servidor hasta que otro cliente necesita la instancia. Una instancia en ejecución que aún no se encuentra en uso consume memoria en el servidor. Puede minimizar el número de servicios en ejecución y conservar así la memoria acortando el tiempo de espera inactivo, el valor predeterminado es de 1.800 segundos (30 minutos). El tiempo de espera inactivo de corta duración tiene el inconveniente de que cuando todos los servicios en ejecución se interrumpen, los siguientes clientes tendrán que esperar a que se creen nuevas instancias.

Cuando se crean las instancias de los servicios en el servidor SIG, ya sea como resultado del inicio del servidor o en respuesta a una solicitud de servidor por parte de un cliente, el tiempo necesario para inicializar la instancia del servicio se denomina hora de creación. El servidor SIG incluye un tiempo de espera de inicio que indica la cantidad de tiempo que puede transcurrir en un intento de inicio antes de que el servidor SIG asuma que el inicio está suspendido y cancele la creación de la instancia del servicio. El valor predeterminado es 300 segundos (5 minutos).

El servidor SIG incluye las estadísticas tanto en memoria como en los registros acerca del tiempo de espera, tiempo de uso y otros eventos que se producen dentro del servidor. El administrador del servidor puede utilizar estas estadísticas para determinar si, por ejemplo, el tiempo de espera de un servicio es muy elevado, lo que podría indicar que es necesario aumentar el número máximo de instancias para dicho servicio.

Puede haber tiempos de espera adicionales en su arquitectura que creen discrepancias entre los valores de tiempo de espera del servicio especificados y los tiempos de espera reales experimentados por los clientes. Por ejemplo, el servidor Web que aloja ArcGIS Web Adaptor o un balanceador de carga de red puede imponer tiempos de espera que afecten a sus servicios.

Nota:

Si su sitio se encuentra bajo una carga muy pesada, se prevén discrepancias entre los valores de tiempo de espera especificados y los tiempos de espera hallados por los clientes.

Limitar lo que pueden hacer los usuarios con un servicio

Para facilitar el control del uso de sus servicios Web, cada tipo de servicio tiene un conjunto de operaciones permitidas. Cada operación está formada por un conjunto de métodos que se puede habilitar o deshabilitar como grupo. Los clientes del servicio Web solo pueden realizar llamadas a los métodos de las operaciones para las que dispongan de permiso.

Supongamos que permite el consumo de un servicio Web de representación cartográfica para trazar el mapa pero no para consultar las fuentes de datos de las capas del mapa. En este caso, tendrá que deshabilitar la operación de datos y asegurarse de que se permite utilizar la operación Mapa.

Los servicios de entidades son de especial interés en este debate porque se utilizan para realizar la edición de los datos SIG basada en la Web. Los servicios de entidades tienen un conjunto adicional de operaciones que se pueden utilizar para restringir las funciones de edición. Puede habilitar o deshabilitar estas en la pestaña Acceso a entidades del cuadro de diálogo Editor del servicio en ArcGIS Server Manager. También puede evitar que los usuarios editen entidades que no había creado originalmente al hacer cumplir el control de acceso basado en la propiedad.

Consulte Tipos de servicios para obtener información sobre las operaciones permitidas en los distintos tipos de servicios.

Escenarios para el ajuste del servicio

Los siguientes casos prácticos ofrecen algunos ejemplos reales de cómo un administrador puede ajustar los servicios para satisfacer las necesidades de los usuarios.

Situación: lentitud en la respuesta del servicio

Un usuario de su organización se ha puesto en contacto con usted porque está experimentando unos tiempos de visualización inaceptables para un servicio de mapas en particular. Tras realizar las pruebas pertinentes con el servicio de mapas, descubre que una capa concreta del servicio de mapas tarda más de lo normal en dibujarse. Para investigar el caso con más detalle, solucione los problemas de rendimiento del servicio de mapas con los registros del servidor y aísle la información que pertenezca a este servicio de mapas.

Posible causa núm. 1

Tras revisar los registros de Server Manager, descubre unos tiempos de dibujo excesivos para una capa (o capas) de servicio.

Soluciones comunes para núm. 1

Utilice las siguientes prácticas recomendadas para optimizar el rendimiento del mapa:

  • Use la representación dependiente de la escala.

  • Elimine los marcos de datos y las capas no usados.

  • Use la validación para las consultas de definición.

  • Simplificar la simbología de capa

  • Plantéese utilizar los mapas almacenados en caché cuando sea posible (por ejemplo, si los datos cambian con poca frecuencia).

Después de revisar el servicio, implementar las sugerencias para la optimización y volver a publicar el servicio, usted y sus compañeros observan una notable mejora en la repuesta del servicio de mapas.

Posible causa núm. 2

Los registros de Server Manager indican que el retraso del acceso de red en una capa dentro del servicio puede estar degradando el rendimiento del servicio.

Soluciones comunes para núm. 2

Utilice las siguientes prácticas recomendadas de administración y acceso a datos para minimizar la latencia de red y optimizar el rendimiento del servicio:

Después de revisar el servicio, implementar las sugerencias para la administración y acceso a los datos, y volver a publicar el servicio, usted y sus compañeros observan una notable mejora en la repuesta del servicio de mapas.

Situación: asegurar recursos mecánicos adecuados

Ha creado una aplicación Web largamente esperada y le gustaría exponerla a un público más amplio en un día anunciado de esta semana. Puesto que prevé un elevado volumen de solicitudes a los servicios de esta aplicación, quiere asegurarse de que dispone de los recursos suficientes.

Para asignar a los servidores los recursos suficientes para dar soporte a un uso intenso de esta aplicación Web, revisará las estadísticas de ArcGIS Server para identificar los servicios que se utilizan poco y ajustará las propiedades del servicio en consecuencia para facilitar el acceso de los usuarios a esta aplicación. Asimismo, ajustará en consecuencia las propiedades del servicio para los servicios que se utilizarán en la aplicación Web.

Solución potencial

Administre y ajuste las propiedades del servicio para asignar recursos a su sitio. Por ejemplo, tenga en cuenta la duración de uso de los servicios por parte de los usuarios. ¿Se están usando por encima de su tiempo de uso máximo? ¿Los usuarios finales están experimentando tiempos de espera debido al exceso de solicitudes a un servicio?

Utilice las siguientes recomendaciones a modo de guía para ajustar las propiedades del servicio a fin de anticipar y responder a las necesidades de los usuarios finales:

  • Identifique los servicios más utilizados y aumente el número mínimo de instancias para cada uno de ellos. De este modo reducirá el tiempo de espera de los usuarios.

  • Migre los servicios utilizando instancias dedicadas que puedan recurrir al grupo de instancias compartidas.

  • Aumente las instancias mínimas y máximas, el tiempo de espera, el tiempo de inactividad y el tiempo de uso según convenga para mitigar los retrasos para los usuarios finales.

  • Reduzca el número de instancias, el tiempo de espera y el tiempo de inactividad según convenga a fin de liberar recursos del sistema para los servicios que más los necesiten.