ES2639781T3 - Sistema y método que facilitan la predicción del rendimiento de la aplicación multi-hilo en presencia de cuellos de botella de recursos - Google Patents

Sistema y método que facilitan la predicción del rendimiento de la aplicación multi-hilo en presencia de cuellos de botella de recursos Download PDF

Info

Publication number
ES2639781T3
ES2639781T3 ES14155094.7T ES14155094T ES2639781T3 ES 2639781 T3 ES2639781 T3 ES 2639781T3 ES 14155094 T ES14155094 T ES 14155094T ES 2639781 T3 ES2639781 T3 ES 2639781T3
Authority
ES
Spain
Prior art keywords
threads
service request
blocked
critical section
software
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES14155094.7T
Other languages
English (en)
Inventor
Subhasri Duttagupta
Rupinder Singh Virk
Manoj Karuna karan Nambiar
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tata Consultancy Services Ltd
Original Assignee
Tata Consultancy Services Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tata Consultancy Services Ltd filed Critical Tata Consultancy Services Ltd
Application granted granted Critical
Publication of ES2639781T3 publication Critical patent/ES2639781T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3447Performance evaluation by modeling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/048Fuzzy inferencing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Quality & Reliability (AREA)
  • Fuzzy Systems (AREA)
  • Automation & Control Theory (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Abstract

Un sistema para determinar el rendimiento de una aplicación de software multi-hilos en presencia de uno o más cuellos de botella de recursos, comprendiendo sistema: un procesador (202); y una memoria (208) acoplada al procesador (202), en donde el procesador (202) es capaz de ejecutar una pluralidad de módulos almacenados en la memoria (208), y en donde la pluralidad de módulos comprende: un módulo (212) de representación configurado para representar una red de filas de espera de hardware y una red de filas de espera de software para recursos empleados para ejecutar la aplicación de software multi-hilos, en donde las redes de filas de espera representa la contención para los recursos, y en donde los recursos comprenden recursos de hardware y recursos de software, en donde las redes de filas de espera son utilizadas para comprobar el número de hilos que acceden a la aplicación de software multi-hilos cuando se encuentra un cuello de botella de recursos; un módulo (214) de computación configurado para ejecutar una técnica iterativa con un valor predeterminado de la solicitud de servicio para desarrollar una relación entre la red de filas de espera de software y la red de filas de espera de hardware, en donde la relación comprende la utilización de los recursos de software con respecto a los recursos de hardware basándose en el valor predeterminado de la solicitud de servicio, y en donde la ejecución de la técnica iterativa comprende: obtener un número de hilos bloqueados en una sección crítica de los recursos de software basándose en el valor predeterminado de la solicitud de servicio, en donde los hilos bloqueados en la sección crítica son hilos que esperan entrar en la sección crítica; obtener un tiempo de residencia en cada uno de los recursos de hardware basándose en el valor predeterminado de la solicitud de servicio; actualizar una solicitud de servicio de sección crítica de una interacción actual para una solicitud de servicio de sección crítica actualizada para reflejar una espera para los recursos de hardware utilizando el tiempo de residencia, en donde la solicitud de servicio de sección crítica es actualizada de forma iterativa para tener en cuenta la contención de recursos en los recursos de hardware basándose en el tiempo de residencia; comparar el número de hilos bloqueados de la iteración actual con el número de hilos bloqueados de una iteración previa con el fin de comprobar si el número de hilos bloqueados de la interacción actual es más elevado que el número de hilos bloqueados de la iteración previa, y comprobar si la solicitud de servicio de sección crítica actualizada es más elevada que la solicitud de servicio de sección crítica de la iteración previa; e identificar una diferencia entre el número de hilos bloqueados en una sección crítica para la iteración actual y el número de hilos bloqueados en la sección crítica en la iteración previa; y ejecutar repetidamente la técnica iterativa 1) si la diferencia en el número de hilos bloqueados es mayor que un límite predefinido, 2) si el número de hilos bloqueados de la iteración actual es más elevado que el número de hilos bloqueados de la iteración previa y 3) si la solicitud de servicio de sección crítica actualizada es mayor que la solicitud de servicio de sección crítica de la iteración previa; de otro modo obtener las métricas de rendimiento con la solicitud de servicio de sección crítica actualizada para la aplicación de software multi-hilos cuando la diferencia en el número de hilos bloqueados es inferior que el límite predefinido, en donde el límite predefinido indica que la diferencia en el número de hilos bloqueados ha convergido sobre un número de iteraciones de la técnica iterativa, determinando por tanto un rendimiento de la aplicación de software multi-hilos.

Description

