.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工作頻繁,但是隨之帶來的后果是性能的下降,可以看出服務器模式的相應時間和吞吐量要優於工作站模式,其中服務器模式是默認的工作模式。以上測試結果僅供參考,通過反復的測試,結果大致不變。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM