[同事轉帖] .net core的服務器模式和工做站模式

發現本身的服務器上面的進程佔用愈來愈厲害 因此就跟同事討論了一下 性能組同事 說已經發現 而且給了一個 網址  
這裏轉帖記錄一下 避免之後找不到. 

 

.NET Core是一個開源通用的開發框架,具備跨平臺能力,咱們在享受其性能飆升的同時,也面臨了一些問題。經過觀察 NetCore 程序的線上運行狀況發現 ,負載高的狀況下應用程序佔用內存較大,本文將針對這個問題展開討論,對比分析不一樣GC工做模式下的.NetCore性能與內存管理的表現。經過查找資料,得知.Net Core的GC工做模式大體能夠分爲四種工做模式。接下來直接針對這四種模式進行測試,下文列出了每種模式的配置方式 、程序內存佔用狀況與壓測聚合報告:服務器

服務器:CPU : E5-2609 v3 @ 1.9G併發

    內存 : 8G。框架

測試工具:jmeter  100個線程 10萬次請求。工具

工做模式配置能夠在項目文件中進行修改性能

<ServerGarbageCollection>false</ServerGarbageCollection>測試

ConcurrentGarbageCollection>url

也能夠直接修改發佈包中的runtimeconfig文件。spa

 

一 、Concurrent & Workstation GC (工做站模式,啓用併發垃圾回收)   

 

 

 

2、Background & Workstation GC (工做站模式 ,禁用併發垃圾回收)

 

  

   

三 、Concurrent & Server GC (服務器模式,啓用併發垃圾回收)

   

 

四 、Background & Server GC (服務器模式,禁用併發垃圾回收)

 

五 、結論

  經過對比四個測試結果能夠看出,工做站模式內存控制要明顯優於服務器模式,gc工做頻繁,可是隨之帶來的後果是性能的降低,能夠看出服務器模式的相應時間和吞吐量要優於工做站模式,其中服務器模式是默認的工做模式。以上測試結果僅供參考,經過反覆的測試,結果大體不變。線程

相關文章
相關標籤/搜索