5
10
15
20
25
30
35
40
45
50
55
DESCRIPCION
Sistema y metodo que facilitan la prediccion del rendimiento de la aplicacion multi-hilo en presencia de cuellos de botella de recursos
Campo Tecnico
La presente descripcion se refiere en general a un metodo y sistema que predicen el rendimiento de una aplicacion multi-hilo. Mas particularmente, la presente descripcion se refiere a la prediccion del rendimiento de la aplicacion multi-hilo en presencia de cuellos de botella de recursos.
Antecedentes
En el sistema empresarial de multiples niveles tfpico, una aplicacion de software es accedida normalmente por un gran numero de usuarios. Debido al gran numero de usuarios, la probabilidad de cuellos de botella de recursos ha aumentado drasticamente. La presencia de cuellos de botella de recursos obstaculiza tfpicamente el rendimiento de la aplicacion de software. El cuello de botella puede ocurrir bien debido a los recursos de software o bien a los recursos de hardware. Con el fin de aumentar la escalabilidad del sistema empresarial de multiples niveles, los cuellos de botella de recursos debenan ser detectados mientras la aplicacion de software esta siendo probada.
La mayona de los sistemas empresariales de multiples niveles han empleado distintos metodos para identificar los cuellos de botella de recursos ya que los cuellos de botella de recursos pueden limitar el rendimiento total del sistema empresarial de multiples niveles. Los cuellos de botella de recursos son identificados solamente si los cuellos de botella de recursos ocurren explfcitamente durante la propia prueba de rendimiento o en una etapa muy posterior en un entorno de produccion. El modelado de la simulacion de eventos discretos es una de las aproximaciones bien conocidas utilizadas para predecir el rendimiento de la aplicacion de software. Sin embargo, el desarrollo de tal modelo de simulacion es un proceso que consume tiempo.
Un documento de la tecnica anterior (XP58231385) de Daniel A. Menasce titulado "Simple analytic modeling of software contention" describe una aproximacion general al modelado de contencion de software usando redes de filas de espera. La aproximacion es llamada como proceso iterativo de nivel dos de SQN HQN. Las redes de filas de espera representan recursos de software y recursos de hardware. Este documento proporciona una tecnica de modelado analftico simple para estimar el retraso de contencion de software. Sin embargo, cuando un gran numero de hilos estan accediendo a la aplicacion multi-hilos, la tecnica de este documento falla ya que este algoritmo entra en bucle infinito y falla para determinar el rendimiento de la aplicacion multi-hilos.
Otro documento de la tecnica anterior titulado "Bridging the gap between queuing based performance evaluation" describe el uso de redes de espera en cola de multiples clases durante la fase de especificacion del flujo de diseno para modelar sistemas orientados al flujo de datos. Se ha desarrollado un marco de evaluacion de arquitectura de plataforma llamado "systemQ" que se basa en redes de filas de espera, en donde SystemQ esta dirigido a la modelizacion y evaluacion de sistemas a partir de dominios orientados a flujos de datos tales como tratamiento de red.
Otra solicitud de patente US20110218786 describe un modelo de red de filas de espera de entorno de servicios web. El comportamiento de servicio se resume en tres fases en serie, en paralelo e inactivas. Se ha proporcionado un metodo para estimar los parametros del modelo basandose en la tecnica de aproximacion estocastica.
Otra solicitud de patente JP2000298593 describe la prediccion de un mdice de rendimiento para el grado paralelo de ordenadores paralelos en un entorno multitarea. Cuando la especificacion de un grado u ordenadores paralelos dado como entrada al sistema de prediccion de rendimiento, se genera un modelo sobre la base de esta especificacion, se calculan los valores de prediccion del mdice de rendimiento tales como el grado de mejora e indices de rendimiento mas detallados tales como el rendimiento, una respuesta y un recurso que utiliza la tasa a partir del modelo generado. Sin embargo, esta tecnica anterior falla al predecir el rendimiento cuando un gran numero de hilos comienza a acceder a la seccion cntica de la aplicacion multi-hilos.
Este compendio es proporcionado para introducir aspectos relacionados con el sistema o sistemas y metodos que facilitan la prediccion del rendimiento de una aplicacion multi-hilos en presencia de cuellos de botella de recursos y los aspectos son ademas descritos despues en la descripcion detallada.
La presente descripcion se refiere a un sistema segun la reivindicacion 1 independiente adjunta, para facilitar la prediccion de rendimiento de una aplicacion de software multi-hilos en presencia de cuellos de botella de recursos. El sistema comprende un procesador y una memoria acoplada al procesador. El procesador es capaz de ejecutar una pluralidad de modulos almacenados en la memoria. La pluralidad de modulos comprende un modulo de representacion configurado para representar una o mas redes de filas de espera para recursos empleados para ejecutar la aplicacion de software multi-hilos. Los recursos comprenden recursos de hardware y recursos de software. Las redes de filas de espera son una de una red de puesta en colas de hardware o una red de puesta en colas de software. Las redes de puesta en colas son utilizadas para detectar el nivel de concurrencia en el que se encuentra el cuello de botella de recursos mientras que accede a la aplicacion de software multi-hilos, en donde el
5
10
15
20
25
30
35
40
45
50
55
60
cuello de botella de recursos es el primer cuello de botella de recursos, en donde el cuello de botella de recursos es el primer cuello de botella de recursos, y en donde se detecta la concurrencia comprobando el numero de hilos que acceden a la aplicacion de software multi-hilos. La memoria almacena un modulo de computacion configurado para calcular unas metricas de rendimiento para la aplicacion de software multi-hilos. Las metricas de rendimiento comprenden uno o mas parametros. El modulo de computacion es configurado para utilizar una tecnica iterativa con un valor predeterminado de solicitud de servicio para desarrollar una relacion entre la red de filas de espera de software y la red de filas de espera de hardware, en donde la relacion comprende la utilizacion o comparticion de los recursos de software con respecto a los recursos de hardware con respecto al valor predeterminado de la solicitud de servicio. La ejecucion de la tecnica iterativa comprende, la obtencion de un numero de hilos bloqueados en una seccion cntica de los recursos de software basandose en el valor predeterminado de la solicitud de servicio, en donde los hilos bloqueados en la seccion cntica son hilos que esperan a entrar en la seccion cntica y obtener un tiempo de residencia en cada uno de los recursos de hardware basandose en el valor predeterminado de la solicitud de servicio. La ejecucion de la tecnica iterativa comprende ademas actualizar una solicitud de servicio de la seccion cntica de una iteracion actual a una solicitud de servicio de la seccion cntica actualizada para reflejar una espera para los recursos de hardware utilizando el tiempo de residencia. La solicitud de servicio de la seccion cntica es actualizada de manera iterativa para tener en cuenta la contencion de recursos en los recursos de hardware basandose en el tiempo de residencia. La ejecucion de la tecnica iterativa comprende ademas la comparacion del numero de hilos bloqueados de la iteracion actual con el numero de hilos bloqueados de una iteracion previa con el fin de comprobar si el numero de hilos bloqueados de la iteracion actual son mas elevados que el numero de hilos bloqueados de la iteracion previa, y comprobar si la solicitud de servicio de seccion cntica actualizada es mayor que la solicitud de servicio de seccion cntica de la iteracion previa. La ejecucion de la tecnica iterativa comprende ademas identificar una diferencia entre el numero de hilos bloqueados en una seccion cntica de la iteracion actual y el numero de hilos bloqueados en la seccion cntica en la iteracion previa.
La ejecucion de la tecnica iterativa comprende ademas ejecutar de manera repetida la tecnica iterativa 1) si la diferencia en el numero de hilos bloqueados es mayor que un lfmite predefinido, y 2) si el numero de hilos bloqueados de la iteracion actual es mayor que el numero de hilos bloqueados de la iteracion previa y 3) si la solicitud de servicio de seccion cntica actualizada es mayor que la solicitud de servicio de seccion cntica de la iteracion previa; de otro modo obtener las metricas de rendimiento con la solicitud de servicio de seccion cntica actualizada para la aplicacion de software multi-hilos cuando la diferencia en el numero de hilos bloqueados es inferior al lfmite predefinido, en donde el lfmite predefinido indica que la diferencia en el numero de hilos bloqueados ha convergido sobre varias iteraciones de la tecnica iterativa, determinando por lo tanto un rendimiento de la aplicacion de software multi-hilos. El modulo de computacion esta configurado para determinar uno o mas parametros en forma de un valor de rendimiento y un valor de tiempo de respuesta para la aplicacion de software multi-hilos segun la relacion, determinando por tanto el rendimiento de la aplicacion de software multi-hilos.
La presente descripcion se refiere tambien a un metodo segun la reivindicacion 9 independiente adjunta, para facilitar la prediccion de rendimiento de una aplicacion de software multi-hilos en presencia de cuellos de botella de recursos. El metodo comprende representar una o mas redes de filas de espera de recursos empleadas para ejecutar la aplicacion de software multi-hilos. Los recursos comprenden recursos de hardware y recursos de software. Las redes de filas de espera son de una red de filas de espera de hardware o una red de filas de espera de software. Las redes de espera en colas ayudan a detectar un nivel de concurrencia en el que se encuentra el cuello de botella de recursos mientras que accede a la aplicacion de software multi-hilos. El cuello de botella de recursos es el primer cuello de botella de recursos, y en donde la concurrencia es detectada comprobando el numero de hilos que acceden a la aplicacion de software multi-hilos. El metodo proporciona ademas metricas de rendimiento de computacion para la aplicacion de software multi-hilos. Las metricas de rendimiento comprenden uno o mas parametros. La computacion comprende utilizar una tecnica iterativa con un valor predeterminado de solicitud de servicio para desarrollar una relacion entre la red de filas de espera de software y la red de filas de espera de hardware, en donde la relacion comprende la utilizacion o comparticion de los recursos de software con respecto a los recursos de hardware con respecto al valor predeterminado de la solicitud de servicio y determinar uno o mas parametros en forma de un valor de rendimiento y un valor de tiempo de respuesta para la aplicacion de software multi-hilos segun la relacion, determinando por tanto el rendimiento de la aplicacion de software multi-hilos.
La ejecucion de la tecnica iterativa comprende, obtener un numero de hilos bloqueados en una seccion cntica de los recursos de software basandose en el valor predeterminado de la solicitud de servicio, en donde los hilos bloqueados en la seccion cntica son hilos que esperan a entrar en la seccion cntica y obtener un tiempo de residencia en cada uno de los recursos de hardware basandose en el valor predeterminado de la solicitud de servicio. La ejecucion de la tecnica iterativa comprende ademas actualizar una solicitud de servicio de seccion cntica de una iteracion actual a una solicitud de servicio de seccion cntica actualizada para reflejar una espera para los recursos de hardware utilizando el tiempo de residencia. La solicitud de servicio de seccion cntica es actualizada de manera iterativa para tener en cuenta la contencion de recursos en los recursos de hardware basandose en el tiempo de residencia. La ejecucion de la tecnica iterativa comprende ademas comparar el numero de hilos bloqueados de la iteracion actual con el numero de hilos bloqueados de una iteracion previa con el fin de comprobar si el numero de hilos bloqueados de la iteracion actual es mayor que el numero de hilos bloqueados de la iteracion previa, y comprobar si la solicitud de servicio de seccion cntica actualizada es mayor que la solicitud de servicio de seccion cntica de la iteracion previa. La ejecucion de la tecnica iterativa comprende ademas identificar una diferencia
entre el numero de hilos bloqueados en una seccion cntica de la iteracion actual y el numero de hilos bloqueados en la seccion cntica en la iteracion previa.
La ejecucion de la tecnica iterativa comprende ademas ejecutar de manera repetida la tecnica iterativa 1) si la diferencia en el numero de hilos bloqueados es mayor que un lfmite predefinido, y 2) si el numero de hilos 5 bloqueados de la iteracion actual es mayor que el numero de hilos bloqueados de la iteracion previa y 3) si la solicitud de servicio de seccion cntica actualizada es mayor que la solicitud de servicio de seccion cntica de la iteracion previa; de otro modo obtener las metricas de rendimiento con la solicitud de servicio de seccion cntica actualizada para la aplicacion de software multi-hilos cuando la diferencia en el numero de hilos bloqueados es inferior que el lfmite predefinido, en donde el lfmite predefinido indica que la diferencia en el numero de hilos 10 bloqueados ha convergido sobre una serie de iteraciones de la tecnica iterativa, determinando por tanto un rendimiento de la aplicacion de software multi-hilos.
La presente descripcion se refiere tambien a un producto de programa informatico segun la reivindicacion 11 independiente adjunta que ha incorporado en el un programa informatico para facilitar la prediccion de rendimiento de una aplicacion de software multi-hilos en presencia de cuellos de botella de recursos. El producto de programa 15 informatico comprende un codigo de programa para representar una o mas redes de filas de espera para recursos empleados para ejecutar la aplicacion de software multi-hilos. Los recursos comprenden recursos de hardware y recursos de software y las redes de filas de espera es una de una red de filas de espera de hardware o una red de filas de espera de software. Las redes de filas de espera son utilizadas para detectar un nivel de concurrencia en el que se encuentra el cuello de botella de recursos mientras que accede a la aplicacion de software multi-hilos en 20 donde el cuello de botella de recursos es el primer cuello de botella de recursos, y en donde la concurrencia es detectada comprobando el numero de hilos que acceden a la aplicacion de software multi-hilos. El producto de programa informatico comprende un codigo de programa para calcular unas metricas de rendimiento para una aplicacion de software multi-hilos. Las metricas de rendimiento comprenden uno o mas parametros. El codigo de programa para calcular comprende un codigo de programa para utilizar n tecnica iterativa con un valor 25 predeterminado de solicitud de servicio para desarrollar una relacion entre la red de filas de espera de software y la red de filas de espera de hardware, en donde la relacion comprende la utilizacion o comparticion de los recursos de software con respecto a los recursos de hardware con respecto al valor predeterminado de la solicitud de servicio. El producto de programa informatico comprende un codigo de programa para determinar uno o mas parametros en forma de un valor de rendimiento y un valor de tiempo de respuesta para la aplicacion de software multi-hilos, 30 determinando por tanto el rendimiento de la aplicacion de software multi-hilos.
Breve Descripcion de los Dibujos
La descripcion detallada es descrita con referencia a las figuras adjuntas. En las figuras, el dfgito o dfgitos mas a la izquierda de un numero de referencia identifica la figura en la cual el numero de referencia aparece en primer lugar. Los mismos numeros son utilizados a lo largo de los dibujos para referirse a caractensticas y componentes 35 similares.
La fig. 1 ilustra una implementacion de red de un sistema que facilita la prediccion de rendimiento de una aplicacion multi-hilos en presencia de cuellos de botella de recursos mostrados, segun una realizacion del presente objeto.
La fig. 2 ilustra el sistema que facilita la prediccion de rendimiento de una aplicacion multi-hilos en presencia de cuellos de botella de recursos, segun una realizacion del presente objeto.
40 La fig. 3 ilustra un metodo que facilita la prediccion de rendimiento de una aplicacion multi-hilos en presencia de cuellos de botella de recursos, segun una realizacion del presente objeto.
La fig. 4 ilustra una red de filas de espera de software y una red de filas de espera de hardware segun una realizacion del presente objeto.
La fig. 5 ilustra unas metricas de rendimiento en el caso en donde las secciones cntica y no cntica son del mismo 45 tamano segun una realizacion del presente objeto.
La fig. 6 ilustra unas metricas de rendimiento en un caso en donde la solicitud de servicio de la seccion no cntica es mas de dos veces la solicitud de servicio de la seccion cntica segun una realizacion ejemplar del presente objeto.
La fig. 7 ilustra unas metricas de rendimiento para solicitudes de multiples clases segun una realizacion ejemplar del presente objeto.
50 La fig. 8 ilustra unas metricas de rendimiento para la agrupacion de recursos segun una realizacion ejemplar del presente objeto.
Descripcion Detallada
Aunque los aspectos del sistema y metodos descritos para facilitar la prediccion de rendimiento de una aplicacion multi-hilos en presencia de cuellos de botella de recursos pueden ser implementados en cualquier numero de
5
10
15
20
25
30
35
40
45
50
55
diferentes sistemas informaticos, entornos, y/o configuraciones, las realizaciones son descritas en el contexto del siguiente sistema ejemplar.
Con referencia ahora a la fig. 1, se muestra una implementacion de red 100 del sistema 102 para facilitar la prediccion de rendimiento de una aplicacion multi-hilos en presencia de cuellos de botella de recursos. Multiples redes de filas de espera son representadas por el sistema 102. Las multiples redes de filas de espera comprenden una red de filas de espera de hardware y una red de filas de espera de software. Las redes de filas de espera son utilizadas para detectar un nivel de concurrencia en el que se encuentran los cuellos de botella de recursos mientras que accede a la aplicacion multi-hilos. Utilizando un valor de solicitud de servicio predeterminado, unas metricas de rendimiento son calculadas segun la relacion entre la red de filas de espera de hardware y la red de filas de espera de software. Las metricas de rendimiento comprenden uno o mas parametros. Uno o mas parametros predicen el rendimiento de la aplicacion multi-hilos.
Aunque el objeto actual es explicado considerando que el sistema 102 es implementado como una aplicacion sobre un servidor, puede entenderse que el sistema 102 puede ser implementado tambien en una variedad de sistemas informaticos, tales como un ordenador portatil, un ordenador de sobremesa, un portatil, una estacion de trabajo, un ordenador central, un servidor, un servidor de red, y similares. En una implementacion, el sistema 102 puede ser implementado en un entorno basado en la nube. Se entendera que el sistema 102 puede ser accedido por multiples usuarios a traves de uno o mas dispositivos de usuario 104-1, 104-2... 104-N, referidos colectivamente como usuario 104 en lo sucesivo, o aplicaciones que residen sobre los dispositivos de usuario 104. Ejemplos de los dispositivos de usuario 104 pueden incluir, pero no estan limitados a, un ordenador portatil, un asistente digital personal, un dispositivo manual, y una estacion de trabajo. Los dispositivos de usuario 104 son acoplados de manera comunicativa al sistema 102 a traves de una red 106.
En una implementacion, la red 106 puede ser una red inalambrica, una red cableada, o una combinacion de las mismas. La red 106 puede ser implementada como uno de los diferentes tipos de redes, tal como intranet, red de area local (LAN), red de area amplia (WAN), Internet, y similares. La red 106 puede o bien ser una red dedicada o bien una red compartida. La red compartida representa una asociacion de diferentes tipos de redes que utiliza una variedad de protocolos, por ejemplo, Protocolo de Transferencia de Hipertexto (HTTP), Protocolo de Control de Transmision/Protocolo de Internet (TCP/IP), Protocolo de Aplicacion Inalambrica (WAP), y similares, para comunicar entre sf. Ademas la red 106 puede incluir una variedad de dispositivos de red, incluyendo routers, puentes, servidores, dispositivos informaticos, dispositivos de almacenamiento, y similares.
Con referencia ahora a la fig. 2, el sistema 102 es ilustrado segun una realizacion del presente objeto. En una realizacion, el sistema 102 puede incluir al menos un procesador 202, una interfaz 204 de entrada/salida (I/O), una memoria 208. Al menos un procesador 202 puede ser implementado como uno o mas microprocesadores, microordenadores, micro-controladores, procesadores de senal digital, unidades de tratamiento central, maquinas de Estado, circuitos logicos, y/o cualesquiera dispositivos que manipulan senales basandose en instrucciones operacionales. Entre otras capacidades, al menos un procesador 202 es configurado para buscar y ejecutar instrucciones legibles por ordenador almacenadas en la memoria 208.
La interfaz 204 de I/O puede incluir una variedad de interfaces de software y hardware, por ejemplo, una interfaz web, una interfaz de usuario grafica, y similares. La interfaz 204 de I/O puede permitir al sistema 102 interactuar con un usuario directamente o a traves del dispositivo de cliente 104. Ademas, la interfaz 204 de I/O puede habilitar el sistema 102 para comunicar con otros dispositivos informaticos, tales como servidores web y servidores de datos externos (no mostrados). La interfaz 204 de I/O puede facilitar multiples comunicaciones dentro de una amplia variedad de tipos de redes y protocolos, incluyendo redes cableadas, por ejemplo, LAN, cable, etc., y redes inalambricas, tales como WLAn, celular, o satelite. La interfaz 204 de I/O puede incluir uno o mas puertos para conectar un numero de dispositivos entre sf o a otro servidor.
La memoria 208 puede incluir cualquier medio legible por ordenador conocido en la tecnica incluyendo, por ejemplo, memoria volatil, tal como memoria de acceso aleatorio estatica (SRAM) y memoria de acceso aleatorio dinamica (DRAM); y/o memoria no volatil, tal como memoria de solo lectura (ROM), ROM programable que se puede borrar, memorias flash, discos duros, discos opticos, y cintas magneticas. La memoria 208 puede incluir modulos 210 y datos 212.
Los modulos 210 incluyen rutinas, programas, objetos, componentes, estructuras de datos, etc., que realizan tareas particulares, funciones o implementan tipos de datos abstractos particulares. En una implementacion, los modulos 210 pueden incluir un modulo de representacion 212 y un modulo de computacion 214. Los otros modulos 216 pueden incluir programas o instrucciones codificadas que complementan aplicaciones y funciones del sistema 102.
Los datos 218, entre otras cosas, sirven como un repositorio para almacenar datos procesados, recibidos, y generados por uno o mas de los modulos 216. Los datos 218 pueden incluir tambien una base de datos 220, y otros datos 224. Los otros datos 224 pueden incluir datos generados como resultado de la ejecucion de uno o mas modulos en el otro modulo 216.
La presente descripcion se refiere a un sistema o sistemas y metodos que facilitan la prediccion de rendimiento de la
5
10
15
20
25
30
35
40
45
50
55
aplicacion multi-hilos en presencia de cuellos de botella de recursos. La red de filas de espera de software y una red de filas de espera de hardware son utilizadas para detectar la presencia de cualquier cuello de botella mientras que se accede a la aplicacion. Un valor de servicio predeterminado es utilizado para calcular unas metricas de rendimiento. Uno o mas parametros de metricas de rendimiento como el relativo a la aplicacion multi-hilos, tiempo de respuesta y utilizacion de recursos individuales predice el rendimiento de la aplicacion multi-hilos.
Las redes de filas de espera asf representadas por el modulo de representacion 112 se refieren a modelos analtticos. Los modelos analtticos son aproximaciones matematicas de un sistema mundial real y pueden ser utilizados para predecir ciertos comportamientos de uno o mas sistemas que son modelados. La red de filas de espera (o modelos de filas de espera) recibida y utilizada aqrn predice el comportamiento de la aplicacion multi-hilos en terminos de diferentes medidas relacionadas con el rendimiento (metricas de rendimiento). Estas medidas pueden incluir pero no estan limitadas a una cantidad esperada de tiempo de espera. El tiempo esperado se refiere a que un objeto dado se gastara dentro de una cola antes de ser procesado. Las medidas relacionadas con el rendimiento incluyen ademas un numero de objetos esperado dentro de una cola en un instante particular, una probabilidad de que cualquier cola este vada, un tiempo de servicio para un tipo particular de objeto, o similares. Los modelos analtticos (modelos de filas de espera o redes de filas de espera) son utilizados frecuentemente para predecir si el sistema particular (aqrn la aplicacion multi-hilos) sera capaz de cumplir con la calidad establecida de las metricas de servicio, tal como el tiempo de respuesta.
El sistema y metodos presentes predicen el rendimiento de una aplicacion multi-hilos que es accedida por multiples usuarios. La aplicacion multi-hilos puede estar dividida en una seccion cntica y una seccion no cntica. Una seccion de un codigo que puede ser ejecutado solamente por uno de muchos hilos concurrentes se conoce como seccion cntica. En general, un acceso a una seccion cntica es controlado por un bloqueo o semaforo. La seccion restante de la aplicacion multi-hilos que puede ser ejecutada simultaneamente por cualquier numero de hilos concurrentes se conoce como seccion no cntica.
Los cuellos de botella de recursos pueden ocurrir bien debido a recursos de hardware o bien a recursos de software. El sistema y metodo facilitan la busqueda del numero de usuarios que acceden a la aplicacion multi-hilos cuando es encontrado el primer cuello de botella. El primer cuello de botella puede ocurrir bien debido a la limitacion de recursos de hardware o bien a la restriccion de recursos de software. Las aplicaciones multi-hilos pueden tener comunicaciones de mensajes smcrona o asmcrona.
El sistema 102 toma las siguientes presunciones mientras que predice el rendimiento de la aplicacion multi-hilos:
- El sistema 102 esta en estado estacionario. El analisis de acceso de la aplicacion multi-hilos no es valido para ningun comportamiento transitorio del sistema.
- Todo los que espera para un recurso de software se implementa solamente a traves de construcciones de sincronizacion explfcitas.
- La aplicacion multi-hilos puede tener un numero de secciones cnticas pero puede tener solamente una seccion no cntica. La seccion no cntica representa toda la parte del codigo sin ninguna de las secciones cnticas.
Ejemplos no limitativos de la aplicacion multi-hilos comprenden las aplicaciones escritas en lenguajes de programacion con construcciones de sincronizacion explfcitas como en C, C++, Java. En aplicaciones escritas en lenguajes de programacion es posible conocer la porcion exacta del codigo que es sincronizado.
La memoria 108 almacena el modulo 112 de representacion configurado para representar las redes de filas de espera para recursos empleados para ejecutar la aplicacion multi-hilos. Las redes de filas de espera estan formadas para modelar la contencion para recursos de software y hardware. Las redes de filas de espera estan formadas para detectar un nivel de concurrencia en el que el cuello de botella (primer cuello de botella de recursos) es encontrado mientras se accede a la aplicacion multi-hilos. La concurrencia es detectada comprobando el numero de hilos que acceden a la aplicacion de software multi-hilos.
El modulo 112 de representacion representa la red de filas de espera de hardware y la red de filas de espera de software. La red de filas de espera de hardware que representa todos los recursos hardware. Los recursos de hardware comprenden una CPU (Unidad de Tratamiento Central), una memoria, un disco o una combinacion de los mismos. La red de filas de espera de software representa modulos de software correspondientes a las secciones cntica y no cntica. Los recursos de software comprenden los modulos de software.
En las redes de filas de espera, los usuarios son representados como clientes y denominados como hilos. La red de filas de espera de software consiste de dos tipos de recursos de software: recursos de demora y recursos de filas de espera. El recurso de demora corresponde con el codigo de seccion no cntica (NCS). Como en la seccion no cntica, no existe contencion ni suceden colas antes de que se ejecute el modulo de software. Los recursos de filas de espera corresponden con las secciones cnticas (CS) que son delimitadas por construcciones de sincronizacion. La aplicacion multi-hilos puede tener cualquier numero de secciones cnticas. La SQN puede consistir de una seccion no cntica y un numero de secciones cnticas.
5
10
15
20
25
30
35
40
45
50
Mientras un hilo (es decir el usuario) esta utilizando un recurso de software, utiliza tambien recursos ffsicos tales como CPU y discos. La red de filas de espera asociada con los recursos ffsicos es denominada red de filas de espera de hardware (HQN). Asf los usuarios en la HQN son usuarios que estan utilizando los recursos ffsicos debido a la ejecucion de modulos de software.
La fig. 4 ilustra la red de filas de espera de software que consiste de una seccion o cfftica y dos componentes de seccion cfftica. Todos los modulos de software son representados utilizando rectangulos mientras que todos los servidores son representados utilizando drculos. En la HQN, los usuarios pueden acceder a un servidor de CPU y cualquiera de los dos servidores de disco. Las dos capas de la red de filas de espera conducen a las siguientes observaciones importantes:
1. El tiempo gastado en las secciones no cffticas y cfftica depende de la contencion en los recursos ffsicos, por ejemplo, CPU y disco.
2. El numero de usuarios en la red de filas de espera de hardware, que luchan por los recursos ffsicos, es igual al numero de hilos concurrentes que no estan bloqueados esperando a entrar en una seccion cfftica. Como los hilos bloqueados estan en reposo, no estan presentes en la cola HQN.
Con referencia a una la fig. 4, con el fin de reducir la complejidad, se han hecho presunciones. A modo de un ejemplo no limitativo, la CPU de recursos de hardware y disco son considerados con la asuncion de que estan dentro de las secciones cffticas, solamente las operaciones de calculo y IO son realizadas y no tiene lugar comunicacion de mensajes.
El modulo 112 de computacion es configurado para calcular unas metricas de rendimiento para la aplicacion multi- hilos resolviendo la red de filas de espera de software y la red de filas de espera de hardware utilizando una tecnica iterativa con una solicitud de servicio predeterminada. Las metricas de rendimiento comprenden uno o mas parametros. Los uno o mas parametros predicen el rendimiento de la aplicacion multi-hilos en presencia de cuellos de botella de recursos.
El modulo 112 de computacion utiliza la solicitud de servicio predeterminada para desarrollar una relacion entre la red de filas de espera de software y la red de filas de espera de hardware. La relacion comprende la utilizacion o comparticion de los recursos de software con respecto a los recursos de hardware con respecto al valor predeterminado de la solicitud de servicio.
El modulo 112 de computacion ejecuta un teorema de analisis de valor medio (metodologfa) como la tecnica iterativa sobre la solicitud de servicio predeterminada. El teorema de analisis de valor medio es utilizado para derivar las caracteffsticas de rendimiento en forma de las metricas de rendimiento segun la relacion entre la red de filas de espera de hardware y la red de filas de espera de software.
El modulo 112 de computacion ejecuta el teorema de analisis de valor medio para estimar el rendimiento de la aplicacion multi-hilos en presencia de N usuarios concurrentes.
Mientras se resuelven las redes de filas de espera, se han hecho las siguientes presunciones:
1. La solicitud de servicio predeterminada de todos los recursos de hardware en cada uno de los niveles de una aplicacion multi-hilos es capturada. La solicitud de servicio predeterminada de un recurso de hardware (por ejemplo, CPU) para un modulo de software se refiere a la cantidad de tiempo de CPU requerido para ejecutar el modulo espedfico.
2. La solicitud de servicio predeterminada de todos los eventos de sincronizacion es capturada. Esto puede ser conseguido a traves de la instrumentacion de las creaciones de sincronizacion utilizadas por la aplicacion. Los eventos de Sincronizacion incluyen metodos sincronizados, bloque de codigo con palabras clave sincronizadas, barreras, que adquieren seguido por la liberacion de un bloqueo, variables condicionales. Un metodo que pertenece a una clase puede ser declarado sincronizado. De manera similar un bloque de codigo puede ser prefijado por una palabra clave sincronizada para marcar como seccion sincronizada. Para una barrera, si un hilo llega a la barrera, esperara hasta que todos los hilos lleguen a ese punto de sincronizacion. En caso de una variable de condicion, un hilo espera hasta que otro hilo llama a la senal sobre la misma variable de condicion.
Esto supone ademas que solo hay dos modulos en la capa de software, una seccion cfftica y una seccion no cfftica. Las solicitudes de CPU de estas secciones son indicadas por Dcs,cpu y Dncs,cpu respectivamente. La solicitud de servicio de CPU total es obtenida anadiendo estos dos valores. Esta solicitud es utilizada en la red de filas de espera de hardware.
a. Dcpu = Dcs,cpu + Dncs,cpu (1a)
En una maquina multi-nucleo con C nucleos, la seccion cfftica puede ejecutarse solamente sobre un nucleo a la vez mientras que la seccion no cfftica puede ejecutarse sobre varios nucleos. Por tanto, la solicitud de CPU para la red de filas de espera de hardware es modificada como sigue:
5
10
15
20
25
30
35
40
45
50
a. Dcpu - Dcs,cpu + Dncs,cpu/c (1b)
Ademas, durante la ejecucion en la seccion cntica, un hilo puede acceder tambien al disco para hacer alguna operacion de lectura y escritura. Asf, la solicitud para la seccion cntica y la seccion no cntica incluye tanto solicitud debida a CPU, como a disco. La solicitud de recursos total para la seccion cntica es indicada por DCS y consiste de la solicitud debida a CPU y a disco.
a. Dcs - Dcs,cpu + Dcs,Disk (2)
Existe una relacion similar para la solicitud de servicio de la seccion no cntica. El modulo 112 de computacion considera tambien un tiempo de residencia. El tiempo de residencia es el tiempo total gastado por un hilo en un recurso ffsico y es indicado por Rcpu (para la CPU) y RDisk (para el disco).
Los pasos realizados por el modulo de computacion mientras que se ejecuta el teorema de analisis del valor medio son explicados a continuacion:
El modulo 112 de computacion esta configurado para utilizar la solicitud de servicio predeterminada de la seccion cntica y la seccion no cntica y guardar los valores iniciales como Dcs,cpu y Dncs,cpu. Indican el numero de hilos bloqueados en CS por Bcs y se inicializan a cero.
El modulo 112 de computacion esta configurado para resolver la red de filas de espera de software con las solicitudes de servicio predeterminadas de todas las secciones cnticas y secciones no cnticas. El numero de clientes (usuarios o hilos) en la capa de software es el mismo que el numero de usuarios en el sistema de acceso.
El modulo 112 de computacion esta configurado para obtener el numero de hilos bloqueados en la seccion cntica BCS. Retener este valor para compararlo con el numero de hilos bloqueados en la siguiente iteracion.
En el siguiente paso, el numero de clientes en la red de filas de espera de hardware es tomado como el numero de hilos que no estan bloqueados en la seccion cntica (N-Bcs). Resolver la red de filas de espera de hardware y obtener el tiempo de residencia de cada uno de los recursos de hardware tales como Rcpu y RDisk.
El modulo 112 de computacion esta configurado para actualizar la solicitud de servicio predeterminada de los modulos de software para reflejar la espera para los recursos de hardware como sigue:
a. Dcs,cpu - Rcpu * Dcs,cpu/(Dcs,cpu + Dncs,cpu)
b. Dncs,cpu - Rcpu * Dncs,cpu/(Dcs,cpu + Dncs,cpu)
Asf, la solicitud de servicio de la seccion cntica es ajustada de forma iterativa para tener en cuenta la contencion de recursos en los recursos de hardware.
El modulo de computacion comprueba si Dcs,cpu < Dics,cpu. Este paso impide que la solicitud de seccion cntica sea inferior que la solicitud inicial. Si es cierto, entonces se obtiene la solucion final.
El modulo 112 de computacion encuentra una diferencia entre el numero de hilos bloqueados en la seccion cntica en esta iteracion BCS y en la iteracion previa Bics. Si la diferencia entre Bcs y Bics es menor que un lfmite espedfico (o un valor predeterminado) (|Bcs - Bcs|<£) donde £ es un numero pequeno o Bics > Bcs, a continuacion se obtiene la solucion final; de otro modo asigna Bics - Bcs, y vuelve atras al Paso 2 es decir otra vez a resolver la red de filas de espera de software con las solicitudes de servicio predeterminadas de todas las secciones cnticas y las secciones no cnticas. Epsilon (el valor predeterminado) incluye un numero decimal pequeno menor que 1. Epsilon indica que el error en el numero de hilos bloqueados se ha estabilizado o ha convergido sobre un numero de iteraciones. El valor de epsilon puede ser tomado como 0,005.
El modulo 112 de computacion calcula un valor Xest de rendimiento final de la red de filas de espera de software y de la red de filas de espera de hardware. El tiempo de respuesta medio del sistema individual es obtenido utilizando la ley de Little. La ley de Little dice que si N es el numero de clientes en los sistemas y X es el rendimiento, R es el tiempo de respuesta y Z es el tiempo de pensar utilizado para las solicitudes, entonces existe la siguiente relacion entre estos parametros.
N - X *(R+Z)
A continuacion se estima la utilizacion de la CPU, el disco y cualquier otro de los recursos de hardware. Para una maquina de multiples nucleos, la utilizacion de la CPU media por un nucleo es obtenida desde el rendimiento estimado y la solicitud de servicio de CPU total como se ha dado en la ecuacion (1a).
Ucpu - (Dcpu x Xest)/C (3)
Dada la solicitud de servicio predeterminada de todas las secciones cnticas y la seccion no cntica, el algoritmo del analisis del valor medio anterior es utilizado para obtener el rendimiento del sistema hasta que el rendimiento se
5
10
15
20
25
30
35
40
satura.
El sistema 102 es configurado para validar con solicitudes de multiples clases donde las solicitudes de usuarios pertenecen a multiples clases y cada una de las clases de solicitudes tiene su propio modulo de software que puede contener una seccion cntica. En la prediccion de rendimientos de multiples clases, dos hilos pueden estar simultaneamente dentro de sus secciones cnticas. Ademas, las secciones cnticas que pertenecen a diferentes clases pueden tener diferentes solicitudes de servicios. Ademas en una maquina de multiples nucleos, las secciones no cnticas de todas las clases pueden ejecutarse simultaneamente sobre diferentes nucleos.
El sistema 102 es configurado para predecir el rendimiento de la aplicacion multi-hilos donde se utiliza la agrupacion de recursos. La agrupacion de recursos se refiere a casos donde un recurso compartido es un grupo de recursos. Ejemplos no limitativos son un grupo de conexion de DB o un grupo de hilos. El grupo de hilos se refiere a un numero de hilos creados por un servidor de aplicacion para manejar solicitudes de usuarios concurrentes. En un instante un unico hilo sirve exclusivamente a un usuario. De manera similar el grupo de conexion de base de datos se refiere a una memoria cache de conexiones de base de datos creada para ejecutar comandos sobre DB de manera mas eficiente.
El tamano del grupo indica el numero maximo de recursos compartidos que pueden ser utilizados en un momento dado. Por lo tanto, el numero maximo de hilos que puede utilizar el recurso es igual al tamano del grupo. Mientras se configura el sistema para la prediccion de rendimiento de la aplicacion multi-hilos para recursos agrupados, el grupo de recursos es modelado como un multi-servidor en la red de filas de espera de software y la solicitud de recurso corresponde a la de una seccion cntica de un unico hilo.
El sistema 102 proporciona una solucion para predecir el rendimiento de la aplicacion multi-hilos en presencia de la aplicacion calculando unas metricas de rendimiento. La solucion en terminos de metricas de rendimiento converge. Las tres condiciones para las cuales la solucion proporcionada por el sistema 102 puede converger son:
1. La solicitud de servicio predeterminada de la seccion cntica no puede ser menor que la solicitud de servicio inicial antes de pasar a traves de los pasos iterativos.
2. Despues de unas pocas iteraciones iniciales, el numero de hilos bloqueados puede no reducirse a partir de las iteraciones previas.
3. La diferencia en el numero de hilos bloqueados entre una nueva iteracion y una iteracion previa es menor que un numero pequeno.
Si se satisfacen estas condiciones, el modulo 112 de computacion no puede realizar los pasos iterativos y puede realizar un paso final de calculo de metricas de rendimiento.
El sistema 102 esta configurado para predecir el rendimiento del programa de java multi-hilos utilizado como la aplicacion multi-hilos con secciones cnticas. Se asume que el programa de java tiene una unica seccion cntica y una unica seccion no cntica. La solicitud de servicio predeterminada ha sido variada para cada seccion y se observa la escalabilidad de la aplicacion multi-hilos con el numero de usuarios.
Los resultados obtenidos para distintas configuraciones de servicios estan recogidos a continuacion:
Tabla 1 Categonas de servidor para aplicacion de muestreo
Categona de servidor
Caractensticas
Servicios de rango elevado
8 nucleos CPU 2,66 GHz Xeon con cache L2 de 1Mb, RAM ffsica de 8 Gb
Servicios de rango medio
Cuatro nucleos AMD Opteron CPU 2,19 GHz con cache L2 de 2MB, RAM de 4 GB
Servicios de rango bajo
Intel ® Doble Nucleo CPU 2,33 GHz con Cache de 4MB, RAM de 2 GB
La prediccion de rendimiento implicaba modulos de software que hacen uso principalmente de la CPU como recurso de hardware lo que significa que los modulos de software realizan el calculo y no son realizadas actividades de disco o de red. Se consideran tres diferentes combinaciones de secciones cntica y no cntica
Escenario 1: La seccion cntica y la seccion no cntica estan realizando operaciones similares de tal manera que sus solicitudes de servicio (solicitud de servicio predeterminada) son casi las mismas.
Escenario 2: La seccion cntica realiza dos veces la cantidad de operaciones comparado con la seccion no cntica. Por lo tanto la solicitud de servicio de la seccion cntica es mas de dos veces la de la solicitud de servicio de la seccion no cntica.
5
10
15
20
25
30
35
40
45
50
55
Escenario 3: La solicitud de servicio de la seccion no cntica es el doble de la cantidad que la solicitud de servicio de la seccion cntica.
En cada uno de los escenarios listados anteriormente, el programa de java es accedido por usuarios concurrentes y el rendimiento del programa es observado cuando la concurrencia es variada. El rendimiento es expresado como el numero de iteraciones completadas por unidad de tiempo (por segundo). En iteracion, el programa ejecuta una vez la seccion cntica y la seccion no cntica. En cada uno de los casos, la CPU es el unico recurso de hardware que es considerado. Durante el intervalo de prueba, se miden el rendimiento medio, el tiempo de respuesta de la aplicacion y la utilizacion de la CPU. El rendimiento es medido durante todo el intervalo de prueba y el tiempo de respuesta es tomado como el tiempo medio tomado para completar una iteracion del programa que consiste de una seccion cntica y una seccion no cntica.
A modo de ejemplo no limitativo, la fig. 5 ilustra la prediccion de rendimiento es explicada para un caso donde las secciones cntica y no cnticas son del mismo tamano. El modulo de computacion calcula unas metricas de rendimiento calculando un valor de rendimiento. El valor de rendimiento se satura debido al cuello de botella de la seccion cntica a 2000 usuarios y la utilizacion de la CPU media no va mas alla del 67%. A 3000 usuarios, el valor de rendimiento predicho asf es 1327 iteraciones por segundo mientras que el valor de rendimiento real es 1360 iteraciones por segundo.
A modo de otro ejemplo no limitativo, la fig. 6 ilustra la prediccion de rendimiento de la aplicacion multi-hilos donde las secciones cnticas y no cnticas son de diferentes tamanos. Aqm, los hilos (usuarios o clientes) gastan diferente cantidad de tiempo en la seccion cntica y en la seccion no cntica. Considerando el escenario 3 (como se ha descrito anteriormente), sobre un servidor de rango medio donde la solicitud de servicio de la seccion no cntica es dos veces el de la seccion cntica. La fig. 6 ilustra el valor de rendimiento predicho y real de la aplicacion multi-hilos y la utilizacion de la CPU.
Se observa que el rendimiento predicho esta dentro de una imprecision del 10-15% del rendimiento real. Para 2000 usuarios, el rendimiento se satura a 890 iteraciones/s y la utilizacion de la CPU es del 73%. Los valores predichos son 825 iteraciones/s y del 67%. La diferencia en los valores observados y predichos es atribuida a la solicitud de servicio elevada estimada utilizando una unica prueba de usuario de la aplicacion. El sistema es configurado tambien para predecir el rendimiento de la aplicacion multi-hilos en situaciones donde las operaciones dentro de la seccion cntica no solamente utilizan la CPU sino tambien realizan operaciones de I/O sobre el disco.
A modo de otro ejemplo no limitativo, la fig. 7 ilustra la prediccion de rendimiento de la aplicacion multi-hilos donde las secciones cnticas tienen solicitud de multiples clases. En este caso, las solicitudes procedentes de usuarios pertenecen a multiples clases y cada clase de solicitud tiene su propio modulo de software que puede contener una seccion cntica. En este caso solamente dos clases de solicitudes son consideradas y las secciones cnticas que pertenecen a diferentes clases tienen diferentes solicitudes. La fig. 7 ilustra el rendimiento predicho para clases individuales y la utilizacion de CPU total desde diferentes solicitudes.
En este escenario, ambas solicitudes utilizan el mismo numero de usuarios. Por ejemplo, cuando 500 usuarios estan accediendo a la solicitud de clase 1, otros 500 usuarios estan accediendo a la solicitud de clase 2. La seccion cntica CS1 de clase 1 tiene solicitud de servicio de 0,50 ms y la seccion cntica CS2 de clase 2 tiene solicitud de servicio de 1,9 ms. Ya que la seccion cntica de clase 2 tiene solicitud mas elevada, alcanza la saturacion mas pronto a 500 usuarios mientras que la seccion cntica de clase 1 continua para tener un rendimiento mas elevado hasta 1200 usuarios. A partir de la fig. 7, puede verificarse que en el escenario de multiples clases tambien, el sistema 102 es capaz de predecir el rendimiento para clases individuales y la utilizacion total de la CPU. Sin embargo, el rendimiento predicho y la utilizacion para la clase 2 son aproximadamente el 10% mas elevados que el rendimiento y la utilizacion reales. Esto es debido a una mayor solicitud de servicio estimada utilizando la rutina de temporizador alrededor de una seccion cntica. El sistema 102 se atribuye a la solicitud de servicio mas elevada calculada para secciones cnticas. La solicitud de servicios obtenida a traves de la instrumentacion del codigo de programa correspondiente con el bloque de sincronizacion. Uno o mas modulos capturan el tiempo de inicio y el tiempo de fin del bloque de sincronizacion para obtener la solicitud de servicios.
A modo de otro ejemplo no limitativo, la fig. 8 ilustra la prediccion de rendimiento de la aplicacion multi-hilos donde las secciones cnticas tienen agrupacion de recursos. El tamano del grupo de recursos de 50 y 100 son utilizados y el numero de usuarios es variado. La solicitud de servicios para la agrupacion de recursos es tomada como 13 ms que es relativamente mas elevado comparado con los experimentos anteriores. Esto es para restringir el numero de usuarios, se incrementa.
La fig. 8 muestra el rendimiento total de la agrupacion de recursos completa y por utilizacion de nucleo de CPU cuando el numero de usuarios es variado sobre un servidor de rango medio. Puede observarse que el rendimiento y la utilizacion predichos por el sistema 102 indican los valores reales. Debido a multiples recursos en la agrupacion, el rendimiento es encontrado mucho mas elevado en este caso y la aplicacion aumenta tambien a un numero mas elevado de usuarios.
Ademas, el metodo puede ser implementado en cualquier hardware, software, firmware o combinacion de los
mismos adecuada. Sin embargo, para facilitar la explicacion, en las realizaciones descritas a continuacion, el metodo 300 puede ser considerado para ser implementado en el sistema 102 descrito anteriormente.
En el bloque 302, una o mas redes de filas de espera son representadas para recursos empleados para ejecutar la aplicacion multi-hilos para detectar un nivel de concurrencia en el cual los cuellos de botella de recursos son 5 encontrados mientras se accede a la aplicacion de software multi-hilos.
En el bloque 304, unas metricas de rendimiento son calculadas para la aplicacion de software multi-hilos. Las metricas de rendimiento comprenden uno o mas parametros.
En el bloque 306, utilizando una tecnologfa iterativa con un valor predeterminado de solicitud de servicio para identificar una relacion entre la red de filas de espera de software y la red de filas de espera de hardware.
10 En el bloque 308, el valor de uno o mas parametros es determinado en forma de un valor de rendimiento y un valor de tiempo de respuesta para la aplicacion de software multi-hilos, determinando por tanto el rendimiento de la aplicacion de software multi-hilos.

