Skip to content

Commit 662e6d0

Browse files
Andrey Kazarinovdanolivo
Andrey Kazarinov
authored andcommitted
[PGPRO-7366] add function which shows memory usage
function memctx_htab_sizes outputs allocated sizes and used sizes of aqo's memory contexts and hash tables
1 parent 6b4f856 commit 662e6d0

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

aqo--1.5--1.6.sql

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,3 +98,19 @@ AS 'MODULE_PATHNAME', 'aqo_queries'
9898
LANGUAGE C STRICT VOLATILE PARALLEL SAFE;
9999

100100
CREATE VIEW aqo_queries AS SELECT * FROM aqo_queries();
101+
102+
CREATE FUNCTION aqo_memory_usage(
103+
OUT name text,
104+
OUT allocated_size int,
105+
OUT used_size int
106+
)
107+
RETURNS SETOF record
108+
AS $$
109+
SELECT name, total_bytes, used_bytes FROM pg_backend_memory_contexts
110+
WHERE name LIKE 'AQO%'
111+
UNION
112+
SELECT name, allocated_size, size FROM pg_shmem_allocations
113+
WHERE name LIKE 'AQO%';
114+
$$ LANGUAGE SQL;
115+
COMMENT ON FUNCTION aqo_memory_usage() IS
116+
'Show allocated sizes and used sizes of aqo`s memory contexts and hash tables';

t/001_pgbench.pl

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,9 @@
159159
WHERE v.exec_time > 0.");
160160
is($res, 3);
161161

162+
$res = $node->safe_psql('postgres', "SELECT * FROM aqo_memory_usage() AS t1");
163+
note("MEMORY:\n$res\n");
164+
162165
# ##############################################################################
163166
#
164167
# pgbench on a database with AQO in 'learn' mode.
@@ -183,6 +186,9 @@
183186
"$TRANSACTIONS", '-c', "$CLIENTS", '-j', "$THREADS" ],
184187
'pgbench in frozen mode');
185188

189+
$res = $node->safe_psql('postgres', "SELECT * FROM aqo_memory_usage() AS t1");
190+
note("MEMORY:\n$res\n");
191+
186192
# ##############################################################################
187193
#
188194
# Check procedure of ML-knowledge data cleaning.
@@ -298,6 +304,9 @@
298304
is($new_stat_count == $stat_count - $pgb_stat_count, 1,
299305
'Total number of samples in aqo_query_stat');
300306

307+
$res = $node->safe_psql('postgres', "SELECT * FROM aqo_memory_usage() AS t1");
308+
note("MEMORY:\n$res\n");
309+
301310
# ##############################################################################
302311
#
303312
# AQO works after moving to another schema

0 commit comments

Comments
 (0)