成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

用 Go 重寫 Node.js 服務:項目性能提升 5 倍,內存減少 40%

開發 新聞
出于業務發展需求,Hasura Storage 團隊近期將其原本用 Node.js 編寫的服務用 Golang 進行了重寫。

Hasura Storage 是一項開源服務,在 hasura 和任何 s3 兼容的存儲服務之上增加了一個存儲服務。其目的是能夠利用云存儲服務,同時也利用 hasura 的功能,如它的 graphql API、權限、行動、預設等。

出于業務發展需求,Hasura Storage 團隊近期將其原本用 Node.js 編寫的服務用 Golang 進行了重寫。“這個用 Node.js 編寫的服務在相當長的一段時間內為我們提供了良好的服務, 但隨著公司的發展和用戶數量的大規模增加,性能開始成為一個問題 。雖然 Node.js 可能有很多可取之處,但優異的性能和可擴展性并不是其中之一。”

Hasura Storage 方面表示,在使用  Golang  進行重寫后,其可處理的 服務請求數增加了 5 倍,同時內存消耗減半 。根據介紹,他們選擇 Go 的原因在于:

  • 該語言的依賴性管理系統和構建系統使其非常適合云
  • 團隊有豐富的 Golang 經驗
  • 雖然 Go  是一種非常冗長的語言(尤其是與 Node.js 相比),但它 非常易于學習且編寫速度快
  • 性能非常優異

重寫完成后,Hasura Storage 團隊針對 Node.js 和 Golang 版本的服務運行了一些基準測試。使用了  k6 并設計了以下測試: 

Hasura Storage 提前聲明稱,最終結果不應該只看表面的數字;“ 用于基準測試的系統的 CPU 容量非常有限,因為我們想對這兩種服務施加壓力并看看它們在壓力下的表現如何所以,我們感興趣的不是數字,而是兩個版本之間的差異。 

測試結果表明,Hasura Storage 在每種情況下能夠處理的請求數都實現了大幅提升,其中較小的文件(5x)的效果更為顯著。

同時在所有情況下都設法大大改善了 RAM 消耗,尤其是在下載大文件時。值得一提的是,這還是在提供了多達 5 倍的請求的前提下。

Hasura Storage 提供了兩個數據 :最小響應時間,開源告訴我們系統未承受壓力時的響應時間;以及 P95,開源告訴我們大多數用戶的響應時間最多是多少(包括當系統處于壓力之下)。

首先是 最小響應時間。測試 用例 download_small_file 的結果不好從圖中目測,但 Hasura Storage 稱其將 場景的響應時間從 Node.js 用例 的 29ms 提高到 Golang 用例 的 7ms。除了在 download_image_manipulated 中實現了大約 2 倍的改進外,在其他場景中則均實現了 4 倍的改進。

再是  P95。除 download_image_manipulated 和 download_large_file 外,大多數情況下都實現了 4 倍的改進。 Hasura Storage 解釋稱,雖然沒有像其他情況那樣戲劇性,但這兩種情況下都有實質性的改進。“這是合理的,因為下載大文件會受到 I/O NET 的約束,而處理圖像則會受到 CPU 的約束。但即使如此,我們也很高興看到這種實質性的改進。”

此外,圖像處理方面也有所改善。

在服務被重寫和測試后,Hasura Storage 將服務部署到了生產環境,一些重寫的好處也開始展現。如下圖所示(集群的一個節點中的 RAM 使用情況), 內存占用減少了近 40%。“這是一項重大改進,可以讓我們在不增加整體基礎設施費用的情況下為更多用戶和流量提供服務。”

Hasura Storage 方面表示,他們決定重寫服務是為了提高性能指標;而在對兩個服務進行并列基準測試后,他們也可以有底氣的宣稱成功地 顯著改善了所有指標 。“ 我們希望能夠在使用更少資源的同時滿足更多請求,同時還可以改善我們用戶的響應時間,我相信他們會喜歡的 。”

責任編輯:張燕妮 來源: 開源中國
相關推薦

2022-06-07 08:07:05

GoNode.js

2015-12-14 10:39:14

2015-04-30 12:34:05

WordPressNode.js

2020-03-17 13:24:04

微服務架構數據

2020-10-26 08:34:13

Node.jsCORS前端

2020-12-28 08:48:44

JS工具fastify

2020-12-14 15:40:59

Nodefastifyjs

2017-03-19 16:40:28

漏洞Node.js內存泄漏

2017-03-20 13:43:51

Node.js內存泄漏

2015-11-04 09:18:41

Node.js應用性能

2021-01-18 09:43:58

Node.js前端服務端

2012-02-02 15:14:29

Node.js

2020-12-14 08:55:00

Node.js服務性框架

2020-05-29 15:33:28

Node.js框架JavaScript

2013-11-01 09:34:56

Node.js技術

2015-03-10 10:59:18

Node.js開發指南基礎介紹

2022-08-28 16:30:34

Node.jsDocker指令

2023-06-30 23:25:46

HTTP模塊內存

2019-07-09 14:50:15

Node.js前端工具

2013-10-23 17:17:31

Node.jsdoT
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产欧美日韩一区 | 国产精品久久久免费 | 青青草一区 | 欧美电影一区 | 3级毛片| 亚洲a视频 | 亚洲一区二区免费 | 国产精品影视在线观看 | av官网在线 | 欧美成人免费在线视频 | 欧美国产日韩在线观看 | 亚洲欧美一区二区三区国产精品 | av黄色在线 | 亚洲高清视频一区二区 | 国产成人精品999在线观看 | 亚洲精品在线国产 | 午夜爱爱网 | 密色视频 | 午夜精品久久久久久久久久久久久 | 99精品久久久国产一区二区三 | 天天干天天草 | 国产精品久久久久婷婷二区次 | 一本大道久久a久久精二百 欧洲一区二区三区 | www.亚洲| 波多野结衣精品在线 | 欧美极品在线播放 | 九九热精品免费 | 午夜精品一区二区三区免费视频 | 一区视频在线播放 | 国产精品区一区二区三 | 日韩欧美一区二区三区免费看 | 日韩蜜桃视频 | 国产一区二区三区色淫影院 | 久久成人精品视频 | 欧美精品一区二区三区四区 在线 | 日本久久久一区二区三区 | 四虎最新视频 | 国产精品久久久久影院色老大 | 国产一区免费 | 国产高清精品一区二区三区 | 精品视频一区二区三区四区 |