Claims (14)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    REIVINDICACIONES
    1. - Un sistema para determinar el rendimiento de una aplicacion de software multi-hilos en presencia de uno o mas cuellos de botella de recursos, comprendiendo sistema:
    un procesador (202); y
    una memoria (208) acoplada al procesador (202), en donde el procesador (202) es capaz de ejecutar una pluralidad de modulos almacenados en la memoria (208), y en donde la pluralidad de modulos comprende:
    un modulo (212) de representacion configurado para representar una red de filas de espera de hardware y una red de filas de espera de software para recursos empleados para ejecutar la aplicacion de software multi-hilos, en donde las redes de filas de espera representa la contencion para los recursos, y en donde los recursos comprenden recursos de hardware y recursos de software, en donde las redes de filas de espera son utilizadas para comprobar el numero de hilos que acceden a la aplicacion de software multi-hilos cuando se encuentra un cuello de botella de recursos;
    un modulo (214) de computacion configurado para ejecutar una tecnica iterativa con un valor predeterminado de la solicitud de servicio para desarrollar una relacion entre la red de filas de espera de software y la red de filas de espera de hardware, en donde la relacion comprende la utilizacion de los recursos de software con respecto a los recursos de hardware basandose en el valor predeterminado de la solicitud de servicio, y en donde la ejecucion de la tecnica iterativa comprende:
    obtener un numero de hilos bloqueados en una seccion cntica de los recursos de software basandose en el valor predeterminado de la solicitud de servicio, en donde los hilos bloqueados en la seccion cntica son hilos que esperan entrar en la seccion cntica;
    obtener un tiempo de residencia en cada uno de los recursos de hardware basandose en el valor predeterminado de la solicitud de servicio;
    actualizar una solicitud de servicio de seccion cntica de una interaccion actual para una solicitud de servicio de seccion cntica actualizada para reflejar una espera para los recursos de hardware utilizando el tiempo de residencia, en donde la solicitud de servicio de seccion cntica es actualizada de forma iterativa para tener en cuenta la contencion de recursos en los recursos de hardware basandose en el tiempo de residencia;
    comparar el numero de hilos bloqueados de la iteracion actual con el numero de hilos bloqueados de una iteracion previa con el fin de comprobar si el numero de hilos bloqueados de la interaccion actual es mas elevado que el numero de hilos bloqueados de la iteracion previa, y comprobar si la solicitud de servicio de seccion cntica actualizada es mas elevada que la solicitud de servicio de seccion cntica de la iteracion previa; e
    identificar una diferencia entre el numero de hilos bloqueados en una seccion cntica para la iteracion actual y el numero de hilos bloqueados en la seccion cntica en la iteracion previa; y
    ejecutar repetidamente la tecnica iterativa 1) si la diferencia en el numero de hilos bloqueados es mayor que un lfmite predefinido, 2) si el numero de hilos bloqueados de la iteracion actual es mas elevado que el numero de hilos bloqueados de la iteracion previa y 3) si la solicitud de servicio de seccion cntica actualizada es mayor que la solicitud de servicio de seccion cntica de la iteracion previa; de otro modo
    obtener las metricas de rendimiento con la solicitud de servicio de seccion cntica actualizada para la aplicacion de software multi-hilos cuando la diferencia en el numero de hilos bloqueados es inferior que el lfmite predefinido, en donde el lfmite predefinido indica que la diferencia en el numero de hilos bloqueados ha convergido sobre un numero de iteraciones de la tecnica iterativa, determinando por tanto un rendimiento de la aplicacion de software multi-hilos.
  2. 2. - El sistema de la reivindicacion 1, en donde los recursos de software comprenden modulos de software y los recursos de hardware comprenden una CPU (Unidad de Tratamiento Central), una memoria, un disco o una combinacion de los mismos.
  3. 3. - El sistema de la reivindicacion 1, en donde la red de filas de espera de software representa los modulos de software correspondientes a una o mas secciones cnticas y a una o mas secciones no cnticas, y la red de filas de espera de hardware representa la pluralidad de recursos de hardware, y en donde una seccion cntica corresponde a un unico recurso compartido y una seccion no cntica corresponde a una porcion del codigo que puede ser ejecutado simultaneamente por 'n' numeros de hilos.
  4. 4. - El sistema de la reivindicacion 1, en donde uno o mas cuellos de botella de recursos comprenden uno o mas cuellos de botella de software, uno o mas cuellos de botella de hardware, y uno o mas cuellos de botella debido a cualquiera de una agrupacion de hilos, una agrupacion de conexion de base de datos, bases o bloqueos sobre elementos de datos, o una combinacion de los mismos.
  5. 5. - El sistema de la reivindicacion 1, en donde el valor predeterminado de la solicitud de servicio comprende, una
    5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    solicitud de servicio de los recursos de hardware en uno o mas niveles de la aplicacion de software multi-hilos; y una solicitud de servicio de uno o mas eventos de sincronizacion asociados con la aplicacion de software multi-hilos.
  6. 6. - El sistema de la reivindicacion 3, en donde el modulo de computacion calcula las metricas de rendimiento para la aplicacion de software para el 'n' numeros de hilos, en donde 'n' esta en un rango de uno a millares.
  7. 7. - El sistema de la reivindicacion 1, en donde uno o mas parametros de las metricas de rendimiento comprenden un rendimiento, un tiempo de respuesta, una cantidad de tiempo de espera de los hilos, un numero de objetos en una fila de espera, y una probabilidad de que una fila de espera se vade, una utilizacion de la CPU media (Unidad de Tratamiento Central) por nucleo a partir del rendimiento y una solicitud de servicio de CPU total.
  8. 8. - El sistema de la reivindicacion 1, en donde el modulo de computacion calcula las metricas de rendimiento cuando la diferencia en el numero de hilos bloqueados se estabiliza.
  9. 9. - Un metodo para determinar el rendimiento de una aplicacion de software multi-hilos en presencia de uno o mas cuellos de botella de recursos, el metodo comprende:
    representar, por un procesador, una red de filas de espera de hardware y una red de filas de espera de software, para recursos empleados para ejecutar la aplicacion de software multi-hilos, en donde las redes de filas de espera representan la contencion para los recursos, y en donde los recursos comprenden recursos de hardware y recursos de software, en donde las redes de filas de espera son utilizadas para comprobar el numero de hilos que acceden a la aplicacion de software multi-hilos cuando se encuentra un cuello de botella de recursos;
    en donde el procesador es utilizado para desarrollar una relacion entre la red de filas de espera de software y la red de filas de espera de hardware ejecutando, una tecnica iterativa con un valor predeterminado de la solicitud de servicio, en donde la relacion comprende la utilizacion de los recursos de software con respecto a los recursos de hardware basandose en el valor predeterminado de la solicitud de servicio; y en donde ejecutar la tecnica iterativa comprende:
    obtener un numero de hilos bloqueados en una seccion cntica de los recursos de software basandose en el valor predeterminado de la solicitud de servicio, en donde los hilos bloqueados en la seccion cntica son hilos que esperan entrar en la seccion cntica;
    obtener un tiempo de residencia en cada uno de los recursos de hardware basandose en el valor predeterminado de la solicitud de servicio;
    actualizar una solicitud de servicio de seccion cntica de una iteracion actual para una solicitud de servicio de seccion cntica actualizada para reflejar una espera para los recursos de hardware utilizando el tiempo de residencia, en donde la solicitud de servicio de seccion cntica actual es actualizada de manera iterativa para tener en cuenta la contencion de recursos en los recursos de hardware basandose en el tiempo de residencia;
    comparar el numero de hilos bloqueados de la iteracion actual con el numero de hilos bloqueados de un iteracion previa con el fin de comprobar si el numero de hilos bloqueados de la iteracion actual es mas elevado que el numero de hilos bloqueados de la iteracion previa, y comprobar si la solicitud de servicio de seccion cntica actualizada es mayor que la solicitud de servicio de seccion cntica de la iteracion previa; e
    identificar una diferencia entre el numero de hilos bloqueados en una seccion cntica para la iteracion actual y el numero de hilos bloqueados en la seccion cntica en la iteracion previa; y
    ejecutar repetidamente la tecnica iterativa 1) si la diferencia en el numero de hilos bloqueados es mas elevada que un lfmite predeterminado, y 2) si el numero de hilos bloqueados de la iteracion actual es mas elevado que el numero de hilos bloqueados de la iteracion previa y 3) si la solicitud de servicio de seccion cntica actualizada es mayor que la solicitud de servicio de seccion cntica de la iteracion previa; de otro modo
    obtener las metricas de rendimiento con la solicitud de servicio de seccion cntica actualizada para la aplicacion de software multi-hilos cuando la diferencia en el numero de hilos bloqueados es inferior que el lfmite predeterminado, en donde el lfmite predeterminado indica que la diferencia en el numero de hilos bloqueados ha convergido sobre un numero de iteraciones de la tecnica iterativa determinando por ello un rendimiento de la aplicacion de software multi- hilos.
  10. 10. - El metodo de la reivindicacion 9, en donde el valor predeterminado de la solicitud de servicio comprende una solicitud de servicio de todos los recursos de hardware a cada uno de los niveles de la aplicacion de software; y una solicitud de servicio de todos los eventos de sincronizacion.
  11. 11. - Un producto de programa informatico que tiene incorporado en el un programa informatico para determinar el rendimiento de una aplicacion de software multi-hilos en presencia de uno o mas cuellos de botella de recursos, comprendiendo el producto de programa informatico un codigo de programa para realizar un metodo segun la reivindicacion 9.
  12. 12. - El producto de programa informatico de la reivindicacion 11, en donde la red de filas de espera de hardware representa modulos de software correspondientes con una o mas secciones cnticas y una o mas secciones no cnticas, y la red de filas de espera de hardware representa la pluralidad de recursos de hardware, y en donde una seccion cntica corresponde con un unico recurso compartido y una seccion no critica corresponde con una porcion
    5 del codigo que puede ser ejecutada simultaneamente por 'n' numero de hilos.
  13. 13. - El metodo de la reivindicacion 9, en donde uno o mas parametros de las metricas de rendimiento comprenden
    un rendimiento, un tiempo de respuesta, una cantidad de tiempo de espera de los hilos, un numero de objetos en una fila de espera, y una probabilidad de que una fila de espera se vade.
  14. 14. - El metodo de la reivindicacion 9, en donde la tecnica iterativa es un metodo de analisis de valor medio.
    10 15.- El metodo de la reivindicacion 9, en donde la red de filas de espera de software representa modulos de software
    correspondientes con una o mas secciones cnticas y una o mas secciones no cnticas, y la red de filas de espera de hardware representa la pluralidad de recursos de hardware, y en donde una seccion cntica corresponde con un unico recurso compartido y una seccion no cntica corresponde con una porcion de codigo que puede ser ejecutado simultaneamente por 'n' numero de hilos.
    15
