全部產品
Search
文件中心

ApsaraDB RDS:【產品/功能變更】RDS PostgreSQL執行個體的增強監控記憶體相關指標項最佳化

更新時間:Jun 08, 2024

最佳化生效時間

2024年04月25日

最佳化內容

RDS PostgreSQL在基礎監控外,提供了豐富的增強監控項,包括作業系統指標(OS指標)和資料庫指標(DB指標)。產品控制台的監控項展示中,未詳細展示記憶體佔用情況。本次最佳化不僅在展示上進行了調整,展示了記憶體佔用情況,同時還對獨享型和通用型規格的記憶體相關指標進行了統一,並增加了記憶體分析等功能。

說明

增強監控記憶體相關指標最佳化後,執行個體規格及效能均不會發生變化。然而,由於計算邏輯調整,監控指標中展示結果更加精確,部分指標可能觸發警示。您可以前往RDS控制台的監控與警示,重新設定警示規則。

記憶體使用量率計算邏輯最佳化

獨享型執行個體

  • 最佳化前:記憶體使用量率=1- (/proc/meminfo.MemAvaliable / 規格記憶體 * 100%)

  • 最佳化後:記憶體使用量率=1- (/proc/meminfo.MemAvaliable / MemTotal * 100%)

通用型執行個體

記憶體使用量率計算保持不變,計算邏輯為:記憶體使用量率=1- 可用記憶體/規格記憶體,其中可用記憶體=(memory.limit_in_bytes - memory.usage_in_bytes) + (inactive_file + active_file) - min((inactive_file + active_file) / 2, 4%*規格記憶體)

資料來源和計算方式最佳化

OS指標維度

最佳化指標項

指標名

指標定義

執行個體類型

最佳化前

最佳化後

資料來源

資料計算方式

資料來源

資料計算方式

os.mem_size.spec

執行個體規格的記憶體大小

獨享型

mem_size

mem_size

保持不變。

通用型

mem_size

os.mem_size.used

記憶體使用量量

獨享型

/sys/fs/cgroup/memory/memory.usage_in_bytes

mem_rss + mem_mapped_file + hugetlb_usage_2m

/proc/meminfo

MemTotal - MemAvailable

通用型

/sys/fs/cgroup/memory/memory.usage_in_bytes

mem_rss + mem_mapped_file + hugetlb_usage_2m

保持不變。

os.mem_size.rss

常駐進程記憶體使用量量

獨享型

/sys/fs/cgroup/memory/memory.stat

memory.stat.rss

/proc<pid>/smaps

系統所有進程smaps的PSS值之和。

通用型

/sys/fs/cgroup/memory/memory.stat

memory.stat.rss

保持不變。

os.mem_size.cache

page cache記憶體

獨享型

/sys/fs/cgroup/memory/memory.stat

memory.stat.cache

/proc/meminfo

Cached的值。

通用型

/sys/fs/cgroup/memory/memory.stat

memory.stat.cache

保持不變。

os.mem_size.hugetlb_usage_2m

2M大頁使用量

獨享型

/sys/fs/cgroup/hugetlb/hugetlb

hugetlb.2MB.usage_in_bytes

/proc/meminfo

(HugePages_Total -HugePages_Free) * 2

通用型

/sys/fs/cgroup/hugetlb/hugetlb

hugetlb.2MB.usage_in_bytes

保持不變。

新增指標項

指標名

指標定義

執行個體類型

資料來源

資料計算方式

os.mem_size.reserved

作業系統預留記憶體

獨享型

/proc/meminfo

規格記憶體 - memTotal

通用型

該指標顯示值為0。

os.mem_size.virtual

虛擬化佔用記憶體(k8s相關組件佔用的記憶體)

獨享型

/proc/<pid>/smaps

從/proc/<pid>/stat中過濾出k8s相關進程,再通過/proc/<pid>/smaps計算這些記憶體的Pss(Proportional Set Size)值。

通用型

該指標顯示值為0。

os.mem_size.rds_process

RDS管控進程佔用記憶體

獨享型

/proc/meminfo

os.mem_size.rss - db.mem_size.rss - k8s相關進程的記憶體

通用型

該指標顯示值為0。

os.mem_size.free

作業系統空閑記憶體

獨享型

/proc/meminfo

memFree的值。

通用型

/sys/fs/cgroup/memory

memory.limit_in_bytes - memory.usage_in_bytes

os.mem_size.available

作業系統可用記憶體

獨享型

/proc/meminfo

memAvailable的值。

通用型

/sys/fs/cgroup/memory

free + pagecache - min(pagecache / 2, 4%*執行個體記憶體)

說明
  • 空閑記憶體:os.mem_size.free指標的採集方式與計算方式,與db.mem_size.free相同;空閑記憶體的指標屬於作業系統層面的監控指標,因此在作業系統維度中增加指標os.mem_size.free,後續逐漸會停止對db.mem_size.free的使用。

  • 可用記憶體:os.mem_size.available指標的採集方式與計算方式,與db.mem_available.size相同;可用記憶體的指標屬於作業系統層面的監控指標,因此在作業系統維度中增加指標os.mem_size.available,後續逐漸會停止對db.mem_available.size的使用。

DB指標維度

指標名

指標定義

執行個體類型

最佳化前

最佳化後

資料來源

資料計算方式

資料來源

資料計算方式

db.mem_size.spec

執行個體規格展示的memory大小

獨享型

不涉及資料擷取和計算。

通用型

db.mem_size.free

空閑記憶體(可回收記憶體)

獨享型

/proc/meminfo

meminfo.MemFree

不涉及最佳化。

後續使用新增指標os.mem_size.free。

通用型

/sys/fs/cgroup/memory

memory.limit_in_bytes - memory.usage_in_bytes

db.mem_size.available

可用記憶體(可回收記憶體)

獨享型

/proc/meminfo

MemAvaliable

不涉及最佳化。

後續使用新增指標os.mem_size.available。

通用型

/sys/fs/cgroup/memory 

(memory.limit_in_bytes - memory.usage_in_bytes) + (inactive_file + active_file) - min((inactive_file + active_file) / 2, 4%*執行個體記憶體)

db.mem_size.rss

pg 進程 rss 記憶體使用量量(不可回收記憶體)

獨享型

/proc/meminfo

規格記憶體 - (MemFree + ActiveFile + InactiveFile + SRecclaimable + shared_buffer)

/sys/fs/cgroup/memory/

memory.usage_in_bytes - inactive_file - active_file

通用型

/sys/fs/cgroup/memory

memory.usage_in_bytes - inactive_file - active_file

保持不變。

db.mem_size.shared_buffer

shared_buffer記憶體使用量量(可回收記憶體)

獨享型

/proc/meminfo

HugePages_Total * Hugepagesize

保持不變。

通用型

/sys/fs/cgroup/hugetlb/hugetlb.2MB.usage_in_bytes

hugetlb.2MB.usage_in_bytes

固定為規格記憶體的25%。

db.mem_size.cache

page cache記憶體使用量量(不可回收記憶體)

獨享型

/proc/meminfo

ActiveFile + InactiveFile + SReclaimable

/sys/fs/cgroup/memory/

inactive_file + active_file

通用型

/sys/fs/cgroup/memory/memory.stat

inactive_file + active_file

保持不變。

最佳化影響

  • 指標最佳化不會對執行個體規格和效能產生影響。

  • 因計算邏輯調整,監控指標的展示結果會有所變化。