PV_SESSION_MEMORY_DETAIL
PV_SESSION_MEMORY_DETAIL统计线程的内存使用情况,以MemoryContext节点来统计。
其中内存上下文“TempSmallContextGroup”,记录当前线程中所有内存上下文字段“totalsize”小于8192字节的信息汇总,并且内存上下文统计计数记录到“usedsize”字段中。所以在视图中,“TempSmallContextGroup”内存上下文中的“totalsize”和“freesize”是该线程中所有内存上下文“totalsize”小于8192字节的汇总总和,usedsize字段表示统计的内存上下文个数。
可通过"select * from pv_session_memctx_detail(threadid, '');"将某个线程所有内存上下文信息记录到“/tmp/dumpmem”目录下的“threadid_timestamp.log”文件中。其中threadid可通过下表sessid中获得。
名称 |
类型 |
描述 |
---|---|---|
sessid |
text |
线程启动时间+线程标识+节点名称(字符串信息为timestamp.threadid.nodename)。 |
sesstype |
text |
线程名称。 |
contextname |
text |
内存上下文名称。 |
level |
smallint |
当前上下文在整体内存上下文中的层级。 |
parent |
text |
父内存上下文名称。 |
totalsize |
bigint |
当前内存上下文的内存总数,单位Byte。 |
freesize |
bigint |
当前内存上下文中已释放的内存总数,单位Byte。 |
usedsize |
bigint |
当前内存上下文中已使用的内存总数,单位Byte;“TempSmallContextGroup”内存上下文中该字段含义为统计计数。 |
应用示例
查询当前节点上所有MemoryContext的使用情况。
根据sessid定位到该MemoryContext是在哪个线程中创建和使用的,依据totalsize,freesize及usedsize来确认内存的使用情况是否符合预期,预先判断是否可能存在内存泄露的风险。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
SELECT * FROM pv_session_memory_detail; sessid | sesstype | contextname | level | parent | totalsize | freesize | usedsize -----------------------------------------+------------------------+------------------------------------------------+-------+------------------------------+-----------+----------+---------- 1760444600.140326303563096.coordinator1 | GlobalDeadLockDetector | TempSmallContextGroup | 0 | | 646520 | 125184 | 149 1760444600.140326303563096.coordinator1 | GlobalDeadLockDetector | TopMemoryContext | 0 | | 372672 | 19488 | 353184 1760444600.140326303563096.coordinator1 | GlobalDeadLockDetector | Record information cache | 1 | TopMemoryContext | 24576 | 13632 | 10944 1760444600.140326303563096.coordinator1 | GlobalDeadLockDetector | Operator class cache | 1 | TopMemoryContext | 24576 | 15168 | 9408 1760444600.140326303563096.coordinator1 | GlobalDeadLockDetector | smgr relation table | 1 | TopMemoryContext | 24576 | 11040 | 13536 1760444600.140326303563096.coordinator1 | GlobalDeadLockDetector | TransactionAbortContext | 1 | TopMemoryContext | 32768 | 32704 | 64 1760444600.140326303563096.coordinator1 | GlobalDeadLockDetector | Portal hash | 1 | TopMemoryContext | 24576 | 16192 | 8384 1760444600.140326303563096.coordinator1 | GlobalDeadLockDetector | CacheMemoryContext | 1 | TopMemoryContext | 1858848 | 10640 | 1848208 1760444600.140326303563096.coordinator1 | GlobalDeadLockDetector | InvalidCacheMemoryContext | 2 | CacheMemoryContext | 2088960 | 828928 | 1260032 1760444600.140326303563096.coordinator1 | GlobalDeadLockDetector | WAL record construction | 1 | TopMemoryContext | 49792 | 6528 | 43264 1760444600.140326303563096.coordinator1 | GlobalDeadLockDetector | LOCAL LOCK hash | 1 | TopMemoryContext | 24576 | 15936 | 8640 1760444600.140326303563096.coordinator1 | GlobalDeadLockDetector | Timezones | 1 | TopMemoryContext | 24576 | 15808 | 8768 1760444600.140326303563096.coordinator1 | GlobalDeadLockDetector | SELF MEMORY CONTEXT | 1 | TopMemoryContext | 66600 | 17824 | 48776 1760444600.140326303562480.coordinator1 | file_recyclebin | TempSmallContextGroup | 0 | | 642688 | 129040 | 147 1760444600.140326303562480.coordinator1 | file_recyclebin | TopMemoryContext | 0 | | 1437632 | 14256 | 1423376 1760444600.140326303562480.coordinator1 | file_recyclebin | Operator class cache | 1 | TopMemoryContext | 24576 | 15168 | 9408 1760444600.140326303562480.coordinator1 | file_recyclebin | smgr relation table | 1 | TopMemoryContext | 24576 | 11040 | 13536 1760444600.140326303562480.coordinator1 | file_recyclebin | TransactionAbortContext | 1 | TopMemoryContext | 32768 | 32704 | 64 1760444600.140326303562480.coordinator1 | file_recyclebin | Portal hash | 1 | TopMemoryContext | 24576 | 16192 | 8384 1760444600.140326303562480.coordinator1 | file_recyclebin | CacheMemoryContext | 1 | TopMemoryContext | 1858848 | 12096 | 1846752 |