ES14155094.7T 2013-11-25 2014-02-13 Sistema y método que facilitan la predicción del rendimiento de la aplicación multi-hilo en presencia de cuellos de botella de recursos Active ES2639781T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
INMU36992013 2013-11-25
IN3699MU2013 IN2013MU03699A (es) 2013-11-25 2013-11-25

Publications (1)

Publication Number Publication Date
ES2639781T3 true ES2639781T3 (es) 2017-10-30

Family

ID=50112762

Family Applications (1)

Application Number Title Priority Date Filing Date
ES14155094.7T Active ES2639781T3 (es) 2013-11-25 2014-02-13 Sistema y método que facilitan la predicción del rendimiento de la aplicación multi-hilo en presencia de cuellos de botella de recursos

Country Status (4)

Country Link
US (1) US9317330B2 (es)
EP (1) EP2879055B1 (es)
ES (1) ES2639781T3 (es)
IN (1) IN2013MU03699A (es)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9141416B2 (en) 2013-03-15 2015-09-22 Centurylink Intellectual Property Llc Virtualization congestion control framework for modifying execution of applications on virtual machine based on mass congestion indicator in host computing system
US10389577B2 (en) 2013-08-14 2019-08-20 Centurylink Intellectual Property Llc Ethernet carrier group alarm (CGA)
US9864623B2 (en) 2013-11-21 2018-01-09 Centurylink Intellectual Property Llc Physical to virtual network transport function abstraction
US9998320B2 (en) 2014-04-03 2018-06-12 Centurylink Intellectual Property Llc Customer environment network functions virtualization (NFV)
US10225327B2 (en) 2014-08-13 2019-03-05 Centurylink Intellectual Property Llc Remoting application servers
US9898318B2 (en) 2014-08-15 2018-02-20 Centurylink Intellectual Property Llc Multi-line/multi-state virtualized OAM transponder
US9674093B2 (en) * 2014-08-18 2017-06-06 Xerox Corporation Method and apparatus for ripple rate sensitive and bottleneck aware resource adaptation for real-time streaming workflows
US10469407B2 (en) 2015-09-28 2019-11-05 Centurylink Intellectual Property Llc Method and system for implementing intent-based service configuration, service conformance, and service auditing
US9882833B2 (en) * 2015-09-28 2018-01-30 Centurylink Intellectual Property Llc Intent-based services orchestration
US10108520B2 (en) * 2015-10-27 2018-10-23 Tata Consultancy Services Limited Systems and methods for service demand based performance prediction with varying workloads
US10146656B2 (en) 2016-02-16 2018-12-04 Tata Consultancy Services Limited Service demand based performance prediction using a single workload
US10191792B2 (en) * 2016-03-04 2019-01-29 International Business Machines Corporation Application abnormality detection
CN108874613B (zh) * 2017-05-10 2021-11-05 鸿秦(北京)科技有限公司 一种性能瓶颈定位量化方法、装置及嵌入式io系统
US10970055B2 (en) 2018-08-21 2021-04-06 International Business Machines Corporation Identifying software and hardware bottlenecks
CN109800138B (zh) * 2018-12-18 2022-07-08 平安科技(深圳)有限公司 一种cpu测试方法、电子装置及存储介质
CN110069340B (zh) * 2019-04-01 2022-09-16 北京百度网讯科技有限公司 线程数评估方法及装置
CN110287013A (zh) * 2019-06-26 2019-09-27 四川长虹电器股份有限公司 基于java多线程技术解决物联云端服务雪崩效应的方法
US11144369B2 (en) 2019-12-30 2021-10-12 Bank Of America Corporation Preemptive self-healing of application server hanging threads
CN112131086A (zh) * 2020-09-18 2020-12-25 浪潮电子信息产业股份有限公司 一种应用服务器的性能调优方法、装置及设备
US20230043579A1 (en) * 2021-08-06 2023-02-09 Accenture Global Solutions Limited System for monitoring and optimizing computing resource usage of cloud based computing application
CN114356580B (zh) * 2022-01-12 2024-05-28 重庆邮电大学 基于共享资源访问的异构多核系统任务分配方法和装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6314463B1 (en) * 1998-05-29 2001-11-06 Webspective Software, Inc. Method and system for measuring queue length and delay
US6061709A (en) 1998-07-31 2000-05-09 Integrated Systems Design Center, Inc. Integrated hardware and software task control executive
JP3663968B2 (ja) * 1999-04-14 2005-06-22 日本電気株式会社 マルチタスクシステムの性能予測システム及び予測方法並びにその方法プログラムを記録した記録媒体
US6738386B1 (en) * 2000-05-11 2004-05-18 Agere Systems Inc. Controlled latency with dynamically limited queue depth based on history and latency estimation
JP4453823B2 (ja) 2004-05-31 2010-04-21 日本電気株式会社 性能ボトルネック解析システム及び性能ボトルネック解析方法
US7546222B2 (en) * 2005-06-12 2009-06-09 Infosys Technologies, Ltd. System for performance and scalability analysis and methods thereof
US7757214B1 (en) 2005-11-10 2010-07-13 Symantec Operating Coporation Automated concurrency configuration of multi-threaded programs
US7962923B2 (en) * 2005-12-30 2011-06-14 Level 3 Communications, Llc System and method for generating a lock-free dual queue
US7493249B2 (en) * 2006-06-23 2009-02-17 International Business Machines Corporation Method and system for dynamic performance modeling of computer application services
US8903983B2 (en) 2008-02-29 2014-12-02 Dell Software Inc. Method, system and apparatus for managing, modeling, predicting, allocating and utilizing resources and bottlenecks in a computer network
US8387059B2 (en) 2008-07-02 2013-02-26 International Business Machines Corporation Black-box performance control for high-volume throughput-centric systems
JP5428075B2 (ja) 2009-04-17 2014-02-26 株式会社日立製作所 性能モニタリングシステム、ボトルネック判定方法及び管理計算機
US20110172963A1 (en) * 2010-01-13 2011-07-14 Nec Laboratories America, Inc. Methods and Apparatus for Predicting the Performance of a Multi-Tier Computer Software System

