国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

ASP.NET Core 8 在 Windows 上各種部署模型的性能測試

這篇具有很好參考價值的文章主要介紹了ASP.NET Core 8 在 Windows 上各種部署模型的性能測試。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

ASP.NET Core 8 在 Windows 上各種部署模型的性能測試

我們知道 Asp.net Core 在 windows 服務(wù)器上部署的方案有 4 種之多。這些部署方案對性能的影響一直以來都是靠經(jīng)驗。比如如果是部署在 IIS 下,那么 In Process 會比 Out Process 快;如果是 Self Host 那么使用 HttpSys 服務(wù)器會比 Kestrel 快。
那么真實結(jié)果是否如我們想象的那樣呢?接下來就讓我們來做一次 benchmarks 吧。

托管模型

在開始 benchmark 測試之前,我們再來來介紹一下這 4 種托管模型:

1. InProcess 模式

InProcess 模式將 ASP.NET Core 應(yīng)用程序直接部署在 IIS 中,與 IIS 工作進程相同的進程中運行。理論上,這種模式的性能應(yīng)該相對較高,因為請求無需經(jīng)過額外的進程通信。

2. OutProcess 模式

OutProcess 模式下,ASP.NET Core 應(yīng)用程序在獨立于 IIS 工作進程的進程中運行。這種模式通過進程間通信與 IIS 進行通信,理論上可能引入一些性能開銷。

3. SelfHost HttpSys 模式

HttpSys 模式是一種自承載方式,利用 Windows 操作系統(tǒng)內(nèi)核級的 HTTP 服務(wù)器。通常認為在處理大量并發(fā)連接時具有優(yōu)勢,因為它與操作系統(tǒng)集成。

4. SelfHost Kestrel 模式

Kestrel 模式是 ASP.NET Core 的內(nèi)置 Web 服務(wù)器,可以獨立運行而無需依賴其他外部服務(wù)器。Kestrel 是輕量級、跨平臺的選擇,專為處理大量并發(fā)連接而設(shè)計。

壓測平臺

  • 操作系統(tǒng): Windows Server 2012 R2 Datacenter
  • 硬件配置: Intel E3 1260L CPU, 16GB 內(nèi)存
  • 網(wǎng)絡(luò): 家庭內(nèi)網(wǎng),TP-LINK 家用 1000M 交換機

因為本人沒啥高性能的服務(wù)器,家里只有一臺老舊的 HP Gen8 服務(wù)器。安裝 windows server 2012 R2 datacenter,CPU 為 E3 1260L。E3 同樣是古董,大概是 intel 10年前的產(chǎn)品。內(nèi)存為 16G 1333 服務(wù)器專用內(nèi)存。
整個測試平臺可以說是相當拉跨。湊合用用吧,反正不是彪極限性能,橫向?qū)Ρ鹊脑拞栴}不大。

壓測過程

新建一個 ASP.NET Core 默認項目。采用 VS2022 自帶的模板,使用 miniapi 對 '/' 路徑直接輸出 'Hello World!' 字符串。

using System.Diagnostics;

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.

var app = builder.Build();

// Configure the HTTP request pipeline.

app.MapGet("/", () =>
{
    return "Hello World!";
});

app.Run();

如果使用 HttpSys 服務(wù)器則多加一行代碼:

builder.WebHost.UseHttpSys();
  • 測試工具: 使用 Netling 進行壓力測試,模擬真實用戶請求。
  • 測試流程: 在對每個場景進行測試前先進行 60s 的預熱,等待大概 10s 再后進行 4 次持續(xù)的壓力測試(8個線程,持續(xù)30s),記錄結(jié)果(RPS)。

Benchmark 測試結(jié)果

以下是測試結(jié)果:

托管模型 Requests Per Second (RPS)
InProcess 7266
OutProcess 7960
SelfHost HttpSys 26300
SelfHost Kestrel 27199

性能分析與總結(jié)

