.net core的服务器模式和工作站模式
程序员文章站
2023-12-31 14:37:34
来源:济南小老虎 .NET Core是一个开源通用的开发框架,具有跨平台能力,我们在享受其性能飙升的同时,也面临了一些问题。通过观察 NetCore 程序的线上运行情况发现 ,负载高的情况下应用程序占用内存较大,本文将针对这个问题展开讨论,对比分析不同GC工作模式下的.NetCore性能与内存管理的 ......
来源:
.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的服务器模式和工作站模式
-
如何理解async和await设计模式和如何应用到.net 4以下的framework
-
浅谈.net core 注入中的三种模式:Singleton、Scoped 和 Transient
-
浅谈.net core 注入中的三种模式:Singleton、Scoped 和 Transient
-
ASP.NET Core 3.0 : 二十四. 配置的Options模式
-
ASP.NET Core 2.2 WebApi 系列【七】泛型仓储模式和工作单元
-
asp.net core系列 76 Apollo 快速安装模式下填坑和ASP.NetCore结合使用
-
Linux下SVN服务器同时支持Apache的http和svnserve独立服务器两种模式且使用相同的访问权限账号
-
.net core i上 K8S(六).netcore程序的service网络代理模式
-
.net core i上 K8S(五).netcore程序的hostip模式