我們在託管Web API的Docker/Ubuntu上運行.NET Core 1.1容器。這些容器基於microsoft/aspnetcore:1.1.2
,其中包含針對Ubuntu x64平臺發佈的二進制文件,並在構建映像時複製到其中,儘可能簡單。如何減少.NET Core docker容器的內存使用量?
我們的Web APIs目前也非常簡單,至多有少數控制器從SQL Server中提取數據。它們沒有顯着的緩存或任何異常情況,但每次運行時都使用500-900 Mb的RAM。這不是由於內存泄漏造成的 - 每個容器的內存使用量隨時間變化都是穩定的,在使用過程中上下變化10-15Mb。
這個級別的RAM使用應該是完全沒有必要的 - 我該如何減少它?
我回顧了Docker container memory use的問題,但它有所不同,現在還沒有答案。
限制容器上的最大內存量。大多數應用程序(包括數據庫服務器)都會嘗試獲取儘可能多的內存,然後運行它們,然後查看您的應用程序是否可以在此限制範圍內運行。 – Tseng
是的,謝謝,這在某種程度上有效,但是我看到的是容器未使用內存減少,內存只是進入交換,這會降低API的性能。 – Peter