Report Transaction Commands

VOSS-4-UC provides a set of utilities available to provide transaction metrics. The commands are typically used to inspect and monitor transaction performance, for example in the case where transaction performance issues are encountered.

Note

For clusters, the number of workers are set to be the total default for 4 unified nodes (4*30 =120).

Profile

A command is available that aggregates the transactions performed during the given date-time range by grouping them by model type and sorting them by duration.

A Pct column is also available to indicate the percentage of the interval time used by the transaction.

The command and parameters are:

  • voss report transaction profile [OPTIONS] START_TIME END_TIME
  • START_TIME - The date-time value from which to start the sample collection.
  • END_TIME - The date-time value from which to start the sample collection. Valid formats: ‘%Y-%m-%d_%H:%M:%S’, ‘%Y-%m-%d_%H:%M’, ‘%Y-%m-%d’

Example:

platform@VOSS:~$ voss report transaction profile 2019-05-06_16:39 2019-05-06_23:00
                        Entity  Operation      Calls   RespTime      QTime    SvcTime        Pct
               tool/DataImport    execute      11.00    3128.24       1.11    3127.13      99.95
                     data/User     update       2.00       0.86       0.09       0.77       0.03
                 data/Schedule     update       1.00       0.28       0.18       0.10       0.01
            data/PasswordReset     create       2.00       0.17       0.10       0.08       0.01
                 data/Schedule    Execute       1.00       0.15       0.00       0.14       0.00

Throughput

Given a number of output rows to display and duration in seconds between samples, a command is available to display the information about transaction throughput during the selected sample periods.

Throughput is the projected count per minute based on the sample interval and transaction count.

The command and parameters are:

  • voss report transaction throughput [OPTIONS] START_TIME INTERVALS DURATION
  • START_TIME - The date-time value from which to start the sample collection. Valid formats: ‘%Y-%m-%d_%H:%M:%S’, ‘%Y-%m-%d_%H:%M’, ‘%Y-%m-%d’
  • INTERVALS - Specifies the number of samples to display.
  • DURATION - The duration of the samples in seconds, for example every 30 seconds or every 60 seconds.

The command output shows parent and child transaction data in columns:

  • Count: Transaction count

  • Utilisation: ratio of total workers (120) used: ( (Throughput * RespTime) / 120 ) * 100

    Example of parent transactions:

    formula: ( (Throughput * RespTime) / 120 ) * 100

    calculation: (2.00 * 4.86 / 120) * 100 =  9.71

  • Qtime: ratio: (total queue time for transactions at time stamp / transaction count at the time stamp). Else, zero if no transactions.

  • SvcTime: ratio: (total service time for transactions at time stamp / transaction count at the time stamp). Else, zero if no transactions.

  • RespTime: calculated as total transaction time (Qtime + SvcTime). Else, zero if no transactions.

  • Throughput: ratio: (transaction count at the time stamp / minutes (end_time - start_time)). Else, zero if no transactions.

    Example of child transactions where DURATION is 30 seconds (0.5 minutes):

    21 child transactions / 0.5 minutes = 42.00

  • Workers: calculated as (Throughput * RespTime)

Example command output:

platform@VOSS:~$ voss report transaction throughput 2019-05-06_16:39 2 30
                                    Parent Transactions                                      Child Transactions
TS                    Count   Utilisation    Workers      Qtime    SvcTime   RespTime Throughput  Count      Qtime    SvcTime   RespTime Throughput

2019-05-06_16:39:00       0       0.00       0.00       0.00       0.00       0.00       0.00    21       0.07       0.86       0.93      42.00
2019-05-06_16:39:30       0       0.00       0.00       0.00       0.00       0.00       0.00    80       0.07       0.14       0.22     160.00
platform@VOSS:~$ voss report transaction throughput 2019-05-06_16:42 2 30
                                    Parent Transactions                                      Child Transactions
TS                    Count   Utilisation    Workers      Qtime    SvcTime   RespTime Throughput  Count      Qtime    SvcTime   RespTime Throughput

2019-05-06_16:42:00       1       9.71       8.10       0.07       4.79       4.86       2.00    98       0.07       0.05       0.13     196.00
2019-05-06_16:42:30       2    3421.50    2851.25       0.12     855.26     855.37       4.00    34       0.07       0.21       0.28      68.00

Worker-Usage

A command is available to show the active and queued transactions at particular intervals from a given start time and then to provide a utilisation value for the transaction, relative to a worker value.

The command and parameters are:

  • voss report transaction worker-usage [OPTIONS] START_TIME INTERVALS DURATION
  • START_TIME - The date-time value from which to start the sample collection. Valid formats: ‘%Y-%m-%d_%H:%M:%S’, ‘%Y-%m-%d_%H:%M’, ‘%Y-%m-%d’
  • INTERVALS - Number of report entries to list.
  • DURATION - Number of seconds between each report entry.

The command output shows parent and child transaction data in columns:

  • Utilisation: ratio: (active parents / total workers (=120)) * 100
  • Zombie: number of transactions that have not been updated (changed from Queued to Active) for 60 minutes

Example output

platform@VOSS:~$ voss report transaction worker-usage 2019-05-06_16:39 50 30
REPORT:
Timestamp            Utilisation     QueuedParents    ActiveParents    QueuedChildren   ActiveChildren   Zombies
2019-05-06_16:39:00        0.83                0                1                0                1          0
2019-05-06_16:39:30        0.83                0                1                0                1          0
2019-05-06_16:40:00        0.83                0                1                0                0          0
2019-05-06_16:40:30        0.83                0                1                0                0          0
2019-05-06_16:41:00        0.83                0                1                0                1          0
2019-05-06_16:41:30        0.83                0                1                1                0          0
2019-05-06_16:42:00        0.83                0                1                0                0          0
2019-05-06_16:42:30        0.00                0                0                0                0          0
2019-05-06_16:43:00        0.83                0                1                0                1          0
2019-05-06_16:43:30        0.83                0                1                0                0          0
2019-05-06_16:44:00        0.83                0                1                0                0          0

Current-Usage

A command is available to show a table of transactions grouped by:

  • Processing and Queued transactions

  • Parent and child transactions

  • Node name on which the transaction is running

    Queued transactions will be shown with a node name of default because it is not known on which node they will be executed.

  • Transaction priority (High, Medium, Low)

The report is useful to verify that all unified nodes are correctly processing transactions.

The command is:

  • voss report transaction current-usage

Example output from a single node:

platform@VOSS:~$ voss report transaction current-usage

REPORT:
parent                     |   Processing transactions    |      Queued transactions     |
                           |          Priority            |          Priority            |
                       Node|     High    Medium       Low |      High    Medium       Low|
           node1-voss-queue|        1         0         0 |         0         0         0|

child                      |   Processing transactions    |      Queued transactions     |
                           |          Priority            |          Priority            |
                       Node|     High    Medium       Low |      High    Medium       Low|
           node1-voss-queue|        0         0         0 |         0         0         0|