成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

asp.net core服務限制堆內存大小的操作方法

瀏覽:407日期:2022-06-08 18:04:38
目錄
  • 前言
  • 1、asp.net core是什么
  • 2、限制其堆內存最大大小
    • 2.1 設置.NET 運行時的配置
    • 2.2 在項目中創建runtimeconfig.json配置文件
    • 2.2 限制堆的大小
  • 3、測試配置是否生效
    • 4、在docker容器中限制堆內存大小

      前言

      在我們眾多的微服務項目中,都有限制其堆內存大小的需求,以免占用宿主機內存過高。

      在java中我們可以通過jvm參數來很好的控制堆內存以及其他參數。

      但是在asp.net core的web服務中,我們該如何去限制堆內存大小呢?

      提示:以下是本篇文章正文內容,下面案例可供參考

      1、asp.net core是什么

      微軟旗下支持跨平臺的開發框架,與springboot思想類似,支持ioc等,可以快速的開發web api等項目
      官方文檔:https://learn.microsoft.com/zh-cn/aspnet/core/introduction-to-aspnet-core?view=aspnetcore-6.0

      2、限制其堆內存最大大小

      建議熟讀官方文檔:https://learn.microsoft.com/zh-cn/dotnet/core/runtime-config/

      2.1 設置.NET 運行時的配置

      官網文檔:https://learn.microsoft.com/zh-cn/dotnet/core/runtime-config/#runtimeconfigjson

      .NET 提供了以下機制用于配置 .NET 運行時的行為:

      • runtimeconfig.json 文件
      • MSBuild 屬性
      • 環境變量

      通過使用環境變量來配置某個選項會將設置應用于所有的 .NET 應用。 在 runtimeconfig.json 或項目文件中配置某個選項則只會將設置應用于該應用程序。

      選擇 runtimeconfig.json文件作為.net運行時的配置文件。

      2.2 在項目中創建runtimeconfig.json配置文件

      構建項目時,將在打包的輸出目錄中生成 [appname].runtimeconfig.json 文件。

      如果項目文件所在的文件夾中存在 runtimeconfig.template.json 文件,它包含的任何配置選項都將插入到 [appname].runtimeconfig.json 文件中。

      如果自行構建應用,請將所有配置選項放在 runtimeconfig.template.json 文件中。 如果只是運行應用,請將其直接插入 [appname].runtimeconfig.template.json 文件中。

      2.2 限制堆的大小

      • 指定 GC 堆和 GC 簿記的最大提交大小(以字節為單位)。
      • 此設置僅適用于 64 位計算機。
      • 如果已配置每對象堆限制,則忽略此設置。
      • 默認值(僅在某些情況下適用)是 20 MB 或容器內存限制的 75%(以較大者為準)。 此默認值在以下情況下適用:
      • 進程正在具有指定內存限制的容器中運行。
      • HeapHardLimitPercent 未設置。

      示例:限制堆內存最大為1G

      {    "configProperties": {      "System.GC.HeapHardLimit": 1073741824    }}

      3、測試配置是否生效

      測試控制器:

      [Route("api/[controller]/[action]")][ApiController]public class TestController : ControllerBase{    [HttpGet]    public void testMemory()    {List<byte[]> bytesList = new List<byte[]>();while (true){    Console.ReadKey();    // 100m    for (int i = 0; i < 100; i++)    {// 1mbbyte[] bytes = new byte[1024 * 1024];bytesList.Add(bytes);    }    Console.WriteLine("當前堆內存大小 -- " + GC.GetTotalMemory(false) / 1024 / 1024.0 + " MB");}    }}

      結果,可見配置生效,達到1g時報錯 System.OutOfMemoryException,然后系統強行gc,服務down,配置docker-compose的自動重啟即可完成gc后自動重啟

      當前堆內存大小 -- 102.0029296875 MB當前堆內存大小 -- 202.013671875 MB當前堆內存大小 -- 302.0166015625 MB當前堆內存大小 -- 402.0126953125 MB當前堆內存大小 -- 502.0166015625 MB當前堆內存大小 -- 602.02734375 MB當前堆內存大小 -- 702.044921875 MB當前堆內存大小 -- 802.046875 MB當前堆內存大小 -- 902.0498046875 MBinfo: Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker[2]      Executed action office_conver_server.Controllers.TestController.testMemory (office-conver-server) in 5924.7612msinfo: Microsoft.AspNetCore.Routing.EndpointMiddleware[1]      Executed endpoint "office_conver_server.Controllers.TestController.testMemory (office-conver-server)"fail: Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware[1]      An unhandled exception has occurred while executing the request.      System.OutOfMemoryException: Exception of type "System.OutOfMemoryException" was thrown. at office_conver_server.Controllers.TestController.testMemory() in D:\BaiduSyncdisk\項目目錄\ItemProjects\dotnet\office-conver-server\Controllers\TestController.cs:line 49 at Microsoft.Extensions.Internal.ObjectMethodExecutor.<>c__DisplayClass33_0.<WrapVoidMethod>b__0(Object target, Object[] parameters) at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.VoidResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync() at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()      --- End of stack trace from previous location --- at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()      --- End of stack trace from previous location --- at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker) at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger) at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context) at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext) at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider) at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)

      4、在docker容器中限制堆內存大小

      可以采用上述配置,但是缺點就是不靈活,需要頻繁更新代碼,更新容器。。。

      添加容器環境變量DOTNET_GCHeapHardLimit: "value"
      注意value是十六進制

      version: "3"services:  officeConverServer:    image: l-4.1-office-conver-server:test    ports:      - 8079:80    volumes:      - ./uploadFile:/uploadFile      #- ./office-conver-server.runtimeconfig.json:/app/office-conver-server.runtimeconfig.json      - ./appsettings.json:/app/appsettings.json    environment:      # 堆內存最大限制【十六進制】      DOTNET_GCHeapHardLimit: "40000000"      TZ: Asia/Shanghai   # deploy:     #  resources:      #   limits:       #    memory: 1G    restart: always    security_opt:      - seccomp:unconfined

      到此這篇關于asp.net core服務限制堆內存大小的文章就介紹到這了,更多相關asp.net core堆內存大小內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

      標簽: ASP.NET
      成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
      欧美日韩网站| 一区二区三区中文字幕电影| 亚洲色图欧美偷拍| 91色.com| 26uuu成人网一区二区三区| 国产高清在线观看免费不卡| 欧美一区二区三区在线电影 | 久久久久久亚洲综合| av在线不卡观看免费观看| 欧美tickling挠脚心丨vk| 高清视频一区二区| 欧美三级日韩三级| 捆绑调教美女网站视频一区| 在线观看亚洲a| 美女免费视频一区| 欧美日韩精品免费观看视频| 国产精品中文有码| 欧美岛国在线观看| 91亚洲大成网污www| 国产精品美女视频| 亚洲欧洲久久| 亚洲一区二区五区| 久久一区二区三区四区五区| 麻豆精品蜜桃视频网站| 欧美日韩中文一区| 粉嫩嫩av羞羞动漫久久久| 欧美xxxxx牲另类人与| 色综合天天视频在线观看| 国产精品久线观看视频| 狠久久av成人天堂| 一区二区三区美女| 色哟哟欧美精品| 久久国产精品99精品国产| 欧美一二三区在线| 欧美高清视频一区二区三区在线观看| 国产精品久久久久影院色老大| 亚洲一级黄色| 天天做天天摸天天爽国产一区| 欧美性猛交一区二区三区精品 | 国产成人在线观看免费网站| 欧美精品一区二区蜜臀亚洲| 午夜视频精品| 亚洲一区二区三区在线播放| 色噜噜偷拍精品综合在线| 激情偷乱视频一区二区三区| 日韩欧美在线一区二区三区| 欧美日韩一区二区三区四区在线观看| 一区二区视频在线| 91成人免费电影| 不卡一卡二卡三乱码免费网站| 国产精品入口麻豆原神| 免费国产一区二区| 蜜臀av性久久久久蜜臀aⅴ| 911国产精品| 99国产精品久久久久久久久久 | 国产精品免费一区二区三区观看| 香蕉影视欧美成人| 欧美日韩国产一二三| a美女胸又www黄视频久久| 亚洲精品久久7777| 欧美日韩aaaaa| 欧美激情视频一区二区三区免费| 亚洲综合男人的天堂| 欧美色图在线观看| 91一区二区三区在线观看| 亚洲一区国产视频| 日韩视频在线观看一区二区| 在线观看的日韩av| 奇米精品一区二区三区在线观看 | 日本一区二区高清| 亚洲永久免费| 国内精品免费在线观看| 中文字幕乱码亚洲精品一区| 久久一二三区| 99久久综合国产精品| 亚洲一区视频在线| 精品少妇一区二区三区在线播放 | 成人午夜av影视| 亚洲男同性恋视频| 欧美伦理影视网| 激情久久中文字幕| 国产一区在线观看麻豆| 国产精品久久久久久户外露出| 色视频成人在线观看免| 女主播福利一区| 免费人成黄页网站在线一区二区| 国产天堂亚洲国产碰碰| 日本高清成人免费播放| 欧美日韩亚洲一区三区 | 国产一区二区三区自拍| 男男成人高潮片免费网站| 中文字幕不卡一区| 欧美日韩精品福利| 亚洲日韩视频| 成人午夜免费av| 婷婷综合另类小说色区| 久久网站热最新地址| 噜噜噜91成人网| 91免费看视频| 久久精品国产在热久久| 亚洲欧美韩国综合色| 日韩一区二区精品在线观看| 久久国产直播| 欧美凹凸一区二区三区视频| 免费高清在线视频一区·| 亚洲欧洲成人自拍| 精品久久久久久亚洲综合网| 色婷婷综合久久| 一区三区视频| av在线不卡观看免费观看| 蜜桃久久精品一区二区| 依依成人精品视频| 久久久美女毛片| 欧美片在线播放| 小嫩嫩精品导航| 亚洲特色特黄| 成人av动漫在线| 久久99国内精品| 午夜精品爽啪视频| 亚洲桃色在线一区| 久久久久久久免费视频了| 717成人午夜免费福利电影| 嫩草成人www欧美| 在线免费观看欧美| 91色九色蝌蚪| 国产激情一区二区三区四区| 视频一区二区三区中文字幕| 中文字幕在线不卡一区二区三区| 精品少妇一区二区三区| 欧美日韩中文字幕精品| 久久国产福利| 日韩视频在线播放| 欧美日韩亚洲一区二区三区在线 | 国产呦精品一区二区三区网站 | 成人午夜激情片| 九色综合狠狠综合久久| 无码av免费一区二区三区试看| 亚洲精品中文在线影院| 国产精品视频一二三| 久久久无码精品亚洲日韩按摩| 欧美一区二区三区电影| 欧美日韩一区 二区 三区 久久精品| 久久福利影视| 国产欧美日韩综合精品二区| 亚洲午夜精品久久久久久浪潮 | 欧美一区二区三区四区视频| 欧美在线视频你懂得| 久久久www免费人成黑人精品| 日韩亚洲不卡在线| 亚洲黄色av| 91久久国产综合久久蜜月精品 | 欧美精选午夜久久久乱码6080| 91成人看片片| 91国产视频在线观看| 久久综合狠狠| 一本一道波多野结衣一区二区| 久久av免费一区| 亚洲免费在线| 亚洲欧美久久久久一区二区三区| 99在线|亚洲一区二区| 亚洲激情专区| 亚洲黄页一区| 亚洲国产三级| 国产偷久久久精品专区| 国产精品久久久亚洲一区| 亚洲一区一卡| 色呦呦日韩精品| 欧美在线999| 欧美人妇做爰xxxⅹ性高电影| 欧美日韩欧美一区二区| 欧美体内she精视频| 欧美挠脚心视频网站| 91精品国产综合久久国产大片| 欧美剧情片在线观看| 91精品国模一区二区三区| 日韩一区国产二区欧美三区| 日韩免费高清电影| 久久久久久**毛片大全| 国产日韩精品一区二区三区 | 国产麻豆视频一区| 国产一区二区三区av电影 | 菠萝蜜视频在线观看一区| av电影在线观看一区| 欧美91视频| 好吊日精品视频| 亚洲精品影院| 榴莲视频成人在线观看| 欧美视频自拍偷拍| 欧美一区二区三区免费视频| 2021久久国产精品不只是精品| 国产日产欧美精品一区二区三区| 中文字幕人成不卡一区| 亚洲国产成人精品视频| 青青草一区二区三区| 国产一区二区久久| 成人av中文字幕| 狠狠入ady亚洲精品经典电影| 中国女人久久久| 欧美在线观看一区| 日韩视频免费直播|