Identifying Bottlenecks and Interpreting Performance Metrics - EcoSys - Help - Hexagon

EcoSys Performance Tuning

Language
English
Product
EcoSys
Search by Category
Help
EcoSys Version
9.2

Overview of approach

Several performance monitoring features are built in to EcoSys that allow you to measure system performance. The basic methodology for performance troubleshooting is to use the system and execute the user operations in question while monitoring performance, and then use that data to identify the bottleneck.

The following sections outline how to use the interactive performance metrics built into the software. In addition to troubleshooting performance, system-level resource utilization should be captured as part of any benchmarking activity. For more information, see System Monitoring.

Performance metrics for spreadsheets

When a spreadsheet is loaded or saved, two types of performance metrics are captured:

  • Browser metrics (tagged as BROWSERMETRICS in the log file): Provide a summary of timings and data volume related to the GUI and front end steps. This data captures the end-user experience from the point of view of the client workstation. Browser metrics are useful for understanding the full, end-to-end work done to render a spreadsheet on the screen.

  • Process metrics (tagged as PROCESSMETRICS in the log file): Provide a detailed listing of system resources and timings used to compute the resulting data for the spreadsheet on the server. Process metrics are useful for identifying what specific columns and steps on the application server and database are involved in fulfilling the user’s request, independent of the network and browser layers.

The following diagram outlines how these various metrics apply to the process of loading or saving data interactively via the spreadsheet:

The BROWSERMETRICS table helpa identify the general area of performance issues:

  • If the Format Request or Grid Render time is too long, this indicates that the client workstation is constrained, typically for CPU. Reduce the display page size or recycle the browser. You should also verify that anti-virus scanner exclusions have been applied on the workstation in question (see related section in this document).

  • If the Network Time is too long, this indicates that the network latency may be too high, or the bandwidth too low. This is the amount of time spent submitting the request and receiving the response, independent of the server computing the result or the browser displaying the result. See the section on network infrastructure in this document for next steps.

  • If the Server Processing Time is too long, this indicates the server or database may be resource constrained. You can see more detail using the Server Process Metrics view.

To view browser metrics, once the spreadsheet has loaded, click the lower left corner of the spreadsheet’s status bar after the spreadsheet is loaded. A small window displays that shows the performance metrics for the most recent operation in the spreadsheet. You can use the Copy link to copy this data to the clipboard.

Additional detail is displayed in EcoSys Version 6+.

To view the process metrics, click the Server Process Metrics link on the popup. Another popup grid displays that shows the process metrics. You can use the Copy link to copy this data to the clipboard, and then paste it into Excel.

Performance metrics for reports

When a report is loaded, the process metrics (server-side resource utilization and timings) are computed for that request. You can view these metrics interactively. Click the lower left corner of the report detail area. A small timer icon displays when the mouse pointer is in that region.

EcoSys does not currently support process metrics for reports that use sub-reports.

Process metrics are captured for each execution of an Action within EcoSys. You can view these metrics using the System Admin > Display Log view. Immediately following an action run, go to the display log and apply a filter for PROCESSMETRICS. The table with the action’s process metrics is visible there, and it captures the same information as for spreadsheet and reports.

Interpreting Browser Metrics values

The following table describes the structure and format of the BROWSERMETRICS table (captured for spreadsheet saves and loads):

Browser Metric

Description

Logged As

Total load time

Elapsed clock time from when user clicks Save or Refresh to when the data is fully displayed on the screen

Total Time

Network time

Portion of total time spent sending and receiving data on the network

Network

Server process time

Portion of total time spent on the server to fulfill the save/load request (detailed in Process Metrics)

Server Process

Browser process time

Portion of total time spent by the browser to format and parse the data exchanged with the server

Format Request and Parse Response

Grid render time

Portion of total time spent to draw the spreadsheet grid, filter, and sort the visible data

Grid Render

Interpreting Process Metrics values

Process Metrics is a capture of performance data specific to one request to the LANA engine. This request can be a run of a report, a save of a spreadsheet or action, or a LANA API call, and is logged when the request is completed.

The PROCESSMETRICS table (captured for each spreadsheet, report, action, and form executed on the system) has the following structure and columns: each step within the execution is identified in the first column on the table, with the top row showing a summary of the overall execution. Typically, there are some initialization steps, such as loading the base rows, followed by one step for each column defined in your spreadsheet, report, or action. Finally, there are some finalization steps at the end such as constructing the result set and formatting the output.

The PROCESSMETRICS table is broken into two parts:

  1. The top line has a summary of the resources used for the entire LANA engine request.

  2. The subsequent lines break down the execution by step, each one showing the performance attributes of the corresponding step.

