Análisis de Escalabilidad de Subredes
¿Qué es el Análisis de Escalabilidad de Subredes?
Antes de hablar sobre el análisis de escalabilidad de subredes en Utility Network, revisemos las definiciones de qué es una subred y qué es el análisis de escalabilidad:
Una subred:
En una utility network, una subred es una particin o subconjunto topolgico de los datos en un nivel donde todas las entidades participantes tienen conectividad con los mismos controladores. Una subred es a menudo utilizada para trazado para determinar si la conectividad est disponible.
Anlisis de escalabilidad:
El anlisis de escalabilidad sirve para determinar la capacidad de una implementacin de Utility Network para ejecutar mltiples solicitudes concurrentemente (por ejemplo, <\/SPAN>updateSubnetwork y <\/SPAN>exportSubnetwork). Esto se hace normalmente para entender si se pueden cumplir los objetivos comerciales dominantes por tiempo. Por ejemplo, puede una implementacin particular exportar 5,000 subredes dentro de una ventana de 4 horas?
La respuesta a esta pregunta es desconocida hasta que se prueba y verifica.
La escalabilidad de una implementacin est ligada a cunta concurrencia puede ocurrir al mismo tiempo mientras se mantiene un rendimiento ptimo en las operaciones de inters. Este Artculo discute cmo aplicar concurrencia mediante una prueba (incluida en el Artculo).
Nota: Para ms informacin sobre una subred, vea:<\/FONT> El Ciclo de Vida de la Subred en Utility Network <\/STRONG>
Nuestro Objetivo y Meta en Utility Network
- Automatizar las tareas de actualizar o exportar una lista de subredes
- Capturar el tiempo de rendimiento
- Tarea general
- Operaciones individuales (por ejemplo, tiempo para actualizar una subred especfica)
- Solucin configurable para cumplir con los requisitos
- Sensibilidad al tiempo
- Sensibilidad a recursos
1 Por qu9 Realizar Anlisis de Actualizaci1n/Exportaci1n de Subred?0b
0
0- 0Prop3sito tdico y restricciones temporales son un requisito comercial
00- 0Ejecutar dos funciones por subred0b
0- actualizar (updateSubnetwork)0b
lmente realizado despus tanto editar como validar topologa red han sido llamados o habilitar topologa red ha sido llevado a cabo
ul>i>exportar (exportSubnetwork)
ul>i>Utilizado para extraer informacin sobre la subred a un archivo que luego puede ser utilizado por sistemas externos como gestin de cortesAntes que una subred pueda ser exportada fuera del sistema, necesita estar actualizada (actualizada)ul>/li>/ul>/li>/ul>/li>/ul>/p class="lia-indent-padding-left-90px" style="padding-left : 90px;">Tanto son funciones importantes en utility network. Como administrador GIS o desarrollador, es importante entender cmo estas operaciones escalan. Entender el tiempo para procesar una lista de subredes es el anlisis principal. Esto puede llevarse ms all explorando soluciones que optimicen la tarea para tiempo o recursos del sistema. Estos desafos tienen enfoques similares sobre cmo lograr la tarea de actualizar o exportar muchas subredes. - Obtener informacin sobre objetivos comerciales
- Exportar Subredes puede tomar ms tiempo computacional dependiendo de las opciones utilizadas
- Tales opciones pueden ser un requisito comercial
- El rendimiento y la escalabilidad pueden afectar la arquitectura
- De los resultados y hallazgos de la prueba
- La configuracin del despliegue podr necesitar cambiar para cumplir con las necesidades comerciales
Cmo Realizar el Anlisis de Escalabilidad de Subred?Lista de SubredesEl primer paso es extraer una lista de subredes del conjunto de datos Utility Network.Esto se puede hacer mediante varios mtodos:- ArcGIS Pro
- Script ArcPy
- Sentencias SQL select
Ejemplo SQL:- Conectar a la geodatabase Utility Network
- Encontrar el ObjectId para la tabla Subnetwork:
- Este ObjectId es dinmico y puede variar
- El tipo GUID es constante
-- Encontrar ObjectId Utility Network para tabla Subnetwork
SELECT OBJECTID FROM sde.GDB_ITEMS WHERE type='{37672BD2-B9F3-48C1-89B5-8C43BBBB6D57}'- Para nuestra base de datos ejemplo, esto devolvi 446
< li >Este valor ObjectId se usar en la siguiente consulta </ li > </ ul > </ li > < li >Exportar la lista de subredes </ li > </ ul > < pre class = " lia-code-sample language-sql " > < code > -- Exportar lista de Subnetworks
SELECT
T1.SUBNETWORKCONTROLLERNAME, T1.SUBNETWORKNAME, T1.ISDIRTY,
T1.ISDELETED, T1.TIERNAME, T1.DOMAINNETWORKNAME, T1.GDB_FROM_DATE
FROM
elec.UN_446_SUBNETWORKS T1
INNER JOIN (SELECT SUBNETWORKNAME, MAX(GDB_FROM_DATE) AS MaxDate
FROM
elec.UN_446_SUBNETWORKS
GROUP BY SUBNETWORKNAME) T2
ON T1.SUBNETWORKNAME = T2.SUBNETWORKNAME
AND T1.GDB_FROM_DATE = T2.MaxDate </ code > </ pre > < ul > < li >Guardar salida a un archivo (csv o tsv) < ul > < li >Algunos SubnetworkControllerNames pueden contener comas (por ejemplo, ",") y un archivo separado por tabulaciones en lugar de separado por comas ser ma apropiado </ li > </ ul > </ li > </ ul > < p >Para el conjunto de datos Utility Network usado en este Articulo, la lista resultante de subredes se ve como sigue cuando las filas de datos estn separadas con tabulaciones.Nota: Se asume que el estado actual de la red contiene subredes limpias y sucias. Cmose vuelven sucias las subredes estn fuera del alcance de este Artculo.<\/font>Nota: Pueden existir varios factores comerciales que influyan en la seleccin para extraer subredes. Esta consulta es para ayudarte a comenzar.<\/strong>Apache JMeter<\/span>Como se menciona en otros Artculos Comunitarios, Apache JMeter<\/a> es una herramienta gratuita para pruebas. Es excelente para ejercitar el endpoint REST de ArcGIS Enterprise para probar muchas funciones:<\/p>- Pruebas de Rendimiento con Apache JMeter (Una Introduccin)<\/a>
- Ejecutando una Prueba de Carga Apache JMeter desde modo lnia (Principiante/Intermedio)<\/a> <\/li\/>Creando una Prueba de Carga en Apache JMeter contra el Servicio Mapa SampleWorldCities (Principiante/Intermedio)<\/a> <\/li\/>Usando Apache JMeter para Pruebas de Carga en un Servicio Autenticado ArcGIS Enterprise (Intermedio/Avanzado)<\/a> <\/li\/><\/ul\/>Mientras hay muchas herramientas para pruebas disponibles, JMeter sera usado para llamar a un servicio Utility Network en ArcGIS Enterprise para realizar solicitudes updateSubnetwork y exportSubnetwork.<\/p\/>
<\/h3\/>Naperville Electric data, as seen from ArcGIS Pro:<\/p\/>
Actualizacin SubnetVista del sistema archivos del plan prueba Apache JMeter \/--> lia-image-align-inline" image-alt="AaronLopez_1-1770168462393.jpg" style="width: 999px;">
<\/span><\/P>Fuera de JMeter, el Plan de Prueba es solo un archivo jmx, por sí mismo. Como se mencionó en otros Artículos de la Comunidad, se recomienda crear alguna estructura de carpetas para el proyecto con el que trabajas. Esto puede ayudar con la gestión, especialmente si tienes muchas pruebas diferentes haciendo cosas distintas. En las carpetas mostradas arriba, la lista de subredes y los resultados de las pruebas pueden mantenerse dentro del directorio UpdateSubnetwork donde es menos probable que se confunda con otros datos de ejecuciones de prueba.<\/P>
El Plan de Prueba Update Subnetwork<\/H2>Para descargar el Plan de Prueba Apache JMeter usado en este Artículo, vea:
UpdateSubnetwork1.zip<\/A><\/STRONG> <\/LI>Abrir el Plan de Prueba en Apache JMeter debería verse similar a lo siguiente:<\/SPAN>Ajusta las Variables Definidas por el Usuario para adaptarlas a tu entorno<\/LI><\/UL><\/LI><\/UL>
<\/span><\/P>Componentes Clave del Plan de Prueba<\/H2>Con el Plan de Prueba UpdateSubnetwork expandido, se pueden ver los siguientes elementos:<\/P>Variables Definidas por el UsuarioLista arriba, usada para adaptar fácilmente la prueba a un entorno<\/LI><\/UL><\/LI>Reporte AgregadoUsado para depurar la prueba y análisis post-prueba<\/LI><\/UL><\/LI>Grupo de HilosDefine la concurrencia de hilos o escalabilidad<\/STRONG><\/U> de la prueba<\/LI>Se recomienda usar valores predeterminados (por ejemplo, 1 hilo de prueba) mientras se construye una prueba<\/LI><\/UL><\/LI>GenerateTokenObtiene un token de ArcGIS EnterpriseUsa credenciales definidas anteriormente<\/LI><\/UL>Lo mantiene durante la prueba<\/LI><\/UL><\/LI>While Controller SyncUsado cuando la lógica del negocio dicta que las llamadas deben ser síncronas<\/STRONG><\/LI>Bucle sobre la lista de subredes<\/LI><\/UL><\/LI>CSV Data Set ConfigVincula la lista de subredes a probarArchivo de texto CSV o TSV<\/LI><\/UL><\/LI><\/UL><\/LI>If ControllerUna rama lógica de la prueba usando Groovy<\/LI>Sigue la rama si la subred está sucia (IsDirty=True o IsDirty=1)<\/LI><\/UL><\/LI>USN Request (${SUBNETWORKNAME})El elemento de prueba que emite la solicitud para realizar la mayor parte del trabajo<\/LI>A partir del archivo fuente de datos, ${SUBNETWORKNAME} se llena con el nombre de la subred<\/LI><\/UL><\/LI>While Controller AsyncUsado cuando la lógica del negocio dicta que las llamadas deben ser asíncronas<\/STRONG>Ideal para solicitudes updateSubnetwork que duran mucho tiempo<\/LI><\/UL><\/LI>Bucle sobre la lista de subredes<\/LI>Para utilizar:Clic derecho en While Controller Async y seleccionar Enable<\/STRONG>
- Clic derecho en While Controller Sync y seleccionar Disable<\/STRONG>
<\/UL>
<\/span>
Nota: Establece los valores del Grupo de Hilos para determinar el perfil de escalabilidad de la prueba Update Subnetwork. Un valor mayor para "Usuarios" significa una mayor concurrencia máxima que alcanzará la prueba. Incrementa "Rampup" para aumentar gradualmente la cantidad de concurrencia durante ese período (en segundos).<\/STRONG>
Una Mirada Más Cercana a GenerateToken
La solicitud GenerateToken es una parte importante de la prueba. Ocurre temprano en la prueba y es muy probable que el servicio Utility Network requiera autenticación.
La Solicitud Generate Token
Capturando el Token
Solicitar el token es solo la mitad del trabajo. La otra parte es capturarlo y almacenarlo como una variable para que JMeter pueda acceder a él mientras se ejecuta la prueba. Esto se hace con el elemento Regular Expression Extractor de JMeter.<\/SPAN>
Nota: Cómo funcionan las expresiones regulares está fuera del alcance de este Artículo, pero esencialmente busca una firma particular en la respuesta y si se encuentra, lo pone en una variable JMeter llamada agstoken.<\/SPAN>
Archivo de Datos del Plan de Prueba Update Subnetwork -- La Lista de Subredes
El elemento CSV Data Set Config juega un papel fundamental ya que
vincula nuestra lista de datos de subredes a la prueba.
Nota: Algunos conjuntos de datos Utility Network pueden contener el carácter coma (por ejemplo, ",") en SubnetworkControllerName. Donde esto ocurre, es ventajoso guardar la lista de subredes como valores separados por tabulaciones en lugar de valores separados por comas.<\/STRONG>
Nota: En casos donde se usa un archivo separado por tabulaciones, JMeter aún esperará que la línea del encabezado en la lista de subredes esté separada por comas.<\/STRONG>
Lógica If Controller
Para conveniencia, se agregó lógica a la prueba para actualizar solo las subredes de la lista si el campo IsDirty es igual a 1.Groovy se usa para lograr esta tarea en la prueba.<\/SPAN>
Apache Groovy es un lenguaje scripting basado en Java que provee funciones poderosas y soporte programático para cosas que podrían ser difíciles para los elementos estándar del test JMeter.<\/><\/><\/>
<\/><\/>
La Solicitud HTTP Update Subnetwork
This test element in the Test Plan is the responsible for updateSubnetwork web calls in the test.
This component issues the request and JMeter evaluates the response coming back from ArcGIS Enterprise through the REST endpoint.
información valiosa sobre el rendimiento de las operaciones a partir de la prueba