Also Published As

Publication number Publication date
US9317330B2 (en) 2016-04-19
IN2013MU03699A (es) 2015-07-31
US20150150020A1 (en) 2015-05-28
EP2879055B1 (en) 2017-06-21
EP2879055A1 (en) 2015-06-03

Similar Documents

Publication Publication Date Title
ES2639781T3 (es) Sistema y método que facilitan la predicción del rendimiento de la aplicación multi-hilo en presencia de cuellos de botella de recursos
US11940959B2 (en) Heterogeneous distributed file system using different types of storage mediums
US9405711B2 (en) On-chip traffic prioritization in memory
US10725829B2 (en) Scheduling capacity in a data-processing cluster to an application queue by repurposing monitoring-based capacity of a delegator queue for job execution in the application queue
US10924368B1 (en) Network monitoring tool for supercomputers
US20150067695A1 (en) Information processing system and graph processing method
Vakilinia et al. Analysis and optimization of big-data stream processing
US20180046476A1 (en) Workload placement in a hybrid cloud environment
US9853866B2 (en) Efficient parallel processing of a network with conflict constraints between nodes
Ludwig et al. Optimizing multi‐tier application performance with interference and affinity‐aware placement algorithms
Torres et al. Storage services in private clouds: Analysis, performance and availability modeling
US10387578B1 (en) Utilization limiting for nested object queries
Khazaei Performance modeling of cloud computing centers
Uta et al. Poster: Memfs: An in-memory runtime file system with symmetrical data distribution
Wasi-ur-Rahman et al. Understanding the communication characteristics in HBase: What are the fundamental bottlenecks?
US20150006593A1 (en) Managing i/o operations in a shared file system
Schares et al. Chic-sched: a HPC Placement-Group Scheduler on Hierarchical Topologies with Constraints
US20190121894A1 (en) Parallel map and reduce on hash chains
Zhao et al. Distance-aware virtual cluster performance optimization: A hadoop case study
US20200396168A1 (en) System, apparatus and method for advanced monitoring in an edge system
CN107329705B (zh) 一种针对异构存储的Shuffle方法
US9501229B1 (en) Multi-tiered coarray programming
Kochovski et al. An approach for automated deployment of cloud applications in the Edge-to-Cloud computing continuum satisfying high Quality of Service requirements
Raj et al. SpecMap: An efficient spectral partitioning based static application mapping algorithm for 2D mesh NoCs
Xu Elastic techniques to handle dynamism in real-time data processing systems