内存管理函数
内存管理函数仅9.1.0及以上集群版本支持。
pg_shared_chunk_detail(contextname char(64))
描述:查询指定共享内存下内存上下文申请的所有chunk信息。
参数contextname,表示内存上下文名称。
使用该函数需先使用pg_shared_chunk_dump(contextname char(64))函数将相关信息打印成文件。
返回值类型:record
示例:
1 2 3 4 5 6 7 8 |
SELECT * FROM pg_shared_chunk_detail('pgstat file hash table'); parent | level | file_name | line_number | chunk_size | requested_number | total_size ---------------------+-------+--------------+-------------+------------+------------------+------------ pgstat file context | 2 | dynahash.cpp | 158 | 2048 | 1 | 2048 pgstat file context | 2 | dynahash.cpp | 158 | 256 | 1 | 256 pgstat file context | 2 | dynahash.cpp | 158 | 4096 | 9 | 36864 pgstat file context | 2 | dynahash.cpp | 158 | 8192 | 4 | 32768 (4 rows) |
pv_session_chunk_detail(tid int, contextname char(64))
描述:查询指定线程创建的某个内存上下文申请的所有chunk信息。
参数tid,表示线程ID;参数contextname,表示内存上下文名称。
使用该函数需使用pv_session_chunk_dump(tid int, contextname char(64))函数将相关信息打印成文件。
返回值类型:record
示例:
1 2 3 4 5 6 7 8 9 |
SELECT * FROM pv_session_chunk_detail(140178810990936, 'Timezones'); parent | level | file_name | line_number | chunk_size | requested_number | total_size ------------------+-------+---------------+-------------+------------+------------------+------------ TopMemoryContext | 1 | dynahash.cpp | 158 | 1280 | 2 | 2560 TopMemoryContext | 1 | dynahash.cpp | 158 | 160 | 1 | 160 TopMemoryContext | 1 | dynahash.cpp | 158 | 2560 | 2 | 5120 TopMemoryContext | 1 | localtime.cpp | 1965 | 128 | 1 | 128 TopMemoryContext | 1 | localtime.cpp | 1965 | 448 | 1 | 448 (5 rows) |
pg_shared_chunk_dump(contextname char(64))
描述:将指定共享内存下内存上下文申请的所有chunk信息打印成文件。
参数contextname,表示内存上下文名称。
返回值类型:boolean
示例:
1 2 3 4 5 |
SELECT * FROM pg_shared_chunk_dump('pgstat file hash table'); pg_shared_chunk_dump ---------------------- t (1 row) |
pv_session_chunk_dump(tid int, contextname char(64))
描述:将指定线程创建的某个内存上下文申请的所有chunk信息打印成文件。
参数tid,表示线程ID;参数contextname,表示内存上下文名称。
返回值类型:boolean
示例:
1 2 3 4 5 |
SELECT * FROM pv_session_chunk_dump(140472797325280, 'Timezones'); pv_session_chunk_dump ----------------------- t (1 row) |
gs_print_memory_profiling()
描述:打印内存采集详情。该函数仅9.1.1.100及以上集群版本支持。
返回值类型:boolean
示例:
1 2 3 4 5 |
SELECT * FROM gs_print_memory_profiling(); gs_print_memory_profiling ---------------------------- t (1 row) |
gs_gsc_dbstat_info(database_id bigint DEFAULT NULL::bigint)
描述:查询当前节点全局缓存内存(Global SysCache)的统计信息,例如SysCache缓存命中情况及LRU淘汰情况。该函数仅9.1.1.100及以上集群版本支持。
参数:database_id,表示数据库OID。
- 当database_id为空时,查询所有数据库的统计信息。
- 当database_id为0时,查询共享数据库的统计信息。
- 当database_id为有效数据库OID时,查询共享数据库和该数据库的统计信息。
返回值类型:record
函数返回字段如下:
名称 |
类型 |
描述 |
---|---|---|
database_id |
BIGINT |
数据库OID。 |
database_name |
TEXT |
数据库名称。 |
tup_searches |
BIGINT |
系统表缓存查找次数。 |
tup_hits |
BIGINT |
系统表缓存命中次数。 |
tup_miss |
BIGINT |
系统表缓存未命中触发扫描表的次数。 |
tup_swapout_count |
BIGINT |
被LRU淘汰的元组的数量。 |
tup_count |
BIGINT |
缓存中元组的数量。 |
tup_dead |
BIGINT |
垃圾队列中元组的数量。 |
tup_memory |
BIGINT |
缓存中元组的总内存。 |
total_memory |
BIGINT |
Global SysCache的总内存。 |
refcount |
BIGINT |
Global SysCache被线程引用的次数。 |
示例:
1 2 3 4 5 6 |
SELECT * FROM gs_gsc_dbstat_info(); database_id | database_name | tup_searches | tup_hits | tup_miss | tup_swapout_count | tup_count | tup_dead | tup_memory | total_memory | refcount -------------+---------------+--------------+----------+----------+-------------------+-----------+----------+------------+--------------+---------- 0 | | 12474 | 9876 | 14 | 0 | 16 | 0 | 12560 | 697664 | 0 17185 | postgres | 10156 | 5521 | 2223 | 0 | 1398 | 0 | 752296 | 4417856 | 11 (2 rows) |
gs_gsc_clean(database_id bigint DEFAULT NULL::bigint)
描述:清理指定数据库的全局缓存内存(Global SysCache)。该函数仅9.1.1.100及以上集群版本支持。
参数:database_id,表示数据库OID。
- 当database_id为空时,清理所有数据库的内存。
- 当database_id为0时,清理共享数据库的内存。
- 当database_id为有效数据库OID时,清理共享数据库和指定数据库的内存。
返回值类型:bool
示例:
1 2 3 4 5 |
SELECT * FROM gs_gsc_clean(); gs_gsc_clean -------------- t (1 row) |