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)

相关推荐

  • oracle表优化方法教程

    技术oracle表优化方法教程这篇文章主要讲解了“oracle表优化方法教程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“oracle表优化方法教程”吧!1、建立实验表c

    攻略 2021年11月11日
  • C#操作Excel实现的实例分析

    技术C#操作Excel实现的实例分析C#操作Excel实现的实例分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。C#操作Excel是怎么样执行的呢?我们在

    攻略 2021年11月24日
  • qt 场景视图画地图(qt图片绘制区域得到点坐标)

    技术Qt如何编写地图实现省市区域图这篇文章主要介绍了Qt如何编写地图实现省市区域图,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、前言省市区域图也可以叫

    攻略 2021年12月20日
  • MySQL优化经验是怎样的

    技术MySQL优化经验是怎样的MySQL优化经验是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。MySQL优化经验同时在线访问量继续增大 对于1G

    攻略 2021年11月17日
  • 投入的近义词,“尽心尽力”类似的词语有哪些

    技术投入的近义词,“尽心尽力”类似的词语有哪些竭尽全力[jiéjìnquánlì]?:形容用尽全部力量投入的近义词。
    尽心尽力[jìnxīnjìnlì]:做事非常的卖力,或为非常的卖命,以用尽了自己所有的能力。
    尽心尽责

    生活 2021年10月30日
  • JS构造函数和实例化的关系及原型引入举例分析

    技术JS构造函数和实例化的关系及原型引入举例分析这篇文章主要介绍“JS构造函数和实例化的关系及原型引入举例分析”,在日常操作中,相信很多人在JS构造函数和实例化的关系及原型引入举例分析问题上存在疑惑,小编查阅了各式资料,

    攻略 2021年11月29日