.net core的服务器模式和工作站模式
来源:济南小老虎
.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的服务器模式和工作站模式的更多相关文章
- [同事转帖] .net core的服务器模式和工作站模式
发现自己的服务器上面的进程占用越来越厉害 所以就跟同事讨论了一下 性能组同事 说已经发现 并且给了一个 网址 这里转帖记录一下 避免以后找不到. .NET Core是一个开源通用的开发框架,具有跨平台 ...
- Core篇——初探IdentityServer4(客户端模式,密码模式)
Core篇——初探IdentityServer4(客户端模式,密码模式) 目录 1.Oatuth2协议的客户端模式介绍2.IdentityServer4客户端模式实现3.Oatuth2协议的密码模式介 ...
- IIS在ASP.NET Core下的两种部署模式
KestrelServer最大的优势体现在它的跨平台的能力,如果ASP.NET CORE应用只需要部署在Windows环境下,IIS也是不错的选择.ASP.NET CORE应用针对IIS具有两种部署模 ...
- IO复用(Reactor模式和Preactor模式)——用epoll来提高服务器并发能力
上篇线程/进程并发服务器中提到,提高服务器性能在IO层需要关注两个地方,一个是文件描述符处理,一个是线程调度. IO复用是什么?IO即Input/Output,在网络编程中,文件描述符就是一种IO操作 ...
- 使用xilinx ip core FIFO First- World First-Through (FWFT)模式的注意事项
也许很多人知道xilinx ip core 中的fifo可以配成standard 模式和FWFT模式,并知道两者的区别是:standard模式下,当rd为高时,fifo会延时一个时钟输出数据(时序逻辑 ...
- .net core 注入中的三种模式:Singleton、Scoped 和 Transient
从上篇内容不如题的文章<.net core 并发下的线程安全问题>扩展认识.net core注入中的三种模式:Singleton.Scoped 和 Transient 我们都知道在 Sta ...
- 视频会议系统MCU服务器视频传输处理模式
视频会议系统MCU服务器视频传输处理模式 视频会议系统的组成主要包括终端.MCU服务器.网守等,其中的MCU服务器是整个系统的核心,视频会议系统的性能很大程度取决于MCU服务器的性能,因此MCU服务器 ...
- wincc的服务器-客户机模式具体做法(全抄-未测试)
一.原来的工作方式:在同一工作组中4台计算机其windows名分别为A.B.C.D且都已安装好wincc5.0+sp2,原来在每台计算机上运行的均是单用户,4台计算机上实际运行的是一个相同的项目,最先 ...
- .Net Core自实现CLR异步编程模式(Asynchronous programming patterns)
最近在看一个线程框架,对.Net的异步编程模型很感兴趣,所以在这里实现CLR定义的异步编程模型,在CLR里有三种异步模式如下,如果不了解的可以详细看MSDN 文档Asynchronous progra ...
随机推荐
- Linux 部署 FastDFS
FastDFS 安装规划: 项目 信息 Group Name group1 FastDFS安装主目录 /usr/local/fastdfs-5.0.8 FastDFS work主目录 /usr/loc ...
- IT兄弟连 HTML5教程 CSS3揭秘 CSS规则的组成
CSS和HTML一样都是由W3C制定的标准,本章中介绍的特性和功能还是来源于CSS1和CSS2(CSS2是根据CSS1扩展的).W3C也有新的版本更新,称为CSS3.虽然浏览器已经准备开始实现CSS3 ...
- ubuntu 默认python版本切换
电脑上面有些脚本是python2的,有些是python3的,但是系统默认是python2,需要设置环境变量来进行切换. python2切换到python3: echo alias python=pyt ...
- 如何设计APP版本号?
示例: 2.14.21 (主版本号.次版本号.补丁号) 我们可以这样设计,软件包的版本号以英文句号分隔的三个数字来定义,分别代表主版本号.次版本号和补丁号.如果只是修复了错误,没有添加任何功能,也不会 ...
- C# 调用POST请求
public static void PostUrl_Ex(string url, string postData) { try { //对于提交内容中的中文使用UrlEncode方式编码 发送 // ...
- ASP.NET是什么?
ASP.NET简介 简单来说,ASP.NET 是一个使用 HTML.CSS.JavaScript 和服务器脚本创建网页和网站的开发框架. 微软在2001年开发的第一个版本的ASP.NET,是一种建立在 ...
- GO-逻辑判断(if,else if,else,switch)
一.if逻辑判断 package main import "fmt" func main() { var a =10; if a>10 { //大括号前不能回车 fmt.Pr ...
- docker 存储卷 Volumes
一,docker容器面临的困境: 容器运行中产生的数据,是放到容器栈的最顶层,当容器停止并被删除后,这些数据就被删除了. docker采用COW(写时复制)策略,导致性能低下.比如有个mysql容器, ...
- Git 提交代码到远程仓库
Git 命令 一.Git如何把本地代码推送到远程仓库 1. 拉取指定分支代码 git clone -b dev https://github.com/crazyfzw/RecycleViewWithH ...
- javax.imageio.IIOException: Can't read input file!完美解决
今天遇到一个问题,上图 这段代码主要是给图片添加水印 后来百度发现可能是图片的路径出了问题,因为是动态获取的图片地址,然后我把地址打印出来了 之后通过终端查看,果然没有 之后我在classes目录找到 ...