net core响应时间超时的配置(netcore 开启内存释放)

技术.NET Core 配置对GC工作模式与内存的影响是什么这篇文章将为大家详细讲解有关.NET Core 配置对GC工作模式与内存的影响是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相

本文将详细解释。NET核心配置对垃圾收集工作模式和内存。这篇文章的内容质量很高,所以边肖会分享给大家参考。希望你看完这篇文章后有所了解。

00-1010默认情况下,ASP.NET Core程序在K8s的Docker中运行,内存利用率=600MB,这导致Docker容器频繁重启。设定组态系统的实验。ASP.NET核心项目服务器为假,内存小于=150MB的讨论和做。

主要说说什么是系统。服务器和两种垃圾收集模式。

引出问题: Asp.net core应用在 Kubernetes上内存使用率过高问题分析

复制

服务器GC/工作站GC

对GC工作模式的分类: .NET Core 两种GC模式:

主要用于多处理器系统,是ASP.NET Core主机的默认配置。它为每个处理器创建一个垃圾收集堆,并并行执行回收操作。这种模式的GC可以最大化吞吐量和更好的收缩。这种模式的特点是初始分配的内存大,内存没有尽可能回收,回收和整理内存需要很长时间。

00-1010主要用于单处理器系统,Workstation GC可以通过尽可能减少垃圾收集时程序暂停的次数来提高性能。具有低负载和不频繁后台任务(如服务)的应用程序可以在禁用并发垃圾收集的情况下使用工作站垃圾收集。特点是频繁回收,防止较长时间的回收。

Server GC :

是GC的一种工作模式。如果您是单处理器机器,即使“并发”选项配置为“真”,它也不会生效。服务器垃圾回收和工作站垃圾回收都可以打开并发垃圾回收,在垃圾回收过程中,用户线程可以大部分时间并发运行。但只能影响第二代对象的GC进程,因为0代和1代的时间太短。

00-1010 ASP.NET核心项目,GC模式由系统设置。GC.Server配置,创建项目的默认GC模式为: system.gc.server3360 true(服务器GC并发模式),为每个CPU分配GC;System.gc.server: false(工作站gc并发模式),Concurrent=1。

Workstation GC :

GC堆存储0、1、2代对象时,对系统应用的基本单位是Segment,系统会分配指定值的Segment来存储对象。GC将根据程序的实际执行情况动态调整这些值。因为有了Segment的概念,内存碎片问题再次出现,所以GC会在垃圾收集过程中组织内存,减少内存碎片,提高内存利用率。

段的大小取决于系统是32位还是64位,以及它运行的垃圾收集器的类型。下表列出了系统在分配过程中使用的默认值:

Gc32位64位工作站gc16mb256mb服务器gc64mb4gb服务器Gc带4个逻辑CPU s32mb2gb服务器gc带8个逻辑CPU s16mb1gb段包含第二代对象,将尽可能申请内存,并使用多个段进行内存存储。

从垃圾收集释放的内存量受限于段的大小。但是,由于Segment是按动态大小分配的,因此在发布后会占用大量内存,从而导致内存利用率低。如前所述,为了解决这个问题,GC应该整理内存碎片并中断所有线程的处理。

p>

.NET Core GC的几种配置模式:

Concurrent & Workstation GC

    
  
  
  

Copy

<ServerGarbageCollection>false</ServerGarbageCollection>
<ConcurrentGarbageCollection>true</ConcurrentGarbageCollection>

特点:在吞吐量和相应速度上寻找平衡点, GC Heap数量为1,GC threads在分配空间的线程,GC线程优先权和工作线程具有相同的优先权,工作线程(非GC线程)会因为GC工作过程中短暂多次挂起。

Background & Workstation GC

    
  
  
  

Copy

<ServerGarbageCollection>false</ServerGarbageCollection>
<ConcurrentGarbageCollection>false</ConcurrentGarbageCollection>

特点:最大化吞吐量并优化gen2 GC性能, GC Heap数量为1,background GC线程与工作线程有相同优先级,但都低于前台GC线程 ,工作线程(非GC线程)会因为GC工作过程中短暂多次挂起,较并发性能更加(针对Gen2的)。

Concurrent & Server GC

    
  
  
  

Copy

<ServerGarbageCollection>true</ServerGarbageCollection>
<ConcurrentGarbageCollection>true</ConcurrentGarbageCollection>

特点:多处理器机器上使用多线程处理相同类型的请求以便最大化服务程序吞吐量, GC Heap数量为每处理器1个,每个处理器都有一个专职的GC线程,GC线程拥有最高线程的优先级,工作线程(非GC线程)会因为GC工作过程中会被挂起。

Background & Server GC

    
  
  
  

Copy

<ServerGarbageCollection>true</ServerGarbageCollection>
<ConcurrentGarbageCollection>false</ConcurrentGarbageCollection>

特点:在Concurrent & Server GC基础上优化gen2 GC性能, GC Heap数量为每处理器1个,每个处理器都有一个专职的GC background线程,background GC线程与工作线程有相同优先级,但都低于前台GC线程,工作线程(非GC线程)会因为GC工作过程中短暂多次挂起,较并发性能更加(针对Gen2的)
ephemeral generation的前台GC工作时会挂起其他所有线程。

关于.NET Core 配置对GC工作模式与内存的影响是什么就分享到这里了,希望

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/147383.html

(0)

相关推荐

  • 如何增加抖音粉丝数量,如何快速增长抖音粉丝?

    技术如何增加抖音粉丝数量,如何快速增长抖音粉丝?抖音快速涨粉方法抖音无疑是目前新媒体里面涨粉最容易,涨粉最快的平台了。前有成都小甜甜一夜涨粉500万,后有灵魂当铺一天涨粉75万。这种涨粉速度在其他平台是想都不敢想象的。不

    测评 2021年11月11日
  • jquery如何隐藏table的tr

    技术jquery如何隐藏table的tr这篇文章主要介绍“jquery如何隐藏table的tr”,在日常操作中,相信很多人在jquery如何隐藏table的tr问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法

    攻略 2021年11月16日
  • 奶牛的英文,英文单词“cow”的读音是什么

    技术奶牛的英文,英文单词“cow”的读音是什么英式读音[kaʊ] 美式读音[kaʊ] n. 奶牛奶牛的英文,乳牛;母兽;雌(象,鲸等);对女性的蔑称; vt. 恐吓;吓唬;威胁; ①造句:He kep

    生活 2021年10月22日
  • 如何创建一个好的索引

    技术如何创建一个好的索引 如何创建一个好的索引1、过滤效率高的放前面
    对于一个多列索引,它的存储顺序是先按第一列进行比较,然后是第二列,第三列...这样。查询时,如果第一列能够排除的越多,那么后面列需要

    礼包 2021年12月13日
  • 虚拟环境中如何查opencv的版本号(opencv怎么添加依赖项)

    技术如何进行opencv vector 测试这篇文章给大家介绍如何进行opencv vector 测试,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。#include
    #incl

    攻略 2021年12月15日
  • 如何用Python爬取英雄联盟,lol全部皮肤

    技术如何用Python爬取英雄联盟,lol全部皮肤今天就跟大家聊聊有关如何用Python爬取英雄联盟(lol)全部皮肤,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获

    攻略 2021年10月26日