Help Center > > Developer Guide> Resource Load Management> Resource Monitoring> Real-time TopSQL

Real-time TopSQL

Updated at: Nov 08, 2021 GMT+08:00

You can query real-time TopSQL in real-time resource monitoring views at query and operator levels. The real-time resource monitoring view records the resource usage (including memory, disk, CPU time, and I/O) and performance alarm information during job running.

The following table describes the external interfaces of the real-time views.

Table 1 Real-time resource monitoring views

Level

Monitored Node

View

Query

Current CN

gs_wlm_session_statistics

All CNs

pgxc_wlm_session_statistics

Operator

Current CN

gs_wlm_operator_statistics

All CNs

pgxc_wlm_operator_statistics

  • Prefixes gs and pgxc indicate views showing single CN information and those showing cluster information, respectively. Common users can log in to a CN in the cluster to query only views with the gs prefix.
  • When you query this type of views, there will be network latency, because the views obtain resource usage in real time.
  • If instance fault occurs, some SQL statement information may fail to be recorded in real-time resource monitoring views.
  • SQL statements are recorded in real-time resource monitoring views as follows:
    • DDL statements are not recorded, such as the execution of CREATE, ALTER, DROP, GRANT, REVOKE, and VACUUM statements.
    • DML statements are recorded, including
      • The execution of SELECT, INSERT, UPDATE, and DELETE statements.
      • The execution of explain analyze and explain performance scenarios.
      • The use of query level view, which also supports the CREATE TABLE AS syntax.
    • Statements in functions and stored procedures and statements used for calling functions and stored procedures are recorded. Statements in loop bodies (if any) of functions and stored procedures are not recorded.
    • Statements in anonymous blocks are not recorded.
    • Statements in transaction blocks are recorded. Statements in loop bodies (if any) of transaction blocks are not recorded.
    • Cursor statements are recorded.
    • Jobs in a redistribution process are not monitored.

Prerequisites

  • The GUC parameter enable_resource_track is set to on. The default value is on.
  • The GUC parameter resource_track_level is set to query, perf, or operator. The default value is query.
  • Job monitoring rules are as follows:
    • Jobs whose execution cost estimated by the optimizer is greater than or equal to resource_track_cost.
    • Long query jobs
  • If the Cgroups function is properly loaded, you can run the gs_cgroup -P command to view information about Cgroups.

In the preceding prerequisites, enable_resource_track is a system-level parameter that specifies whether to enable resource monitoring. resource_track_level is a session-level parameter. You can set the resource monitoring level of a session as needed. The following table describes the values of the two parameters.

Table 2 Setting the resource monitoring level to collect statistics

enable_resource_track

resource_track_level

Query-Level Information

Operator-Level Information

on(default)

none

Not collected

Not collected

query(default)

Collected

Not collected

perf

Collected

Not collected

operator

Collected

Collected

off

none/query/operator

Not collected

Not collected

Procedure

  1. Query for the real-time CPU information in the gs_session_cpu_statistics view.

    1
    SELECT * FROM gs_session_cpu_statistics;
    

  2. Query for the real-time memory information in the gs_session_memory_statistics view.

    1
    SELECT * FROM gs_session_memory_statistics;
    

  3. Query for the real-time resource information about the current CN in the gs_wlm_session_statistics view.

    1
    SELECT * FROM gs_wlm_session_statistics;
    

  4. Query for the real-time resource information about all CNs in the pgxc_wlm_session_statistics view.

    1
    SELECT * FROM pgxc_wlm_session_statistics;
    

  5. Query for the real-time resource information about job operators on the current CN in the gs_wlm_operator_statistics view.

    1
    SELECT * FROM gs_wlm_operator_statistics;
    

  6. Query for the real-time resource information about job operators on all CNs in the pgxc_wlm_operator_statistics view.

    1
    SELECT * FROM pgxc_wlm_operator_statistics;
    

  7. Query for the load management information about the jobs executed by the current user in the PG_SESSION_WLMSTAT view.

    1
    SELECT * FROM pg_session_wlmstat;
    

  8. Query the job execution status of the current user on each CN in the pgxc_wlm_workload_records view (this view is available when the dynamic load function is enabled, that is, enable_dynamic_workload is set to on).

    1
    SELECT * FROM pgxc_wlm_workload_records;
    

Did you find this page helpful?

Submit successfully!

Thank you for your feedback. Your feedback helps make our documentation better.

Failed to submit the feedback. Please try again later.

Which of the following issues have you encountered?







Please complete at least one feedback item.

Content most length 200 character

Content is empty.

OK Cancel