日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

asp.net core服務(wù)限制堆內(nèi)存大小的操作方法

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

      前言

      在我們眾多的微服務(wù)項(xiàng)目中,都有限制其堆內(nèi)存大小的需求,以免占用宿主機(jī)內(nèi)存過(guò)高。

      在java中我們可以通過(guò)jvm參數(shù)來(lái)很好的控制堆內(nèi)存以及其他參數(shù)。

      但是在asp.net core的web服務(wù)中,我們?cè)撊绾稳ハ拗贫褍?nèi)存大小呢?

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

      1、asp.net core是什么

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

      2、限制其堆內(nèi)存最大大小

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

      2.1 設(shè)置.NET 運(yùn)行時(shí)的配置

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

      .NET 提供了以下機(jī)制用于配置 .NET 運(yùn)行時(shí)的行為:

      • runtimeconfig.json 文件
      • MSBuild 屬性
      • 環(huán)境變量

      通過(guò)使用環(huán)境變量來(lái)配置某個(gè)選項(xiàng)會(huì)將設(shè)置應(yīng)用于所有的 .NET 應(yīng)用。 在 runtimeconfig.json 或項(xiàng)目文件中配置某個(gè)選項(xiàng)則只會(huì)將設(shè)置應(yīng)用于該應(yīng)用程序。

      選擇 runtimeconfig.json文件作為.net運(yùn)行時(shí)的配置文件。

      2.2 在項(xiàng)目中創(chuàng)建runtimeconfig.json配置文件

      構(gòu)建項(xiàng)目時(shí),將在打包的輸出目錄中生成 [appname].runtimeconfig.json 文件。

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

      如果自行構(gòu)建應(yīng)用,請(qǐng)將所有配置選項(xiàng)放在 runtimeconfig.template.json 文件中。 如果只是運(yùn)行應(yīng)用,請(qǐng)將其直接插入 [appname].runtimeconfig.template.json 文件中。

      2.2 限制堆的大小

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

      示例:限制堆內(nèi)存最大為1G

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

      3、測(cè)試配置是否生效

      測(cè)試控制器:

      [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("當(dāng)前堆內(nèi)存大小 -- " + GC.GetTotalMemory(false) / 1024 / 1024.0 + " MB");}    }}

      結(jié)果,可見(jiàn)配置生效,達(dá)到1g時(shí)報(bào)錯(cuò) System.OutOfMemoryException,然后系統(tǒng)強(qiáng)行g(shù)c,服務(wù)down,配置docker-compose的自動(dòng)重啟即可完成gc后自動(dòng)重啟

      當(dāng)前堆內(nèi)存大小 -- 102.0029296875 MB當(dāng)前堆內(nèi)存大小 -- 202.013671875 MB當(dāng)前堆內(nèi)存大小 -- 302.0166015625 MB當(dāng)前堆內(nèi)存大小 -- 402.0126953125 MB當(dāng)前堆內(nèi)存大小 -- 502.0166015625 MB當(dāng)前堆內(nèi)存大小 -- 602.02734375 MB當(dāng)前堆內(nèi)存大小 -- 702.044921875 MB當(dāng)前堆內(nèi)存大小 -- 802.046875 MB當(dāng)前堆內(nèi)存大小 -- 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\項(xiàng)目目錄\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容器中限制堆內(nèi)存大小

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

      添加容器環(huán)境變量DOTNET_GCHeapHardLimit: "value"
      注意value是十六進(jìn)制

      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:      # 堆內(nèi)存最大限制【十六進(jìn)制】      DOTNET_GCHeapHardLimit: "40000000"      TZ: Asia/Shanghai   # deploy:     #  resources:      #   limits:       #    memory: 1G    restart: always    security_opt:      - seccomp:unconfined

      到此這篇關(guān)于asp.net core服務(wù)限制堆內(nèi)存大小的文章就介紹到這了,更多相關(guān)asp.net core堆內(nèi)存大小內(nèi)容請(qǐng)搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

      標(biāo)簽: ASP.NET
      日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
      国产一区二区三区不卡av | 四虎精品一区二区免费| 国产精品99视频| 国产高清亚洲| 国产精品男女| 国产精品18| 成人日韩av| 欧美成人精品三级网站| 国产伦精品一区二区三区视频| 视频精品一区| 国产精品极品在线观看| 国产精品亚洲四区在线观看| 精品一区二区三区在线观看视频| 日韩av字幕| 欧美国产专区| 成人av三级| 国产精品日韩久久久| 2023国产精品久久久精品双| 欧美大黑bbbbbbbbb在线| 国产亚洲在线观看| 日韩激情网站| 国产精品久久观看| 蜜桃tv一区二区三区| 亚洲天堂一区二区| 午夜久久福利| 国产视频一区二| 日韩一区二区三区免费播放| 日韩精品dvd| 亚洲综合中文| 给我免费播放日韩视频| 在线精品视频在线观看高清| 日韩一区二区三区精品视频第3页| 国产精品男女| 国产精品日韩久久久| 久久福利在线| 亚洲激情久久| 久久wwww| 亚洲毛片在线免费| 欧美国产专区| 亚洲一级大片| 日韩一区电影| 久久国内精品| 国产模特精品视频久久久久| 免费一区二区三区在线视频| 欧美日韩国产一区精品一区| 久久字幕精品一区| 亚洲精品在线a| 999久久久亚洲| 国产精品igao视频网网址不卡日韩 | 精品精品99| 亚洲一区不卡| 99成人超碰| 韩国精品主播一区二区在线观看| 国产探花一区在线观看| 久热综合在线亚洲精品| 婷婷综合六月| 三上亚洲一区二区| 国产精品亚洲欧美日韩一区在线| 中文字幕一区二区av| 欧洲毛片在线视频免费观看| 久久久久久网| 欧美成人a交片免费看| 麻豆国产精品| 美女久久久久久| 国产精品任我爽爆在线播放| 夜夜嗨一区二区| 激情综合网址| 精品在线91| 欧美日韩中文一区二区| 久久精品在线| 久久久久久免费视频| 91精品韩国| 美女少妇全过程你懂的久久| 婷婷精品视频| 中文一区在线| 免费视频一区二区| 亚洲一级大片| 天堂va欧美ⅴa亚洲va一国产| 亚洲激情二区| 亚洲精品女人| 国产精品免费不| 国产精品伦理久久久久久| 亲子伦视频一区二区三区| 久久久久网站| 亚洲欧美日韩在线观看a三区| 午夜一区在线| 清纯唯美亚洲综合一区| 久久中文字幕导航| 婷婷成人在线| 午夜视频一区二区在线观看| 国产精品极品在线观看| 欧美成人基地| 日本伊人久久| 成人国产精品一区二区网站| 狠狠操综合网| 欧美中文高清| 久久久精品久久久久久96| 免费久久99精品国产自在现线| 日韩精品一区二区三区中文在线| 精品一区二区男人吃奶| 欧美高清不卡| 免费视频一区二区三区在线观看| 91精品成人| 久久99国产精品视频| 99国产精品| 黄色aa久久| 久久国产生活片100| 国产一区日韩一区| 精品国产91| 青草国产精品| 久久国产欧美| 国产精品超碰| 亚洲精品1区| 视频福利一区| 中文字幕成在线观看| 91欧美极品| 日本大胆欧美人术艺术动态| 三上亚洲一区二区| 国产亚洲人成a在线v网站| 99国产精品| 婷婷亚洲综合| 亚洲电影在线| 蜜桃av.网站在线观看| 国产伦乱精品| 91久久精品无嫩草影院| 婷婷亚洲五月| 国产91精品对白在线播放| 久久精品国产网站| 国产精品黄色| 国产精品久久久久久久免费软件| 亚洲精品一级| 日本免费在线视频不卡一不卡二| 亚洲欧美久久| 久久亚洲欧洲| 久久大逼视频| 蜜桃av一区二区三区电影| 日韩亚洲国产欧美| 丝袜脚交一区二区| 男女精品网站| 日韩精品亚洲专区在线观看| 在线亚洲成人| 久久亚洲图片| 91亚洲无吗| 麻豆一区二区三区| 日韩欧美国产精品综合嫩v| 久久久噜噜噜| 日韩一区精品字幕| 国产乱人伦丫前精品视频| 久久av中文| 国产999精品在线观看 | 亚洲欧美日韩视频二区| 亚洲人成在线影院| 久久国产精品免费一区二区三区| 老司机免费视频一区二区| 麻豆国产91在线播放| 国产在线|日韩| 日韩中文字幕av电影| 日韩av网站在线免费观看| 国产精品**亚洲精品| 播放一区二区| 亚洲精品一级二级三级| 免费日韩一区二区三区| 成人片免费看| 免费人成网站在线观看欧美高清| 欧美日韩xxxx| 99热精品久久| 久久国产生活片100| 久久青草久久| 国产精品99久久免费| 久久视频精品| 欧美日一区二区在线观看| 四虎4545www国产精品| 亚洲资源网站| 亚洲精品**中文毛片| 蜜臀av亚洲一区中文字幕| 国产一区不卡| 奇米狠狠一区二区三区| 香蕉国产精品| 日韩成人三级| 国产精品网在线观看| 中文字幕日本一区二区| 欧美日韩在线网站| 久久精品国产精品亚洲毛片| 久久成人精品| 中国字幕a在线看韩国电影| 日韩精品国产精品| 一区久久精品| 香蕉国产精品| 久久精品亚洲人成影院| 久久久久伊人| 久久国内精品视频| 日韩欧美另类中文字幕| 影音国产精品| 国产亚洲毛片| 日韩一区二区久久| 欧美一级专区| 蜜臀av一区二区在线免费观看 | 久久精品国产99国产精品| 国产日韩欧美中文在线| 亚欧成人精品|