The Log Analyzer looks at only the top line summary of each PROCESSMETRICS table, but you can refer to the original log file to see more detail for a given request. The PROCESSMETRICS table has the columns listed below:

Caption in GUI

Caption in Log

Description

Overview

Step

Step

Name of LANA engine step

Step Details

Step Details

Details about type of step

Elapsed (s) *

Elaps(s)

Elapsed duration (clock time) between start and end timestamp

Active (s) *

Active(s)

Work time a thread was allocated to this step, processing time

Total CPU (s) *

TotCPU(s)

Total CPU time

Total DB (s) *

TotDB(s)

Total database wait time (read + fetch + write + commit)

Clock Time

User CPU (s)

UCPU(s)

User CPU time (application processing as contrasted with system processing)

Active (#)

Active(#)

Number of activations of this step, will be > 1 for iterative processes

Start Time

Start Time

Starting timestamp for this step (first)

End Time

End Time

Ending timestamp for this step (last)

Objects / Rows

Alloc Value Cell (#)

AllocValCell(#)

Count of data cell values allocated in memory

Alloc Bus Class (#)

AllocBusCls(#)

Count of business objects allocated in memory

Objects In (#)

ObjsIn(#)

Count of objects received as input to this step

Objects Out (#)

ObjsOut(#)

Count of objects sent as output from this step

DB Rows Accessed (#)

DBRowsAcc(#)

Count of database rows accessed by read queries

DB Rows Fetched (#)

DBRowsFetch(#)

Count of database rows fetched from DB to memory (select/next)

DB Rows Written (#)

DBRowsWrite(#)

Count of database rows written (insert, update, delete)

Database

DB Reads (s)

DBRead(s)

Wait time for database read execution (select)

DB Fetch Data (s)

DBFetchData(s)

Wait time for database fetch (rows and CLOBS)

DB Writes (s)

DBWrite(s)

Wait time for database write execution (insert, update, delete, procedures)

DB Commits (s)

DBCommit(s)

Wait time for database commits

DB Read Qry (#)

DBReadQry(#)

Count of database read query executions

DB Write Qry (#)

DBWriteQry(#)

Count of database write query executions

DB Conn (#)

DBConn(#)

Count of database connections leased from the pool

DB Conn Wait (s)

DBConWait(s)

Wait time to lease connections from the pool (this should be zero or small)

Qry Cache (%)

QryCache(%)

Percent of read queries that were satisfied via the query cache

Threads

Block (s)

Blk(s)

Wait times from concurrency blocks overall

Block (#)

Blk(#)

Count of concurrency block instances overall

DB Block (s)

DBBlk(s)

Wait times from concurrency blocks inside database layer

DB Block (#)

DBBlk(#)

Count of concurrency block instances inside database layer

Thread Name/Id

ThreadNameId

Primary thread name/id that processed this step

Thread Priority

ThrPrio

Priority (1-5) of thread used for step

Thread Count

ThrCount

Count of threads used for this step (1 for single thread, > 1 for parallel)

Thread List

ThrList

List of unique thread ids involved in this step

* Represent key indicators for resource utilization. Review these values first.

Use the PROCESSMETRICS table to identify which steps are heavy consumers of CPU time and database time. From there, look at what might be optimized in the configuration or the infrastructure to address it. Be aware that some of the steps may be executed in parallel, which means the timing may reflect more work done than clock time elapsed.

The Log Analyzer looks at only the top line summary of each PROCESSMETRICS table, but you can refer to the original log file to see more detail for a given request.

Viewing Performance Metrics using the Application Log

In addition to the interactive views of the performance metrics, all BROWSERMETRICS and PROCESSMETRICS data is written to the EcoSys application log file by default. You can view this data in two ways:

  • Use System Admin > Display Log, then apply a filter for PROCESSMETRICS to see metrics captured in the immediate past. The data is formatted into tables, and these can be copy/pasted directly from the screen in Excel, if needed.

  • Download the application log using System Admin > Display Log > Go to Download, or from the application server’s log folder (for example, C:\EcoSys\Log). Then, search for the BROWSERMETRICS and PROCESSMETRICS tags, which will be followed by tab-separated tables.

Performance Summary Report Available

You can analyze an EcoSys application log to produce a summary report of metrics and performance. If you would like a summary report from your system, submit your application log file(s) to EcoSys support, and the report can be provided to you. The summary report includes consolidated reports of all user activity, browser performance, server performance, and any exceptions in the log for the time period covered.