Nota: Siempre se recomienda coordinar la hora de inicio y la duración de la prueba de carga con el personal apropiado de su organización. Esto asegura un impacto mínimo para los usuarios y otros colegas que también puedan necesitar usar su sitio on-premise ArcGIS Enterprise. Además, esto ayuda a prevenir ruido del sistema de otras actividades y usos que pueden "contaminar" los resultados de la prueba.
Nota: Por varias razones, se aconseja encarecidamente nunca realizar pruebas de carga en servicios proporcionados por ArcGIS Online.
Análisis -- Reportes y Evaluación
Elemento del Informe Agregado (Depuración de Prueba)
De este análisis, podemos ver fácilmente la transacción UpdateSubnetwork_Sync y algunas estadísticas clave que nos brindan información importante sobre el rendimiento general de la operación.

Para una estimación aproximada del tiempo total, al usar 1 hilo de prueba concurrente, simplemente multiplique el número de muestras por el promedio. Por ejemplo: "# Muestras * Promedio" = Tiempo Total de Ejecución de la Prueba (ms)
Para ejecuciones "oficiales" de prueba, se recomienda deshabilitar el listener del Informe Agregado desde el Árbol (un simple clic derecho y luego seleccionar Deshabilitar) y usarlo solo para la creación, depuración y procesamiento posterior a la prueba.
Nota: Para el procesamiento posterior a la prueba, el Informe Agregado aún puede usarse para navegar, seleccionar y cargar un archivo de resultados incluso si está deshabilitado en la GUI.
El Archivo de Resultados
Cuando se ejecuta desde el script en línea de comandos, JMeter produce un archivo de resultados como parte de su salida. El archivo de resultados (*.jtl), contiene información cruda de las solicitudes en forma de texto.
El contenido de este archivo incluye una lista con todas las subredes y sus tiempos individuales de respuesta. Aunque es fácil abrirlo y verlo con cualquier editor común, no se recomienda realizar análisis en esta forma.

