成人免费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應用性能

2012-02-02 15:14:29

Node.js

2021-01-18 09:43:58

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指令

2025-01-08 08:47:44

Node.js內存泄露定時器

2020-01-03 16:04:10

Node.js內存泄漏

2020-01-15 14:20:07

Node.js應用程序javascript
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品一区二区三区入口 | 在线观看中文字幕视频 | 久久免费观看视频 | 日韩精品一区二区三区在线观看 | 国产精品久久久久久久久久免费 | 99精品一区二区 | 日韩一区二区三区在线视频 | av中文字幕在线 | 久久久一区二区三区 | 午夜免费视频 | 在线亚洲欧美 | 国产一区二区不卡 | 久久久久久久久久久高潮一区二区 | 中文字幕第一页在线 | 亚洲国产精品久久人人爱 | av天天澡天天爽天天av | 久久高清 | 91精品国产高清一区二区三区 | 亚洲不卡在线观看 | 国产精品乱码一二三区的特点 | 欧美一a| 中文字幕免费视频 | 精品国产18久久久久久二百 | 久久99精品久久 | 日本免费一区二区三区 | 亚洲国产一区视频 | 91久久久久久久 | 岛国精品 | 欧美爱爱视频网站 | 伊人热久久 | 在线男人天堂 | 国产毛片在线看 | 精品视频免费在线 | 日韩在线成人 | 青青草在线视频免费观看 | 天天操夜夜爽 | 欧美一级二级在线观看 | 日韩一区二区三区四区五区六区 | 91看片| a视频在线 | 四虎午夜剧场 |