F.41. pgpro_cpumeter
pgpro_cpumeter â ÑÑо ÑаÑÑиÑение, коÑоÑое пÑедоÑÑавлÑÐµÑ Ð´Ð¾ÑÑÑп к новой ÑиÑÑемной ÑÑнкÑии мониÑоÑинга иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿ÑоÑеÑÑоÑа. ФÑнкÑÐ¸Ñ pgpro_cpumeter непÑеÑÑвно ÑобиÑÐ°ÐµÑ Ð¸ запиÑÑÐ²Ð°ÐµÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ ÑдÑаÑ
пÑоÑеÑÑоÑа, иÑполÑзÑемÑÑ
пÑоÑеÑÑами ÑеÑвеÑа Postgres Pro.
F.41.1. УÑÑановка
РаÑÑиÑение pgpro_cpumeter вклÑÑено в ÑоÑÑав Postgres Pro Standard как ÑÑандаÑÑное ÑаÑÑиÑение. ЧÑÐ¾Ð±Ñ Ð²ÐºÐ»ÑÑиÑÑ pgpro_cpumeter, вÑполниÑе ÑледÑÑÑий запÑоÑ:
CREATE EXTENSION pgpro_cpumeter;
F.41.2. ФÑнкÑÐ¸Ñ pgpro_cpumeter
РаÑÑиÑение pgpro_cpumeter пÑедоÑÑавлÑÐµÑ ÑледÑÑÑÑÑ ÑиÑÑемнÑÑ ÑÑнкÑиÑ:
-
pgpro_cpumeter(OUT start_time timestamptz, OUT end_time timestamptz, OUT user_time int, OUT system_time int, OUT cpus_allowed int, OUT cpus_online int, OUT arch text, OUT machine_id text, OUT system_identifier bigint) returns setof record ÐозвÑаÑÐ°ÐµÑ ÑобÑаннÑÑ ÑÑаÑиÑÑÐ¸ÐºÑ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿ÑоÑеÑÑоÑа в ÑледÑÑÑÐ¸Ñ Ð²ÑÑ Ð¾Ð´Ð½ÑÑ ÑÑолбÑÐ°Ñ :
start_timeÐÑÐµÐ¼Ñ Ð½Ð°Ñала пеÑиода измеÑений. ÐÑо знаÑение вклÑÑаеÑÑÑ Ð² пеÑиод измеÑений (
[start_time, end_time)). СооÑвеÑÑÑвÑÐµÑ Ð·Ð½Ð°ÑениÑend_timeпÑедÑдÑÑего пеÑиода измеÑений.end_timeÐÑÐµÐ¼Ñ Ð¾ÐºÐ¾Ð½ÑÐ°Ð½Ð¸Ñ Ð¿ÐµÑиода измеÑений, ÑказÑÐ²Ð°ÐµÑ Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð·Ð°Ð¿Ð¸Ñи ÑобÑанной инÑоÑмаÑии на диÑк. ÐÑо знаÑение не вклÑÑаеÑÑÑ Ð² пеÑиод измеÑÐµÐ½Ð¸Ñ (
[start_time, end_time)). ÐÑполÑзÑеÑÑÑ ÐºÐ°Ðºstart_timeÐ´Ð»Ñ ÑледÑÑÑего пеÑиода измеÑений.user_timeÐбÑее вÑÐµÐ¼Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿ÑоÑеÑÑоÑа вÑеми пÑоÑеÑÑами Postgres Pro в полÑзоваÑелÑÑком Ñежиме, в ÑекÑÐ½Ð´Ð°Ñ .
system_timeÐбÑее вÑÐµÐ¼Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿ÑоÑеÑÑоÑа вÑеми пÑоÑеÑÑами Postgres Pro в Ñежиме ÑдÑа, в ÑекÑÐ½Ð´Ð°Ñ .
cpus_allowedÐолиÑеÑÑво логиÑеÑÐºÐ¸Ñ ÑÐ´ÐµÑ Ð¿ÑоÑеÑÑоÑа, доÑÑÑпнÑÑ Ð¿ÑоÑеÑÑам Postgres Pro. ÐÑо знаÑение Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¾Ð³ÑаниÑено, напÑимеÑ, Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÑÑилиÑÑ
taskset, и обÑÑно менÑÑе или Ñавноcpus_online.cpus_onlineÐолиÑеÑÑво логиÑеÑÐºÐ¸Ñ ÑÐ´ÐµÑ Ð¿ÑоÑеÑÑоÑа, акÑивнÑÑ Ð² даннÑй Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð¸ доÑÑÑпнÑÑ Ð¾Ð¿ÐµÑаÑионной ÑиÑÑеме. ÐÑо знаÑение Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¼ÐµÐ½ÑÑе обÑего колиÑеÑÑва ÑизиÑеÑÐºÐ¸Ñ ÑÐ´ÐµÑ Ð² ÑиÑÑеме, напÑимеÑ, еÑли некоÑоÑÑе ÑдÑа оÑклÑÑенÑ.
archÐÑÑ Ð¸ÑекÑÑÑа пÑоÑеÑÑоÑа. ÐÑо знаÑение оÑÑаÑÑÑÑ Ð¿Ð¾ÑÑоÑннÑм Ð´Ð»Ñ Ð²Ñего клаÑÑеÑа баз даннÑÑ .
machine_idУникалÑнÑй иденÑиÑикаÑÐ¾Ñ Ñ Ð¾ÑÑа, Ñ ÑанÑÑийÑÑ Ð² Ñайле
/etc/machine-id. ÐÑо знаÑение Ð¼Ð¾Ð¶ÐµÑ Ð¸Ð·Ð¼ÐµÐ½Ð¸ÑÑÑÑ Ð¿Ñи пеÑеноÑе каÑалогаPGDATAна дÑÑгой ÑеÑвеÑ.system_identifierСиÑÑемнÑй иденÑиÑикаÑÐ¾Ñ ÐºÐ»Ð°ÑÑеÑа баз даннÑÑ . ÐÑо знаÑение оÑÑаÑÑÑÑ Ð¿Ð¾ÑÑоÑннÑм на пÑоÑÑжении вÑего ÑÑÑеÑÑÐ²Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ»Ð°ÑÑеÑа и изменÑеÑÑÑ ÑолÑко в ÑÐµÐ´ÐºÐ¸Ñ Ð¸ÑклÑÑиÑелÑнÑÑ ÑлÑÑаÑÑ .
F.41.3. ÐгÑаниÑÐµÐ½Ð¸Ñ Ð¸ оÑобенноÑÑи
ÐÑи иÑполÑзовании pgpro_cpumeter ÑÑиÑÑвайÑе ÑледÑÑÑие оÑобенноÑÑи:
СобÑÐ°Ð½Ð½Ð°Ñ ÑÑаÑиÑÑика запиÑÑваеÑÑÑ ÐºÐ°Ð¶Ð´Ñе 10 минÑÑ. ÐÑÐ¾Ñ Ð¸Ð½ÑеÑвал не Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¸Ð·Ð¼ÐµÐ½Ñн.
Ðднако ÑÑаÑиÑÑика Ñакже запиÑÑваеÑÑÑ Ð² пÑоÑеÑÑе оÑÑановки ÑеÑвеÑа до полной оÑÑановки. Ð ÑÑом ÑлÑÑае поÑледний пеÑиод измеÑений Ð¼Ð¾Ð¶ÐµÑ ÑоÑÑавлÑÑÑ Ð¼ÐµÐ½ÐµÐµ 10 минÑÑ.
ÐÑи ÑледÑÑÑем запÑÑке ÑеÑвеÑа знаÑение
start_timeне бÑÐ´ÐµÑ ÑовпадаÑÑ Ñо знаÑениемend_timeпоÑледнего пеÑиода. ÐнаÑениеstart_timeÐ´Ð»Ñ Ð¿ÐµÑвой запиÑи бÑÐ´ÐµÑ Ñавно вÑемени запÑÑка ÑеÑвеÑа.ÐÑи Ñбое ÑеÑвеÑа ÑобÑÐ°Ð½Ð½Ð°Ñ ÑÑаÑиÑÑика за поÑледний пеÑиод измеÑений (до 10 минÑÑ) ÑеÑÑеÑÑÑ.
F.41.4. ÐÑимеÑ
РпÑимеÑе ниже показано, как иÑполÑзоваÑÑ pgpro_cpumeter, а Ñакже пÑедÑÑавлен ожидаемÑй ÑезÑлÑÑаÑ.
postgres=# CREATE EXTENSION pgpro_cpumeter;
CREATE EXTENSION
postgres=# SELECT * FROM pgpro_cpumeter() ORDER BY start_time ASC LIMIT 5;
start_time | end_time | user_time | system_time | cpus_allowed | cpus_online | arch | machine_id | system_identifier
-------------------------------+-------------------------------+-----------+-------------+--------------+-------------+--------+----------------------------------+---------------------
2025-11-18 14:20:18.83645+03 | 2025-11-18 14:30:19.209694+03 | 43 | 23 | 8 | 8 | x86_64 | 38ee3ff28a0044acbb18dd42c3c3b626 | 7574023672154028988
2025-11-18 14:30:19.209694+03 | 2025-11-18 14:40:19.494243+03 | 5456 | 432 | 8 | 8 | x86_64 | 38ee3ff28a0044acbb18dd42c3c3b626 | 7574023672154028988
2025-11-18 14:40:19.494243+03 | 2025-11-18 14:50:19.718256+03 | 0 | 0 | 3 | 8 | x86_64 | 38ee3ff28a0044acbb18dd42c3c3b626 | 7574023672154028988
2025-11-18 14:50:19.718256+03 | 2025-11-18 15:00:19.972368+03 | 5 | 2 | 3 | 8 | x86_64 | 38ee3ff28a0044acbb18dd42c3c3b626 | 7574023672154028988
2025-11-18 15:00:19.972368+03 | 2025-11-18 15:10:20.222102+03 | 97 | 21 | 3 | 8 | x86_64 | 38ee3ff28a0044acbb18dd42c3c3b626 | 7574023672154028988
(5 rows)
postgres=# SELECT start_time, end_time, user_time, system_time, cpus_allowed, cpus_online FROM pgpro_cpumeter() ORDER BY start_time ASC LIMIT 5;
start_time | end_time | user_time | system_time | cpus_allowed | cpus_online
-------------------------------+-------------------------------+-----------+-------------+--------------+-------------
2025-11-18 14:20:18.83645+03 | 2025-11-18 14:30:19.209694+03 | 43 | 23 | 8 | 8
2025-11-18 14:30:19.209694+03 | 2025-11-18 14:40:19.494243+03 | 5456 | 432 | 8 | 8
2025-11-18 14:40:19.494243+03 | 2025-11-18 14:50:19.718256+03 | 0 | 0 | 3 | 8
2025-11-18 14:50:19.718256+03 | 2025-11-18 15:00:19.972368+03 | 5 | 2 | 3 | 8
2025-11-18 15:00:19.972368+03 | 2025-11-18 15:10:20.222102+03 | 97 | 21 | 3 | 8
(5 rows)
postgres=# SELECT
min(start_time) AS min_start_time,
max(end_time) AS max_end_time,
sum(user_time) AS total_user_time,
sum(system_time) AS total_system_time,
cpus_allowed,
cpus_online,
arch,
machine_id,
system_identifier
FROM pgpro_cpumeter()
WHERE start_time >= '2025-11-17' AND end_time < '2025-11-22'
GROUP BY cpus_allowed, cpus_online, arch, machine_id, system_identifier
ORDER BY min_start_time ASC;
min_start_time | max_end_time | total_user_time | total_system_time | cpus_allowed | cpus_online | arch | machine_id | system_identifier
-------------------------------+-------------------------------+-----------------+-------------------+--------------+-------------+--------+----------------------------------+---------------------
2025-11-18 14:20:18.83645+03 | 2025-11-21 12:15:30.438471+03 | 755332 | 43234 | 8 | 8 | x86_64 | 38ee3ff28a0044acbb18dd42c3c3b626 | 7574023672154028988
2025-11-18 18:31:08.321651+03 | 2025-11-21 13:25:53.491532+03 | 54526 | 3231 | 3 | 8 | x86_64 | 38ee3ff28a0044acbb18dd42c3c3b626 | 7574023672154028988
(2 rows)