Elemento del Informe Agregado (Análisis Posterior a la Prueba)
Volvamos al elemento Informe Agregado para algo de análisis posterior a la prueba. Desde la GUI de JMeter, haga clic en el botón Examinar para encontrar el archivo jtl de resultados y luego seleccione Abrir para cargarlo.
Una vez cargado, JMeter procesa el archivo jtl y genera un informe estadístico en la sección Informe Agregado.
El elemento Informe Agregado es interactivo, por lo que puede hacer clic en el encabezado Máximo para reordenar fácilmente la lista y encontrar las subredes que tomaron más tiempo. La transacción UpdateSubnetwork_Sync sigue listada, lo cual es crítico para entender si los números generales cumplen ciertos requisitos de rendimiento según un acuerdo de nivel de servicio (SLA).

Nota: El número de subredes en este conjunto de datos es pequeño. Los resultados de pruebas con conjuntos de datos en producción tendrían más muestras.
Llevando el Análisis Más Lejos
Dado que el archivo de resultados está separado por comas, puede abrirse fácilmente en una hoja de cálculo.

Una vista de los datos resultantes con un formato mínimo.
Esto está bien pero ¿puede ser mejor?

Graficar el rendimiento de la transacción ofrece mayor claridad.
Nota: Si solo busca números generales, filtre las solicitudes individuales por subred (por ejemplo, el campo donde responseMessage = OK).
Exportar Subred
Apache JMeter – Vista del sistema de archivos del folder Plan de Prueba

