久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

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

175次閱讀
沒有評論

共計 2027 個字符,預計需要花費 6 分鐘才能閱讀完成。

自動寫代碼機器人,免費開通

這篇文章主要介紹如何通過移除 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%。

TPS

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

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

內存使用情況

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

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

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

Nginx + Kestrel

Kestral only

平均活躍節點數

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

Nginx + Kestrel

Kestral only

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

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

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

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

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

向 AI 問一下細節

丸趣 TV 網 – 提供最優質的資源集合!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-07發表,共計2027字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 乐亭县| 峨边| 壤塘县| 莒南县| 读书| 阿鲁科尔沁旗| 长阳| 那曲县| 平陆县| 五莲县| 钦州市| 康平县| 和龙市| 嵊州市| 澳门| 聂拉木县| 金门县| 宣化县| 瑞安市| 宜章县| 丹凤县| 抚宁县| 榕江县| 普兰县| 景洪市| 金沙县| 寻乌县| 延边| 巴东县| 融水| 微山县| 鄂伦春自治旗| 克东县| 洛隆县| 容城县| 通城县| 德庆县| 屯门区| 临洮县| 宜良县| 手机|