功能描述:统计CPU每个核心上运行过的进程数量,每1分钟向表中写入一次,每24小时统计数据归零,数据只保留7天。
编译参数:
首先将代码拷贝至PostgreSQL根目录的src/pl
下;
接着执行:cd src/pl/cpro ; make -j4 ; make install
GUC参数:
参数名称 | 参数说明 | 参数范围 | 默认值 |
---|---|---|---|
对应函数:
本Extension会在后台启动一个常驻进程,用于实时监控CPU核心上的进程运行情况,同时会将结果每一分钟写入数据库一次, 同时提供了两个基本函数,一个是查询某个时刻时的统计情况;另一个是统计一段时间内的使用情况的变化量。
postgres=# select * from cpro_query('2022-06-15 01:37:45.545044');
cap_time | pid_num | cpu_num
----------------------------+---------+---------
2022-06-15 01:37:45.545044 | 7 | 2
2022-06-15 01:37:45.545044 | 11 | 49
2022-06-15 01:37:45.545044 | 1 | 51
2022-06-15 01:37:45.545044 | 1 | 52
2022-06-15 01:37:45.545044 | 6 | 53
(5 rows)
需要注意的是,text1的时间需要比text2提前,否则会提示错误信息。
postgres=# select * from cpro_time('2022-06-15 01:37:45.545044','2022-06-15 01:41:45.595612'); <-- 正确情况
cpu_num | pid_num_time1 | pid_num_time2 | pid_variation
---------+---------------+---------------+---------------
2 | 7 | 7 | 0
49 | 11 | 11 | 0
51 | 1 | 1 | 0
52 | 1 | 1 | 0
53 | 6 | 6 | 0
(5 rows)
postgres=# select * from cpro_time('2022-06-15 01:41:45.595612','2022-06-15 01:37:45.545044'); <-- 错误情况
ERROR: Usage: cpro_time(start_time, end_time)
start_time must by ahead of end_time!