El Plan de Prueba Exportar Subred
- Para descargar el Plan de Prueba Apache JMeter usado en este Artículo vea: ExportSubnetwork1.zip
- Abrir el Plan de Prueba en Apache JMeter debería verse similar a lo siguiente:
- Ajuste las Variables Definidas por Usuario para adaptarlas a su entorno

Nota: Configure los valores del Grupo de Hilos para determinar el perfil de escalabilidad del test Exportar Subred. Un valor mayor para "Usuarios" significa una concurrencia máxima más alta que alcanzará la prueba. Aumente "Rampup" para incrementar gradualmente la cantidad de concurrencia durante esa duración (en segundos) hasta alcanzar el máximo.
La Solicitud HTTP Exportar Subred
Este elemento del test en el Plan es responsable por las llamadas web exportSubnetwork en la prueba.
Este componente emite la solicitud y JMeter evalúa la respuesta que regresa desde ArcGIS Enterprise a través del endpoint REST.

Nota: Este Plan de Prueba Exportar Subred está diseñado para exportar cada subred en el archivo de datos.
JMeter Avanzado
Obteniendo el Tamaño del Resultado Exportar Subred
La solicitud exportSubnetwork produce un archivo en ArcGIS Server. Este archivo resultante (que comúnmente está formateado como json o pbf) puede luego importarse a otros sistemas. El tamaño en disco de este ítem puede variar pero es metadato útil para capturar durante la prueba.
Aunque hacer que el elemento Solicitud lea directamente la salida para obtener el tamaño podría ser simple, sería muy ineficiente. Sin embargo, esta tarea es una oportunidad para utilizar el lenguaje Groovy mencionado anteriormente y realizar cálculos más pesados del sistema archivos rápidamente.
Después de la solicitud exportSubnetwork, hay solicitudes adicionales en forma de dos muestreadores JSR223:
- CalculateStatistics SN:${SUBNETWORKNAME}
- SN:${SUBNETWORKNAME} Size:${outputFileSizeKB}KB
La primera muestra contiene lógica Groovy para leer el archivo resultante desde la exportación y ponerlo en una variable JMeter.
<\/span><\/P>Una mirada más cercana a la lógica Groovy:<\/P>\/\/ Capturar variables y algunos artefactos dinámicos para ensamblar la ruta del sistema de archivos de la salida exportSubnetwork
\/\/ Examinar el sistema de archivos de la salida exportSubnetwork en el disco
String outputUrl = vars.getObject("outputUrl"); \/\/ Capturado de la solicitud previa (exportSubnetwork)
String outputFormat = vars.getObject("outputFormat"); \/\/ Variable Definida por el Usuario
String subnetworkName = vars.getObject("SUBNETWORKNAME"); \/\/ Variable del Plan de Pruebas desde CSV
String serverName = vars.getObject("serverHostname"); \/\/ Variable Definida por el Usuario
String folderServiceName = vars.getObject("serviceName"); \/\/ Variable Definida por el Usuario
File srvc = new File(folderServiceName);
String folderName = srvc.getParent(); \/\/ Aísla el nombre de la carpeta del servicio
String serviceName = srvc.getName(); \/\/ Aísla el nombre del servicio
String outputName = org.apache.commons.io.FilenameUtils.getBaseName(outputUrl); \/\/ Aísla el nombre del archivo de la salida exportSubnetwork
outputNamewExt = outputName + "." + outputFormat; \/\/ Re-agregar extensión de archivo
\/\/ Crear la ruta del sistema de archivos donde debería residir la salida; asumir que el directorio arcgisoutput está compartido con el usuario que ejecuta JMeter
\/\/ Usar "\\\\MyServer.domain.org\\arcgisoutput\\" si la variable serverName no es una máquina ArcGIS Server
String cifsPath = "\\\\" + serverName + "\\arcgisoutput\\" + folderName + "\\" + serviceName + "_MapServer\\" + outputNamewExt;
File file = new File(cifsPath);
long cifsFileSize=file.length(); \/\/ Obtener tamaño de la salida exportSubnetwork
double oneKilobyte=1024.0
double cifsFileSizeKB=(cifsFileSize\/oneKilobyte);
double cifsFileSizeKBRound=cifsFileSizeKB.round(2); \/\/ Tamaño de archivo formateado amigable para el usuario
log.info("folderServiceName: " + folderServiceName);
log.info("outputUrl: " + outputUrl);
log.info("cifsPath: " + cifsPath);
log.info("cifs file.exists: " + file.exists().toString());
log.info("serverName: " + serverName + " subnetworkName: \"" + subnetworkName + "\" size: " + cifsFileSizeKBRound + " KB outputName: " + outputNamewExt); \/\/ Escribir información en el log de JMeter
vars.putObject("outputFileSizeKB",cifsFileSizeKBRound);<\/code><\/pre>El segundo Sample simplemente lista el tamaño del archivo capturado en la propiedad Name del elemento JSR223 Sampler en la prueba. Este valor luego se reporta como el nombre de la solicitud en el archivo de resultados jtl, que podría usarse para análisis adicionales.<\/P>Por ejemplo:<\/P>
<\/span><\/H2>Obteniendo Tiempo de Respuesta Individual de Subred desde un Trabajo Asíncrono<\/SPAN><\/H3>El Estilo de Ejecución Asíncrono<\/SPAN><\/H4>El estilo de ejecución predeterminado en la prueba es síncrono. Es simple y directo. Emitir la solicitud y simplemente esperar la respuesta. Este es el enfoque ideal cuando se espera que el tiempo de respuesta por solicitud sea menor a 10 minutos. <\/SPAN><\/P>Para solicitudes que duran más tiempo<\/EM> que 10 minutos, asíncrono es el enfoque recomendado. Sin embargo, hay más partes móviles con una prueba asíncrona:<\/SPAN><\/P>Se envía un trabajo<\/SPAN><\/LI>El estado del trabajo se consulta periódicamente en un bucle<\/SPAN>Hay más de un bucle<\/SPAN><\/LI><\/UL><\/LI>Una vez completado, se puede capturar la ubicación de salida para ese trabajo<\/SPAN><\/LI><\/UL>Cada uno de estos pasos es su propia solicitud en la prueba, y cada uno tiene un tiempo de respuesta que se captura en el archivo de resultados. Mientras JMeter reporta este tiempo total bajo el nombre de transacción ExportSubnetwork Async (esto es genial porque proporciona estadísticas generales útiles sobre la función) no vincula fácilmente cada subred individual a su respectivo tiempo de respuesta.<\/SPAN><\/P>
<\/span><\/P>Groovy al Rescate (De Nuevo)<\/SPAN><\/H4>Calcular un único tiempo de respuesta para cada operación de subred puede lograrse en Groovy estableciendo un temporizador al inicio y al final del bucle asíncrono. Groovy simplemente calcula la diferencia y reporta el tiempo nuevamente a la prueba (como el cálculo del tamaño).<\/SPAN><\/P>
<\/span><\/P>Una mirada más cercana a la lógica Groovy:<\/P>\/\/ Capturar variables y algunos artefactos dinámicos para ensamblar la ruta del sistema de archivos de la salida exportSubnetwork
\/\/ Examinar el sistema de archivos de la salida exportSubnetwork en el disco
String outputUrl = vars.getObject("outputUrl"); \/\/ Capturado de la solicitud previa (exportSubnetwork)
String outputFormat = vars.getObject("outputFormat"); \/\/ Variable Definida por el Usuario
String subnetworkName = vars.getObject("SUBNETWORKNAME"); \/\/ Variable del Plan de Pruebas desde CSV
String serverName = vars.getObject("serverHostname"); \/\/ Variable Definida por el Usuario
String folderServiceName = vars.getObject("serviceName"); \/\/ Variable Definida por el Usuario
String startEpoch = vars.getObject("StartEpoch"); \/\/ Variable del Plan de Pruebas desde dentro del While Controller Async
String stopEpoch = vars.getObject("StopEpoch"); \/\/ Variable del Plan de Pruebas desde dentro del While Controller Async
File srvc = new File(folderServiceName);
String folderName = srvc.getParent(); \/\/ Aísla el nombre de la carpeta del servicio
String serviceName = srvc.getName(); \/\/ Aísla el nombre del servicio
String outputName = org.apache.commons.io.FilenameUtils.getBaseName(outputUrl); \/\/ Aísla el nombre del archivo de la salida exportSubnetwork
outputNamewExt = outputName + "." + outputFormat; \/\/ Re-agregar extensión de archivo
\/\/ Crear la ruta del sistema de archivos donde debería residir la salida; asumir que el directorio arcgisoutput está compartido con el usuario que ejecuta JMeter
\/\/ Usar "\\\\MyServer.domain.org\\arcgisoutput\\" si la variable serverName no es una máquina ArcGIS Server
String cifsPath = "\\\\" + serverName + "\\arcgisoutput\\" + folderName + "\\" + serviceName + "_MapServer\\" + outputNamewExt;
File file = new File(cifsPath);
long cifsFileSize=file.length(); \/\ Get size of exportSubnetwork output
long startEpochLong = Long.parseLong(startEpoch);
long stopEpochLong = Long.parseLong(stopEpoch);
long responseTimeMS = stopEpochLong-startEpochLong; \/\ Calcular un ***valor estimado del tiempo de respuesta*** de la solicitud previa (solo para exportSubnetwork asíncrono)
double oneKilobyte=1024.0
double cifsFileSizeKB=(cifsFileSize \/ oneKilobyte);
double cifsFileSizeKBRound=cifsFileSizeKB.round(2); \/\ Tamaño formateado amigable para usuario
double responseTimeSec = ((responseTimeMS/1000).round(2)); \/\ Convertir tiempo estimado en milisegundos a segundos
log.info("folderServiceName: " + folderServiceName);
log.info("outputUrl: " + outputUrl);
log.info("cifsPath: " + cifsPath);
log.info("cifs file.exists: " + file.exists().toString());
log.info("serverName: " + serverName + " subnetworkName: \"" + subnetworkName + "\" size: " + cifsFileSizeKBRound + " KB responseTimeEstimate: " + responseTimeSec + " segundos outputName: " + outputNamewExt); \/\ Escribir información en log JMeter
vars.putObject("outputFileSizeKB",cifsFileSizeKBRound); \/\ Poner valor calculado en variable para usar después
vars.putObject("responseTimeSec",responseTimeSec); \/\ Poner valor calculado en variable para usar después< /code >< /pre >< H1 id= "toc-hId--2136305488">Estrategias Adicionales< /SPAN >< /H1 >< H2 id= "toc-hId-480290064">Tiempo vs Recursos< /SPAN >< /H2 >< UL >< LI >< SPAN >< STRONG >Ejemplo restricción por tiempo< /STRONG >< /SPAN >< UL >< LI >< SPAN >Necesidad completar tarea dentro de una duración determinada (por ejemplo, exportar 5,000 subnetworks en 4 horas)< /SPAN >< UL >< LI >< SPAN >Cliente (JMeter) y servidor (ArcGIS Server) pueden trabajar juntos para ejercitar escalabilidad del despliegue< /SPAN >< UL >< LI >Cliente envía más solicitudes concurrentes, servidor responde acorde < UL >< LI >< STRONG >< U >El resultado final del tiempo total de ejecución es el análisis de escalabilidad< /U >< /STRONG >< /LI >< /UL >< /LI >< /UL >< /LI >< LI >< SPAN >Desde elemento Thread Group, aumentar número de Threads y periodo Ramp-up< /SPAN >< /LI >< /UL >< /LI >< LI >< SPAN >Consideraciones< /SPAN >< UL >< LI >< SPAN >Intensivo en recursos para CPU conforme se usan más instancias servicios< /SPAN >< UL >< LI >< SPAN >Servidores así como máquina cliente test< /SPAN >< /LI >< /UL >< /LI >< LI >< SPAN >Esta mayor tasa concurrencia podría impactar otros usuarios< /SPAN >< UL >< LI >< SPAN >Coordinar y programar adecuadamente< /SPAN >< /LI >< /UL >< /LI >< /UL >< /LI >< /UL >< /LI >< LI >< SPAN >< STRONG >Ejemplo restricción por recursos< /STRONG >< /SPAN >< UL >< LI >< SPAN >Configuración actual< /SPAN >< UL >< LI >< SPAN >Más flexible< /SPAN >< /LI >< /UL >< /LI >< LI >< SPAN >Recomendado para autoría inicial y depuración pruebas< /SPAN >< /LI >< LI >< SPAN >Tiempo total computación más largo< /SPAN >< /LI >< LI >< SPAN >Más indulgente con recursos< BR />< UL >< LI >< SPAN >Menos hilos concurrentes ejecución pruebas< /SPAN >< /LI >< LI >< SPAN >Requiere menos instancias servicios en Servidor< /SPAN >< /LI >< LI >< SPAN >Ahorra recursos memoria< /SPAN >Comprender cómo responde el sistema a esta carga mediante los números de tiempo de respuesta devueltos por ArcGIS Enterprise puede ayudar a determinar si la implementación podrá satisfacer sus necesidades de rendimiento.<\/P>Las pruebas creadas pueden ajustarse para cumplir con desafíos de tiempo (más concurrencia, mayor escalabilidad requerida) o recursos (sistemas con memoria limitada).<\/P>También se discutieron estrategias para analizar los resultados de las pruebas que incluían el uso del Informe Agregado en el Plan de Prueba JMeter para algunas estadísticas rápidas de rendimiento, así como graficar tiempos de respuesta individuales para mayor claridad visual.<\/P>Mientras que el proceso general para los Planes de Prueba Update Subnetwork y Export Subnetwork es similar, Export Subnetwork contenía una Transacción adicional que examinaba la salida resultante en ArcGIS Server usando Groovy para obtener el tamaño del archivo de cada subred.<\/P>Para descargar los Planes de Prueba Apache JMeter usados en este Artículo vea:UpdateSubnetwork1.zip<\/A><\/STRONG><\/LI>ExportSubnetwork1.zip<\/A><\/STRONG> <\/LI><\/UL><\/LI><\/UL>