So sánh · Server GC và Workstation GC

Cùng một API rảnh, hai cách GC giữ bộ nhớ

Server GC và Workstation GC trong container Server GC tạo một heap cho mỗi core và giữ anon 822 MB trên trần 1 GiB; Workstation GC dùng một heap chung và anon còn khoảng 288 MB. SERVER GC · MẶC ĐỊNH ASP.NET CORE Một heap cho mỗi CPU core WORKSTATION GC · DOTNET_gcServer=0 Một heap dùng chung Core 0 Core 1 Core 2 Core 3 Core 0 Core 1 Core 2 Core 3 Heap 0 + GC thread Heap 1 + GC thread Heap 2 + GC thread Heap 3 + GC thread Một heap dùng chung DOTNET_GCConserveMemory=5 · Cho heap phình to để giảm số lần GC · Rất ít trả bộ nhớ về hệ điều hành · GC thường xuyên hơn, mỗi lần nhẹ hơn · Trả bộ nhớ về hệ điều hành sớm hơn TRẦN CGROUP 1 GiB TRẦN CGROUP 1.5 GiB HEAP LIMIT 75% · 768 MB anon 822 MB · bộ nhớ thật, không thu hồi được file 161 MB · page cache, kernel tự nhả docker stats: 987.6 MiB / 1 GiB · 96% anon ≈ 288 MB sau 30 phút · giảm 65% trần nâng lên 1.5 GiB chỉ để làm đệm docker stats: 469.5 MiB / 1.5 GiB · 31% CHÚ GIẢI anon trước khi sửa page cache anon sau khi sửa GC heap hard limit © tiennhm