最佳化生效時間
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 | |||||
os.mem_size.used | 記憶體使用量量 | 獨享型 | /sys/fs/cgroup/memory/memory.usage_in_bytes |
| /proc/meminfo |
|
通用型 | /sys/fs/cgroup/memory/memory.usage_in_bytes |
| 保持不變。 | |||
os.mem_size.rss | 常駐進程記憶體使用量量 | 獨享型 | /sys/fs/cgroup/memory/memory.stat |
| /proc<pid>/smaps | 系統所有進程smaps的PSS值之和。 |
通用型 | /sys/fs/cgroup/memory/memory.stat |
| 保持不變。 | |||
os.mem_size.cache | page cache記憶體 | 獨享型 | /sys/fs/cgroup/memory/memory.stat |
| /proc/meminfo | Cached的值。 |
通用型 | /sys/fs/cgroup/memory/memory.stat |
| 保持不變。 | |||
os.mem_size.hugetlb_usage_2m | 2M大頁使用量 | 獨享型 | /sys/fs/cgroup/hugetlb/hugetlb |
| /proc/meminfo |
|
通用型 | /sys/fs/cgroup/hugetlb/hugetlb |
| 保持不變。 | |||
新增指標項
指標名 | 指標定義 | 執行個體類型 | 資料來源 | 資料計算方式 |
os.mem_size.reserved | 作業系統預留記憶體 | 獨享型 | /proc/meminfo |
|
通用型 | 該指標顯示值為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 |
|
通用型 | 該指標顯示值為0。 | |||
os.mem_size.free | 作業系統空閑記憶體 | 獨享型 | /proc/meminfo | memFree的值。 |
通用型 | /sys/fs/cgroup/memory |
| ||
os.mem_size.available | 作業系統可用記憶體 | 獨享型 | /proc/meminfo | memAvailable的值。 |
通用型 | /sys/fs/cgroup/memory |
| ||
空閑記憶體: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 |
| 不涉及最佳化。 後續使用新增指標os.mem_size.free。 | |
通用型 | /sys/fs/cgroup/memory |
| ||||
db.mem_size.available | 可用記憶體(可回收記憶體) | 獨享型 | /proc/meminfo |
| 不涉及最佳化。 後續使用新增指標os.mem_size.available。 | |
通用型 | /sys/fs/cgroup/memory |
| ||||
db.mem_size.rss | pg 進程 rss 記憶體使用量量(不可回收記憶體) | 獨享型 | /proc/meminfo |
| /sys/fs/cgroup/memory/ |
|
通用型 | /sys/fs/cgroup/memory |
| 保持不變。 | |||
db.mem_size.shared_buffer | shared_buffer記憶體使用量量(可回收記憶體) | 獨享型 | /proc/meminfo |
| 保持不變。 | |
通用型 | /sys/fs/cgroup/hugetlb/hugetlb.2MB.usage_in_bytes |
| 固定為規格記憶體的25%。 | |||
db.mem_size.cache | page cache記憶體使用量量(不可回收記憶體) | 獨享型 | /proc/meminfo |
| /sys/fs/cgroup/memory/ |
|
通用型 | /sys/fs/cgroup/memory/memory.stat |
| 保持不變。 | |||
最佳化影響
指標最佳化不會對執行個體規格和效能產生影響。
因計算邏輯調整,監控指標的展示結果會有所變化。