Help Center> GaussDB(DWS)> 3.0 Developer Guide> System Views> PGXC_OBS_IO_SCHEDULER_STATS
Updated on 2024-03-14 GMT+08:00

PGXC_OBS_IO_SCHEDULER_STATS

Queries the latest real-time statistics about read/write requests of the OBS I/O Scheduler. This system view is supported only by DWS 3.0.

Table 1 PGXC_OBS_IO_SCHEDULER_STATS columns

Column

Type

Description

node_name

text

Node

io_type

char

I/O type.

  • r indicates read.
  • w indicates write.
  • s indicates file operations.

current_bps

int8

Current bandwidth rate (KB/s)

best_bps

int8

Optimal bandwidth rate reached recently (KB/s)

waiting_request_num

int

Number of queuing requests

mean_request_size

int8

Average length of recently processed requests (KB)

total_token_num

int

Total number of I/O tokens

available_token_num

int

Number of available I/O tokens

total_worker_num

int

Total number of working threads

idle_worker_num

int

Number of idle working threads

Example

  1. Query statistics about read requests of OBS I/O Scheduler on each node:

    According to the result, this is a snapshot of the statistics at a certain time point when the current I/O scheduler reads I/Os. At this time, the bandwidth is increasing, and current_bps is equal to best_bps. Take dn_6003_6004 as an example. You can see that there are queuing requests on the current DN. The value of total_token_num is the same as that of available_token_num, indicating that the I/O scheduler has not started to process these requests when the view is queried.
    SELECT * FROM pgxc_obs_io_scheduler_stats WHERE io_type = 'r' ORDER BY node_name;
    
      node_name   | io_type | current_bps | best_bps | waiting_request_num | mean_request_size | total_token_num | available_token_num | total_worker_num | idle_worker_num
    --------------+---------+-------------+----------+---------------------+-------------------+-----------------+---------------------+------------------+-----------------
     dn_6001_6002 | r       |       26990 |    26990 |                   0 |               215 |              18 |                  16 |               12 |              10
     dn_6003_6004 | r       |       21475 |    21475 |                  10 |               190 |              30 |                  30 |               20 |              20
     dn_6005_6006 | r       |       12384 |    12384 |                  36 |               133 |              30 |                  27 |               20 |              17

  2. Wait for a while and initiate the query again.

    At this time, there is no queuing request in the queue, and available_token_num is equal to total_token_num, indicating that the IO Scheduler has processed all requests and no new request needs to be processed. However, the value of current_bps is not 0 because the period for collecting bps statistics is 3 seconds, and the result was generated 3 seconds ago.
    SELECT * FROM pgxc_obs_io_scheduler_stats WHERE io_type = 'r' ORDER BY node_name;
    
      node_name   | io_type | current_bps | best_bps | waiting_request_num | mean_request_size | total_token_num | available_token_num | total_worker_num | idle_worker_num
    --------------+---------+-------------+----------+---------------------+-------------------+-----------------+---------------------+------------------+-----------------
     dn_6001_6002 | r       |       13228 |    26990 |                   0 |               609 |              18 |                  18 |               12 |              12
     dn_6003_6004 | r       |       15717 |    21475 |                   0 |               622 |              30 |                  30 |               20 |              20
     dn_6005_6006 | r       |       18041 |    21767 |                   0 |               609 |              30 |                  30 |               20 |              20

  1. After a short period of time, the query result is as follows. The value of current_bps changes to 0.

    SELECT * FROM pgxc_obs_io_scheduler_stats WHERE io_type = 'r' ORDER BY node_name;
    
      node_name   | io_type | current_bps | best_bps | waiting_request_num | mean_request_size | total_token_num | available_token_num | total_worker_num | idle_worker_num
    --------------+---------+-------------+----------+---------------------+-------------------+-----------------+---------------------+------------------+-----------------
     dn_6001_6002 | r       |           0 |    26990 |                   0 |               609 |              18 |                  18 |               12 |              12
     dn_6003_6004 | r       |           0 |    21475 |                   0 |               622 |              30 |                  30 |               20 |              20
     dn_6005_6006 | r       |           0 |    21767 |                   0 |               609 |              30 |                  30 |               20 |              20