測試結(jié)果大大的出乎了我的預料,特別是 OutProcess 模式的性能略高于 InProcess 模式,與我的認知出現(xiàn)了比較大的偏差。同時,SelfHost Kestrel 模式的性能優(yōu)于 SelfHost HttpSys 模式,這也與一般的預期不同,因為 HttpSys 是運行在內(nèi)核態(tài)的服務(wù)器。

這樣的差異可能受多種因素影響,包括硬件配置、操作系統(tǒng)版本、IIS的版本等,畢竟這些產(chǎn)品都是10年前的產(chǎn)物,而 ASP.NET Core8 是 2023 年的全新產(chǎn)品。測試結(jié)果受到多種因素的影響,大家不要較真,就圖一樂吧。

不過從結(jié)果上橫向來看,至少可以得出以下結(jié)論:文章來源地址http://www.zghlxwxcb.cn/news/detail-750354.html

  • Self Host 比 IIS Host 性能上要快上好幾倍。在追求極限性能的場景,應(yīng)該選擇 Self Host。
  • IIS Host 不管是 In Process 還是 Out Process 性能也不差。就測試平臺這種老古董也能跑個 7000+ RPS。這還不是極限,因為 7000 RPS 的時候 CPU 才到 50%+ 。如果我再多加一些線程,相信輕松可以過萬。
  • 以上最差的結(jié)果也有 7000 多的 RPS。這表明對于一般的信息系統(tǒng)而言,ASP.NET Core 本身的性能一般不會是瓶頸。瓶頸最早出現(xiàn)一定是在其他 IO 模塊,比如數(shù)據(jù)庫。

