来源:济南小老虎

.NET Core是一个开源通用的开发框架,具有跨平台能力,我们在享受其性能飙升的同时,也面临了一些问题。通过观察 NetCore 程序的线上运行情况发现 ,负载高的情况下应用程序占用内存较大,本文将针对这个问题展开讨论,对比分析不同GC工作模式下的.NetCore性能与内存管理的表现。通过查找资料,得知.Net Core的GC工作模式大致可以分为四种工作模式。接下来直接针对这四种模式进行测试,下文列出了每种模式的配置方式 、程序内存占用情况与压测聚合报告:

服务器:CPU : E5-2609 v3 @ 1.9G

    内存 : 8G。

测试工具:jmeter  100个线程 10万次请求。

工作模式配置可以在项目文件中进行修改

<ServerGarbageCollection>false</ServerGarbageCollection>

ConcurrentGarbageCollection>

也可以直接修改发布包中的runtimeconfig文件。

一 、Concurrent & Workstation GC (工作站模式,启用并发垃圾回收)   

二、Background & Workstation GC (工作站模式 ,禁用并发垃圾回收)

三 、Concurrent & Server GC (服务器模式,启用并发垃圾回收)

四 、Background & Server GC (服务器模式,禁用并发垃圾回收)

五 、结论

  通过对比四个测试结果可以看出,工作站模式内存控制要明显优于服务器模式,gc工作频繁,但是随之带来的后果是性能的下降,可以看出服务器模式的相应时间和吞吐量要优于工作站模式,其中服务器模式是默认的工作模式。以上测试结果仅供参考,通过反复的测试,结果大致不变。

.net core的服务器模式和工作站模式的更多相关文章

  1. [同事转帖] .net core的服务器模式和工作站模式

    发现自己的服务器上面的进程占用越来越厉害 所以就跟同事讨论了一下 性能组同事 说已经发现 并且给了一个 网址 这里转帖记录一下 避免以后找不到. .NET Core是一个开源通用的开发框架,具有跨平台 ...

  2. Core篇——初探IdentityServer4(客户端模式,密码模式)

    Core篇——初探IdentityServer4(客户端模式,密码模式) 目录 1.Oatuth2协议的客户端模式介绍2.IdentityServer4客户端模式实现3.Oatuth2协议的密码模式介 ...

  3. IIS在ASP.NET Core下的两种部署模式

    KestrelServer最大的优势体现在它的跨平台的能力,如果ASP.NET CORE应用只需要部署在Windows环境下,IIS也是不错的选择.ASP.NET CORE应用针对IIS具有两种部署模 ...

  4. IO复用(Reactor模式和Preactor模式)——用epoll来提高服务器并发能力

    上篇线程/进程并发服务器中提到,提高服务器性能在IO层需要关注两个地方,一个是文件描述符处理,一个是线程调度. IO复用是什么?IO即Input/Output,在网络编程中,文件描述符就是一种IO操作 ...

  5. 使用xilinx ip core FIFO First- World First-Through (FWFT)模式的注意事项

    也许很多人知道xilinx ip core 中的fifo可以配成standard 模式和FWFT模式,并知道两者的区别是:standard模式下,当rd为高时,fifo会延时一个时钟输出数据(时序逻辑 ...

  6. .net core 注入中的三种模式:Singleton、Scoped 和 Transient

    从上篇内容不如题的文章<.net core 并发下的线程安全问题>扩展认识.net core注入中的三种模式:Singleton.Scoped 和 Transient 我们都知道在 Sta ...

  7. 视频会议系统MCU服务器视频传输处理模式

    视频会议系统MCU服务器视频传输处理模式 视频会议系统的组成主要包括终端.MCU服务器.网守等,其中的MCU服务器是整个系统的核心,视频会议系统的性能很大程度取决于MCU服务器的性能,因此MCU服务器 ...

  8. wincc的服务器-客户机模式具体做法(全抄-未测试)

    一.原来的工作方式:在同一工作组中4台计算机其windows名分别为A.B.C.D且都已安装好wincc5.0+sp2,原来在每台计算机上运行的均是单用户,4台计算机上实际运行的是一个相同的项目,最先 ...

  9. .Net Core自实现CLR异步编程模式(Asynchronous programming patterns)

    最近在看一个线程框架,对.Net的异步编程模型很感兴趣,所以在这里实现CLR定义的异步编程模型,在CLR里有三种异步模式如下,如果不了解的可以详细看MSDN 文档Asynchronous progra ...

随机推荐

  1. ansible执行带有环境变量的脚本不生效

    1背景 jenkins发布时,使用ansible执行远程主机上的启动tomcat脚本发现不生效,启动tomcat的脚本中有环境变量. ansible主机为:172.16.35.8 tomcat服务器为 ...

  2. yii2 提示

    控制器中: Yii::$app->getSession()->setFlash('success', "描述!"); Yii::$app->getSession( ...

  3. JS Foo.getName笔试题解析,杂谈静态属性与实例属性,变量提升,this指向,new一个函数的过程

     壹 ❀ 引 Foo.getName算是一道比较老的面试题了,大致百度了一下在17年就有相关文章在介绍它,遗憾的是我在19年才遇到,比较奇妙的是现在仍有公司会使用这道题.相关解析网上是有的,这里我站在 ...

  4. MySql索引背后的数据结构及算法

    本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree ...

  5. MySQL插入数据时报错Cause: java.sql.SQLException: #HY000的解决方法

    数据库中有字段要求不能为空,但是insert插入的时候,改字段没有值

  6. 痞子衡嵌入式:飞思卡尔i.MX RT系列MCU量产神器RT-Flash常见问题

    对于MCUBootUtility,RT-Flash工具,有任何使用上的问题,可以在本博客下留言,也可以扫码加入QQ交流群.

  7. [Spring cloud 一步步实现广告系统] 9. 主类和配置文件

    搜索系统启动主类 /** * AdSearchApplication for 广告搜索服务启动类 * * @author <a href="mailto:magicianisaac@g ...

  8. 学习使人快乐9--eclipse常用快捷键总结

    Ctrl + F11 按上次方式执行Ctrl + Shift + / 加上注释/**/Ctrl + Shift + \ 取消注释/**/Ctrl + /  加上或消除行注释Ctrl + D 删除当前行 ...

  9. Flask 教程 第六章:个人主页和头像

    本文翻译自 The Flask Mega-Tutorial Part VI: Profile Page and Avatars 这是Flask Mega-Tutorial系列的第六部分,我将告诉你如何 ...

  10. spring一个标准的xml文件头

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...