Client Counters/Ratios Diagrams
The Client Counters/Ratios diagrams show you client counters, client ratios, other counters like generic event counters, and unassigned address space. Client counters and ratios give you statistical information on ObjectStore's persistent data handling for all databases to which your application has access during its run. Note that certain counters are not shown if you do not include page state information when you format the trace file.
The Client Counters/Ratios diagrams look like the following. The event lines are not shown in this example. You can change the size of the diagram by dragging the bottom line up and down.
You can create one or more diagrams, each displaying one or more counters or ratios.
The counters are displayed for the point in time of the following events:
- Trace events (start, stop, suspend, resume)
- Transaction events (begin, commit, abort, retry)
- Generic events that are specified to request OPE counters when the generic event is raised
When the TimeLine diagram is displayed, you see the Client Counters diagram with a selection of counters that is stored in the profile. If the TimeLine diagram is displayed for the first time, you see the Client Counters diagram with the counters that are selected by default.
Selecting Client Counters/Ratios
You can select the counters or ratios that you want to display. By default, OPE measures client counters and ratios at specific points in time. They are displayed for the point in time of trace events (start, stop, suspend, resume), transaction events (begin, commit, abort, retry), and generic events. Note that counters at the time of generic events are only shown if you specify a flag for the constructor in the definition of a generic event (see Class os_ope_generic_event for details).
Client Counters as absolute values or rates
You can specify that client counters are displayed as absolute values or rates. Absolute values show the increase of the accumulated value within a transaction. Rates show the increase of the accumulated value that is divided by the length of the diagram interval for which the absolute value was measured. Thus, you can compare values even if the points of measurement are not regularly distributed on the time axis.
The value, shown either as absolute value or rate, represents the end of the interval. Adjacent points are connected by thin lines. Note that for generic events OPE displays the absolute value. You cannot choose between absolute values and rates.
How Client Counters/Ratios are displayed
You can select multiple counters or ratios for one diagram but you cannot display counters and ratios in the same diagram. OPE uses different colors for the multiple counters and ratios. You can define the colors in the OPE configuration file (osope.ini for Windows platforms and osoperc for UNIX).
To improve the legibility of the diagrams, counters and ratios are displayed as small squares that are connected by small lines. Note that this line does not represent a continuous change over time. Gaps between transactions are not included. Note that the name of the counter or ratio has the same color as its corresponding symbol.
Each Client Counters/Ratios diagram has a legend that shows you the different colors for the counters and ratios. If the dimension of two counters or ratios displayed in one diagram is too different, you might have difficulty reading the information for the counter or ratio that has the lower value. In this case, display each counter or ratio on different diagrams or one after the other.
Changing the range of the diagram scale
With the vertical scale adjuster on the left side of the diagram area, you can decrease the range of the diagram scale. This helps you get a more detailed view of the low values of the client counters.
By default, you see the largest range of values on the diagram scale. To decrease the range, click on the upper arrowhead or move the scroll bar slider up. You then see a smaller range of values on the diagram scale.
To increase the range, click on the lower arrowhead or move the scroll bar slider down. You see a larger range of values on the diagram scale but the counters are shown with fewer details.
Note that you can change the range of the diagram scale for each Client Counters/Ratios diagram individually.
Creating a Client Counters/Ratios diagram
To create a Client Counters/Ratios diagram, select one of the following entries from the Counters menu:
- New client counter graph
- New client ratio graph
- New client generic event graph
- New unassigned address space graph
In a dialog box you can select a counter or ratio. Then a new Counters/Ratios diagram is displayed. You can create an arbitrary number of these diagrams within the space available in the diagram area. All diagrams are the same size.
Client counters
Deadlock candidates |
Pages that are likely to be involved in a deadlock if two or more programs compete for the same data. Number of pages that have been upgraded to EWLW and have been called back in the same transaction. Such a pattern does not necessarily end in a deadlock but is prone to end in it. |
Deadlocks |
Number of accesses to persistent memory that end with a deadlock. For further information see Chapter 2: Locking, in ObjectStore Performance. |
Timeouts |
Number of accesses to persistent memory that end with a timeout. |
Exceptions |
Number of accesses to persistent memory that end with an exception unlike timeout or deadlock. |
Pages fetched for write |
Number of times pages are fetched with EWLx as resulting state. For further information see Locking in ObjectStore Performance. |
Pages fetched for read |
Number of times pages are fetched with EWLR or ERLR as resulting state. For further information see the section Locking and Server Communication in ObjectStore Performance. |
Pages fetched free rider |
Number of times pages are fetched with EW or ER as resulting state. For further information see the section Locking and Server Communication in ObjectStore Performance. |
Long page fetches |
Number of times the duration of the page fetch exceeds the minimum time length that you specify when you format the trace file. For further information see Locking and Server Communication in ObjectStore Performance. |
Pages fetched |
Sum of the values of the page fetch categories fetched for write, fetched for read, and fetched free rider. See The Client Cache in ObjectStore Performance. |
Pages refetched |
Number of times pages are refetched after they are evicted from the client cache. |
Pages upgraded for read (local) |
Number of upgrades for read access granted on the client without involving the Server. The state transition changes from ER to ERLR or from EW to EWLR. For further information see the section Locking and Server Communication in ObjectStore Performance. |
Pages upgraded for write (local) |
Number of upgrades for write access granted on the client without involving the Server. The state transition changes from EW to EWLW or from EWLR to EWLW. For further information see the section Locking and Server Communication in ObjectStore Performance. |
Pages upgraded for write (Server) |
Number of upgrades that need a remote procedure to call the Server. The original page state is ER or ERLR; the resulting page state is always EWLW. For further information see the section Locking and Server Communication in ObjectStore Performance. |
Long page upgrades |
Number of times the duration of the page upgrade exceeds the minimum time length that you specify when you format the trace file. For further information see the section Locking and Server Communication in ObjectStore Performance. |
Pages upgraded |
Sum of the values of the page upgrade categories upgraded for read (local), upgraded for write (local), and upgraded for write (Server). For further information see the section Locking and Server Communication in ObjectStore Performance. |
Pages locked (working set) |
Number of pages with the state ERLR, EWLR, or EWLW. For further information see Locking and Server Communication in ObjectStore Performance. |
Pages locked for write |
Number of pages with the state EWLW. For further information see Locking and Server Communication in ObjectStore Performance. |
Pages not locked |
Number of pages in cache that are not locked. For further information see Locking and Server Communication in ObjectStore Performance |
Pages returned dirty |
Number of times pages with write access are evicted. These pages are returned to the Server and written to the log. |
Pages flushed |
Number of times pages with read access are evicted. These pages are removed from the client cache without involving the Server. |
Pages evicted |
Sum of the values of the eviction categories returned dirty and flushed. |
Pages committed |
Number of pages with page state EWLW that are returned to the Server during transaction commit. Pages returned during an eviction are not included because they are written to the Server log prior to the commit. These pages are counted as pages returned dirty. |
Pages called back immediately |
Number of pages for which the callback can be performed immediately because the client that causes the callback does not use the page in a conflicting manner. |
Pages called back pending |
Number of pages for which the callback cannot be performed immediately because the client that causes the callback uses the page in a conflicting manner. The client performs the downgrade after the current transaction is finished and the lock is released. |
Pages called back |
Sum of the values of the call back categories called back immediately and called back pending. This is the number of pages that are called back from the client cache by the Server because another client requested them for access. |
Pages allocated |
Number of times a page is newly allocated. The state transition changes from Not Seen to EWLW. Note that this is not object allocation. |
Page relocations |
Number of times pages are relocated. |
Objects allocated |
Number of objects that are allocated during a transaction. Note that this number is only counted at the end of a transaction and cannot be combined with generic events. |
Objects deleted |
Number of objects that are deleted during a transaction. Note that this number is only counted at the end of a transaction and cannot be combined with generic events. |
Client ratios
Cache hit rate |
Number of accesses to pages that are found in the cache compared to the number of accesses to pages that have to be fetched from the Server. The state of the pages found in cache changes from ER to ERLR, from EW to EWLR, or from EW to EWLW. |
Page refetch rate |
Number of pages refetched compared to the total number of fetches. |
Rate of data pages fetched |
Number of data pages fetched compared to the total number of page fetches. |
Rate of data pages committed |
Number of data pages committed compared to the total number of page commits. |
Rate of data pages called back |
Number of data pages called back compared to the total number of page callbacks. |
Rate of data pages evicted |
Number of data pages evicted compared to the total number of page evictions. |
Rate of data pages upgraded |
Number of data pages upgraded compared to the total number of page upgrades. |
Rate of data pages locked |
Number of data pages locked compared to the total number of page locks. |
Generic event counters
Generic event counters are specified to show you important application values over the duration of the trace. If you pass an integer value, you can display the events in the Client Counters/Ratios diagram. For details, refer to "Raising a generic event".
Unassigned address space
Unassigned address space indicates the size of the unassigned address space for persistent memory as a number of kilobytes.