PGXC_OBS_IO_SCHEDULER_STATS
PGXC_OBS_IO_SCHEDULER_STATS displays the latest real-time statistics about read/write requests of the OBS I/O Scheduler. This system view is supported only by clusters of version 9.1.0 or later.
Column |
Type |
Description |
---|---|---|
node_name |
text |
Node name. |
io_type |
char |
Type of I/O operation, including:
|
current_bps |
int8 |
Current bandwidth rate, in KB/s. |
best_bps |
int8 |
Best bandwidth rate achieved recently, in KB/s. |
waiting_request_num |
int |
Number of queued requests currently waiting. |
mean_request_size |
int8 |
Average length of requests processed recently, in 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
- Query statistics about read requests of OBS I/O Scheduler on each node:
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
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.
- Wait for a while and initiate the query again.
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
When the queue is empty and the value of available_token_num is equal to that of total_token_num, it indicates that the I/O scheduler has finished processing all requests and there are no new requests in line. The current_bps value is not 0 because it represents the average bandwidth (in bit/s) over a three-second period. Therefore, the displayed value reflects the data from three seconds ago.
- 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
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot