中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何通過移除Nginx提高TPS效率

發布時間:2021-10-25 15:08:03 來源:億速云 閱讀:145 作者:小新 欄目:系統運維

這篇文章主要介紹如何通過移除Nginx提高TPS效率,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

1. 為什么移除或使用 Nginx?

在某些情況下,大家仍然會堅持使用 Nginx 這樣的代理,我會在下面給你列舉出來。對于 Raygun,我們的 API 服務器僅托管了一個應用程序,然后僅通過負載均衡設備公開到互聯網。這意味著對端口共享的限制并不適用于我們,開放給外部的服務已經被最小化了。

我們可能要使用代理的一些原因(來自微軟的一篇博文),列舉如下:

  • 限制其托管應用程序的對外公開部分

  • 提供附加的配置和防御層

  • 方便與現有基礎架構更好地集成

  • 簡化負載平衡和安全通信(HTTPS)配置。只有反向代理服務器需要 X.509 證書,并且該服務器可以使用 HTTP 與內部網絡上的應用服務器進行通信。

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-3.1#when-to-use-kestrel-with-a-reverse-proxy

2. 移除 Nginx 后的業務表現

對于我們的 API 節點,從配置中刪除 Nginx 可以使我們處理更多的請求而無需額外費用。

通過負載測試,我們還發現請求的平均響應時間和第 99 百分位響應時間得到顯著改善。這意味著我們的客戶對 API 服務的請求更快,并允許他們在單位時間內發送更多數據。

自從將新的服務器配置投入生產以來,我們的負載均衡設備報告 5xx 錯誤也大大減少了。現在,我們可以支撐處理更高的客戶端負載,而且用戶遇到的錯誤問題也更少了。

3. 我們如何測試.NET Core 性能

我們在亞馬遜的 AWS c5.large 實例 Ubuntu 18.04 環境下進行了測試。基準服務器運行了 Nginx 和 Kestrel Web 服務,Nginx 作為 Kestrel Web 服務代理;作為對比,在另一臺服務器上,服務請求直接由 Kestrel 處理。

我們使用 Apache JMeter 將 Raygun Crash Reporting 樣本有效負載發布到服務 API。JMeter 可以模擬非常高的并發請求負載。我們對此不斷進行調整,讓每臺服務器都最大程度地利用 CPU,逼近服務過載即將不能支撐處理所有請求的極限(但是仍然保證請求的成功率為 100%)。

https://raygun.com/platform/crash-reporting

使用 JMeter 運行多次測試,每個測試持續 10 分鐘,每次測試結束時生成保存測試摘要報告。

最后,我們將多次測試的結果取平均值,最終得出下面的測試結果。

4. 移除 Nginx 后的結果展示

響應時間(毫秒)

平均響應時間(該值越小性能越好)從 1.2ms 減少到 0.8ms,相當于降低了 33%;第 99 百分位響應時間從 6ms 減少到 4ms,相當于降低了 33%。

如何通過移除Nginx提高TPS效率

TPS

TPS(該值越大性能越好)從 3783 個增加到 5461 個,相當于提升了 44%。

如何通過移除Nginx提高TPS效率

5. 在生產環境運行新配置服務的觀察結果

內存使用情況

使用 Nginx 運行該服務實例時,每個實例使用的平均內存非常一致,內存使用率在 13%和 16%之間。

自從刪除 Nginx 以來,我們已經看到服務進程的內存使用率變大,在 15%到 30%之間,平均值趨近為 22%。我們確信這是由于 Nginx 限制了 Kestrel 處理的請求數量。

因此,Kestrel 在高并發下始終會以一定的速率處理請求,這意味著內存使用量幾乎沒有很大變化。消除這一瓶頸后,由于 Kestrel 會處理數量不等的請求,我們現在可以看到更多的內存使用和變化情況。

Nginx + Kestrel

如何通過移除Nginx提高TPS效率

Kestral only

如何通過移除Nginx提高TPS效率

平均活躍節點數

活躍節點的平均數量從 5.35 下降到 4.66。現在,我們可以看到相當長的時間內僅僅運行著四個服務器;而在同一時段的高峰時期,相比之前使用 Nginx,我們同樣運行著更少的服務器。

Nginx + Kestrel

如何通過移除Nginx提高TPS效率

Kestral only

如何通過移除Nginx提高TPS效率

負載均衡設備的 5xx 錯誤率

一段時間以來,我們發現通過負載均衡設備統計的信息報告中,5xx 錯誤率很高,如下圖所示。這些錯誤并不是來自我們應用程序,而且在 Raygun 也沒有對其認定為故障并進行報告。

原來,這些錯誤來自 Nginx,并且通過刪除此代理,我們現在可以更好地處理滿負載,而且大大減少了故障的發生。

總體而言,由于我們服務器處理的請求量很大,即使是以下較高的數量也僅占我們處理的總請求量的很小一部分。注意到通過刪除 Nginx 層可以得到顯著的性能提升,這一點是值得肯定的。我們并不是對 Nginx 進行批評和否定,當然也有可能是我們 Nginx 最終的配置問題,但是,簡化配置似乎可以更好地解決這個問題。

如何通過移除Nginx提高TPS效率

以上是“如何通過移除Nginx提高TPS效率”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

海淀区| 宁明县| 开阳县| 滨海县| 翁源县| 丹江口市| 紫阳县| 三穗县| 东乡县| 陵水| 枣庄市| 万源市| 枣强县| 星子县| 巩留县| 松阳县| 厦门市| 万宁市| 石泉县| 改则县| 股票| 石景山区| 银川市| 若尔盖县| 定日县| 临武县| 蓬安县| 屏山县| 恩平市| 汉川市| 通山县| 西青区| 红原县| 星子县| 普兰县| 资溪县| 独山县| 庄河市| 宁强县| 平陆县| 九江县|