到了這里,關(guān)于ASP.NET Core 8 在 Windows 上各種部署模型的性能測試的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 測試 ASP.NET Core 中間件

    測試 ASP.NET Core 中間件

    ????????正常情況下,中間件會在主程序入口統(tǒng)一進行實例化,這樣如果想單獨測試某一個中間件就很不方便,為了能測試單個中間件,可以使用?TestServer?單獨測試。 這樣便可以: 實例化只包含需要測試的組件的應(yīng)用管道。 發(fā)送自定義請求以驗證中間件行為。 這樣測試

    2024年01月20日
    瀏覽(26)
  • 【asp.net core】自定義模型綁定及其驗證

    水此篇博客,依舊是來自群里的討論,最后說到了,在方法參數(shù)自定義了一個特性,用來綁定模型,優(yōu)先從Form取,如果為空,或者不存在,在從QueryString中獲取并且綁定,然后閑著無聊,就水一篇博客,如果大家有什么需求或者問題,可以找我,很高興能為你們帶來幫助。

    2024年02月03日
    瀏覽(28)
  • 如何部署ASP.NET Core到Linux服務(wù)器

    我們開發(fā)的最終目的,是將開發(fā)后的東西發(fā)布網(wǎng)絡(luò)上,以便自己及其他人使用。 本篇博客介紹如果在 linux 上部署 ASP.NET Core應(yīng)用,使用nginx+systemd 來管理我們的應(yīng)用。 Ubuntu 20.04 Nginx .NET SDK 或 Runtime 安裝Nginx 安裝.NET 配置文件 nginx默認配置會加載 /etc/nginx/sites-enabled 中的網(wǎng)站,

    2024年02月11日
    瀏覽(93)
  • ASP.NET Core Web應(yīng)用程序項目部署流程

    ASP.NET Core Web應(yīng)用程序項目部署流程

    目錄 一、準備ASP.NET Core應(yīng)用程序部署文件 二、環(huán)境配置 三、測試 ASP.NET Core Web 應(yīng)用程序 四、部署后訪問失敗問題 以下部署流程都是基于Windows服務(wù)器環(huán)境下進行的。 一、準備ASP.NET Core應(yīng)用程序部署文件 使用 Visual Studio 開發(fā)工具創(chuàng)建 ASP.NET Core 的Web應(yīng)用程序,利用VS工具發(fā)布

    2024年02月05日
    瀏覽(35)
  • asp.net core 項目從本地部署到遠程云服務(wù)器

    asp.net core 項目從本地部署到遠程云服務(wù)器

    今天向大家詳細介紹一下,如何將一個.net core項目部署到遠程云服務(wù)器,我的服務(wù)器鏡像為 window server 2019. 1.安裝IIS 首先在服務(wù)器上安裝IIS(我的是最新的iis10),我已經(jīng)安裝完畢,這個安裝操作比較簡單,自行谷歌。 安裝完成后會看到下面的界面: 2.安裝web deploy程序 該程序的功能: 它

    2023年04月22日
    瀏覽(22)
  • 詳解ASP.NET Core 在 IIS 下的兩種部署模式

    詳解ASP.NET Core 在 IIS 下的兩種部署模式

    KestrelServer最大的優(yōu)勢體現(xiàn)在它的跨平臺的能力,如果ASP.NET CORE應(yīng)用只需要部署在Windows環(huán)境下,IIS也是不錯的選擇。ASP.NET CORE應(yīng)用針對IIS具有兩種部署模式,它們都依賴于一個IIS針對ASP.NET CORE Core的擴展模塊。 IIS其實也是按照管道的方式來處理請求的,但是IIS管道和ASP.NET CO

    2024年02月10日
    瀏覽(23)
  • 單元測試必備:Asp.Net Core代碼覆蓋率實戰(zhàn),打造可靠應(yīng)用 !

    單元測試必備:Asp.Net Core代碼覆蓋率實戰(zhàn),打造可靠應(yīng)用 !

    在前幾章我們深度講解了單元測試和集成測試的基礎(chǔ)知識,這一章我們來講解一下 代碼覆蓋率 ,代碼覆蓋率是單元測試運行的 度量值 ,覆蓋率通常以百分比表示,用于衡量代碼被測試覆蓋的程度,幫助開發(fā)人員評估測試用例的質(zhì)量和代碼的健壯性。常見的覆蓋率包括語句覆蓋

    2024年04月23日
    瀏覽(21)
  • 實戰(zhàn)指南:使用 xUnit 和 ASP.NET Core 進行集成測試【完整教程】

    實戰(zhàn)指南:使用 xUnit 和 ASP.NET Core 進行集成測試【完整教程】

    集成測試可在包含應(yīng)用支持基礎(chǔ)結(jié)構(gòu)(如數(shù)據(jù)庫、文件系統(tǒng)和網(wǎng)絡(luò))的級別上確保應(yīng)用組件功能正常。 ASP.NET Core 通過將單元測試框架與測試 Web 主機和內(nèi)存中測試服務(wù)器結(jié)合使用來支持集成測試。 集成測試與單元測試相比,能夠在更廣泛的級別上評估應(yīng)用的組件,確認多個

    2024年04月22日
    瀏覽(28)
  • nssm 工具把asp.net core mvc變成 windows服務(wù),使用nginx反向代理訪問

    nssm 工具把asp.net core mvc變成 windows服務(wù),使用nginx反向代理訪問

    nssm工具的作用:把項目部署成Windows服務(wù),可以在系統(tǒng)后臺運行 1.創(chuàng)建一個asp.net core mvc的項目weblication1 asp.net core mvc項目要成為windows服務(wù)需要安裝下面的nuget包 在program中添加代碼 在創(chuàng)建一個asp.net core mvc項目 webapplication2 把program中的usePathBase改為(“/app2”) 我這里沒添加 buil

    2024年04月09日
    瀏覽(20)
  • 在IIS上部署你的ASP.NET Core Web Api項目及Swagger

    在IIS上部署你的ASP.NET Core Web Api項目及Swagger

    與ASP.NET時代不同,ASP.NET Core不再是由IIS工作進程(w3wp.exe)托管,而是使用自托管Web服務(wù)器(Kestrel)運行,IIS則是作為反向代理的角色轉(zhuǎn)發(fā)請求到Kestrel不同端口的ASP.NET Core程序中,隨后就將接收到的請求推送至中間件管道中去,處理完你的請求和相關(guān)業(yè)務(wù)邏輯之后再將HTTP響

    2024年02月10日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包