Puede supervisar el rendimiento de las aplicaciones con los módulos PMI (Performance Monitoring Infrastructure).
objectGridModule
objectGridModule contiene una estadística de tiempo: el tiempo de respuesta de la transacción. Una transacción se define como la duración entre la llamada del método
Session.begin y la llamada del método
Session.commit. Este intervalo de tiempo se considera el tiempo de respuesta de la transacción. El elemento raíz de objectGridModule, "root", hace las veces de punto de entrada de las estadísticas de
WebSphere eXtreme
Scale. Este elemento raíz tiene ObjectGrids como sus elementos hijo, que tienen tipos de transacción como elementos hijo.
La estadística de tiempo de respuesta está asociado a cada tipo de transacción.
Figura 1. Estructura del módulo ObjectGridModule
El siguiente diagrama muestra un ejemplo de la estructura de ObjectGridModule. En este ejemplo, existen dos instancias de ObjectGrid en el sistema:
el ObjectGrid A y el ObjectGrid B. La instancia A de ObjectGrid tiene dos tipos de transacciones: la A y la predeterminada. La instancia de ObjectGrid B tiene sólo el tipo de transacción predeterminado.
Figura 2. Ejemplo de estructura del módulo ObjectGridModule
Los tipos de transacción los definen los desarrolladores de transacciones porque conocen los tipos de transacciones que utilizan sus aplicaciones. El tipo de transacción se establece utilizando el siguiente método
Session.setTransactionType(String):
/**
* Establece el tipo de transacción para futuras transacciones.
*
* Después de llamar a este método, todas las transacciones futuras tendrán el mismo
* tipo hasta que se establezca otro tipo de transacción. Si no se establece ningún
* tipo de transacción , se utiliza el tipo de transacción TRANSACTION_TYPE_DEFAULT
* predeterminado.
*
* Los tipos de transacción se usan principalmente para fines de seguimiento de datos
* estadísticos.
* Los usuarios pueden definir previamente los tipos de transacciones que se
* ejecutan en una aplicación.
La idea es clasificar las transacciones con las mismas características en una
* categoría (tipo), de modo que una estadística de tiempo de respuesta se pueda
* utilizar para realizar un seguimiento de cada tipo de transacción.
*
* Este seguimiento resulta útil cuando la aplicación tiene tipos diferentes de
* transacciones.
* Entre ellos, algunos tipos de transacciones, como las transacciones de
* actualización, tardan más en procesarse que otras transacciones como, por
* ejemplo, las de sólo lectura. Utilizando el tipo de transacción, se puede
* realizar un seguimiento de las transacciones diferentes por estadísticas
* diferentes, por lo que las estadísticas resultan más útiles.
*
* @param tranType el tipo de transacción para las transacciones futuras.
*/
void setTransactionType(String tranType);
El ejemplo siguiente establece el tipo de transacción en
updatePrice:
// Establecer el tipo de transacción en updatePrice
// El período de tiempo entre session.begin() y session.commit() se reflejará
// en la estadística de tiempo "updatePrice".
session.setTransactionType("updatePrice");
session.begin();
map.update(stockId, new Integer(100));
session.commit();
La primera línea indica que el tipo de transacción subsiguiente es updatePrice. Existe una estadística updatePrice en la instancia de ObjectGrid que se corresponde a la sesión del ejemplo.
Utilizando las interfaces JMX (Java Management Extensions), puede obtener el tiempo de respuesta de la transacción para las transacciones updatePrice. También puede obtener la estadística agregada para todos los tipos de transacciones en la instancia de ObjectGrid especificada.
mapModule
El mapModule contiene tres estadísticas que están relacionadas con las correlaciones de
eXtreme Scale:
- Proporción de coincidencias de la correlación -BoundedRangeStatistic: efectúa un seguimiento de la proporción de
coincidencias de una correlación. La proporción de coincidencias es un valor flotante entre 0 y 100 inclusive, que representa el porcentaje de coincidencias de una correlación en relación con las operaciones get de la correlación.
- Número de entradas - CountStatistic: efectúa un seguimiento del número de entradas de la correlación.
- Tiempo de respuesta de la actualización por lotes del cargador-TimeStatistic: efectúa un seguimiento del tiempo de respuesta que se utiliza para la operación de actualización por lotes del cargador.
El elemento raíz de mapModule, "root", hace las veces de punto de entrada para las estadísticas de la correlación de ObjectGrid. Este elemento raíz tiene ObjectGrids como elementos hijo, que tienen correlaciones como sus elementos hijo.
Cada instancia de correlación tiene tres estadísticas listadas. En el diagrama siguiente se muestra la estructura de mapModule:
Figura 3. Estructura de mapModule
El siguiente diagrama muestra un ejemplo de la estructura de mapModule:
Figura 4. Ejemplo de la estructura del módulo mapModule
hashIndexModule
hashIndexModule contiene las siguientes estadísticas relacionadas con los índices de nivel de correlación:
- Recuento de búsquedas - CountStatistic: el número de invocaciones para la operación de búsqueda de índices.
- Recuento de colisiones - CountStatistic: el número de colisiones para la operación de búsqueda.
- Recuento de anomalías - CountStatistic: el número de anomalías para una operación de búsqueda.
- Recuento de resultados - CountStatistic: el número de claves devueltas de la operación de búsqueda.
- Recuento de actualizaciones de proceso por lotes - CountStatistic: el número de actualizaciones de proceso por lotes realizadas en relación con este índice. Cuando se cambia la correlación correspondiente en algún modo, el índice llamará a su método doBatchUpdate(). Esta estadística le indicará con que frecuencia se cambia o actualiza el índice.
- Periodo de tiempo de la operación de búsqueda-TimeStatistic: el intervalo de tiempo que la operación de búsqueda tarda en llevarse a cabo
El elemento raíz de hashIndexModule, "root", hace las veces de punto de entrada de las estadísticas de
HashIndex. Este elemento raíz tiene ObjectGrids como elementos hijo, ObjectGrids tienen correlaciones como elementos hijo, que finalmente tienen HashIndexes como elementos hijo y nodos finales del árbol. Cada instancia de HashIndex tiene tres estadísticas listadas. En el diagrama siguiente se muestra la estructura de hashIndexModule:
Figura 5. Estructura del módulo hashIndexModule
El siguiente diagrama muestra un ejemplo de la estructura de hashIndexModule:
Figura 6. Ejemplo de estructura del módulo hashIndexModule
agentManagerModule
agentManagerModule contiene estadísticas relacionadas con los agentes de nivel de correlación:
- Periodo de tiempo de reducción - TimeStatistic: el intervalo de tiempo para que el agente termine la operación de reducción.
- Periodo de tiempo total - TimeStatistic: el intervalo de tiempo para que el agente complete todas las operaciones.
- Periodo de tiempo de serialización de agente - TimeStatistic: el intervalo de tiempo para serializar el agente.
- Periodo de tiempo de inflación de agente - TimeStatistic: el intervalo de tiempo que se tarda en inflar el agente en el servidor.
- Periodo de tiempo de serialización de resultados - TimeStatistic: el intervalo de tiempo para serializar los resultados de un agente.
- Periodo de tiempo de inflación de resultados - TimeStatistic: el intervalo de tiempo para inflar los resultados del agente.
- Recuento de anomalías - CountStatistic: el número de veces que el agente ha fallado.
- Recuento de invocaciones - CountStatistic: el número de veces que se ha invocado AgentManager.
- Recuento de particiones - CountStatistic: el número de particiones a las que se envía el agente.
El elemento raíz de agentManagerModule, "root", hace las veces de punto de entrada de las estadísticas de AgentManager. Este elemento raíz tiene ObjectGrids como elementos hijo, ObjectGrids tiene correlaciones como elementos hijo, que por último tienen instancias de AgentManager como elementos hijo y nodos finales del árbol.
Cada instancia de AgentManager tiene estadísticas.
Figura 7. Estructura de agentManagerModule
Figura 8. Ejemplo de la estructura de agentManagerModule
queryModule
queryModule contiene estadísticas relacionadas con las consultas de
eXtreme Scale:
- Tiempo de creación de plan - TimeStatistic: el intervalo de tiempo para crear el plan de consulta.
- Tiempo de ejecución - TimeStatistic: el intervalo de tiempo para ejecutar la consulta.
- Recuento de ejecuciones - CountStatistic: el número de veces que se ha ejecutado la consulta.
- Recuento de resultados - CountStatistic: el recuento para cada conjunto de resultados de cada ejecución de consulta.
- FailureCount - CountStatistic: el número de veces que la consulta ha fallado.
El elemento raíz de queryModule, "root", hace las veces de punto de entrada de las estadísticas de Query. Este elemento raíz tiene ObjectGrids como elementos hijo, que tienen objetos Query como elementos hijo y nodos finales del árbol. Cada instancia de consulta tiene tres estadísticas listadas.
Figura 9. Estructura de queryModule
Figura 10. Ejemplo de la estructura de queryModule de QueryStats.jpg