All Products
Search
Document Center

ApsaraDB RDS:[Product changes/Feature changes] The memory-related metrics supported by the enhanced monitoring feature of ApsaraDB RDS for PostgreSQL are optimized

Last Updated:Mar 28, 2026

Effective date: April 25, 2024

This update optimizes the enhanced monitoring feature for ApsaraDB RDS for PostgreSQL by expanding memory usage details, unifying metrics across dedicated and general-purpose instance types, and introducing the memory analysis feature.

Important

This update does not affect your instance specifications or performance. However, the adjusted calculation methods may cause existing alert thresholds to trigger unexpectedly. Reset your alert rules on the Monitoring and Alerts page in the ApsaraDB RDS console as needed.

Optimized memory usage calculation

Dedicated instances

Formula
BeforeMemory usage = 1 - (MemAvailable / Memory capacity supported by instance type) × 100%
AfterMemory usage = 1 - (MemAvailable / MemTotal) × 100%

The denominator changes from the instance type's nominal memory capacity to the actual MemTotal value reported by /proc/meminfo, which increases calculation precision.

General-purpose instances

The formula is unchanged:

Memory usage = 1 - Available memory / Memory capacity supported by instance type

Where available memory is calculated as:

Available memory = (memory.limit_in_bytes - memory.usage_in_bytes) + (inactive_file + active_file) - min((inactive_file + active_file) / 2, 4% × Memory capacity supported by instance type)

Optimized OS metrics

The following OS metrics have updated data sources and calculation methods for dedicated instances. General-purpose instances are unchanged.

MetricDescriptionInstance typeBefore: data sourceBefore: calculationAfter: data sourceAfter: calculation
os.mem_size.specMemory capacity supported by instance typeDedicatedmem_sizemem_sizeUnchanged
General-purposemem_size
os.mem_size.usedAmount of memory usedDedicated/sys/fs/cgroup/memory/memory.usage_in_bytesmem_rss + mem_mapped_file + hugetlb_usage_2m/proc/meminfoMemTotal - MemAvailable
General-purpose/sys/fs/cgroup/memory/memory.usage_in_bytesmem_rss + mem_mapped_file + hugetlb_usage_2mUnchanged
os.mem_size.rssMemory used by resident processesDedicated/sys/fs/cgroup/memory/memory.statmemory.stat.rss/proc/<pid>/smapsSum of proportional set size (PSS) values from the smaps files of all processes
General-purpose/sys/fs/cgroup/memory/memory.statmemory.stat.rssUnchanged
os.mem_size.cacheMemory used as page cacheDedicated/sys/fs/cgroup/memory/memory.statmemory.stat.cache/proc/meminfoValue of the page cache
General-purpose/sys/fs/cgroup/memory/memory.statmemory.stat.cacheUnchanged
os.mem_size.hugetlb_usage_2mMemory used by 2-MB huge pagesDedicated/sys/fs/cgroup/hugetlb/hugetlbhugetlb.2MB.usage_in_bytes/proc/meminfo(HugePages_Total - HugePages_Free) × 2
General-purpose/sys/fs/cgroup/hugetlb/hugetlbhugetlb.2MB.usage_in_bytesUnchanged

New OS metrics

Five OS-level metrics are added with this update.

MetricDescriptionInstance typeData sourceCalculation
os.mem_size.reservedMemory reserved for the operating systemDedicated/proc/meminfoMemory capacity supported by instance type - MemTotal
General-purposeAlways 0
os.mem_size.virtualMemory occupied by Kubernetes componentsDedicated/proc/<pid>/smapsPSS values from /proc/<pid>/smaps files of processes identified in /proc/<pid>/stat
General-purposeAlways 0
os.mem_size.rds_processMemory occupied by ApsaraDB RDS control processesDedicated/proc/meminfoos.mem_size.rss - db.mem_size.rss - Memory occupied by Kubernetes-related processes
General-purposeAlways 0
os.mem_size.freeFree memoryDedicated/proc/meminfoValue of MemFree
General-purpose/sys/fs/cgroup/memorymemory.limit_in_bytes - memory.usage_in_bytes
os.mem_size.availableAvailable memoryDedicated/proc/meminfoValue of MemAvailable
General-purpose/sys/fs/cgroup/memoryfree + pagecache - min(pagecache / 2, 4% × Instance memory)
Note

os.mem_size.free and os.mem_size.available use the same collection and calculation methods as db.mem_size.free and db.mem_available.size, respectively. The new OS-prefixed metrics are added to represent free and available memory explicitly at the OS level. The corresponding db.* metrics are phased out.

Optimized database metrics

MetricDescriptionInstance typeBefore: data sourceBefore: calculationAfter: data sourceAfter: calculation
db.mem_size.specMemory capacity supported by instance typeDedicatedNot collectedUnchanged
General-purposeNot collected
db.mem_size.freeFree memory that can be reclaimedDedicated/proc/meminfoMemFreeNot optimized. os.mem_size.free is added.
General-purpose/sys/fs/cgroup/memorymemory.limit_in_bytes - memory.usage_in_bytes
db.mem_size.availableAvailable memory that can be reclaimedDedicated/proc/meminfoMemAvailableNot optimized. os.mem_size.available is added.
General-purpose/sys/fs/cgroup/memory(memory.limit_in_bytes - memory.usage_in_bytes) + (inactive_file + active_file) - min((inactive_file + active_file) / 2, 4% × Instance memory)
db.mem_size.rssResident set size (RSS) memory used by PostgreSQL processesDedicated/proc/meminfoMemory capacity supported by instance type - (MemFree + ActiveFile + InactiveFile + SReclaimable + shared_buffer)/sys/fs/cgroup/memory/memory.usage_in_bytes - inactive_file - active_file
General-purpose/sys/fs/cgroup/memorymemory.usage_in_bytes - inactive_file - active_fileUnchanged
db.mem_size.shared_bufferMemory allocated to shared_buffers (reclaimable)Dedicated/proc/meminfoHugePages_Total × HugepagesizeUnchanged
General-purpose/sys/fs/cgroup/hugetlb/hugetlb.2MB.usage_in_byteshugetlb.2MB.usage_in_bytesFixed at 25% of memory capacity supported by instance type
db.mem_size.cacheMemory used as page cache (not reclaimable)Dedicated/proc/meminfoActiveFile + InactiveFile + SReclaimable/sys/fs/cgroup/memory/inactive_file + active_file
General-purpose/sys/fs/cgroup/memory/memory.statinactive_file + active_fileUnchanged

Potential impacts

  • This update does not affect instance specifications or performance.

  • Metric display values may change due to the adjusted calculation methods, particularly for dedicated instances where data sources have changed.

  • If existing alert rules trigger unexpectedly after April 25, 2024, reset them on the Monitoring and Alerts page in the ApsaraDB RDS console.