在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何用Go重寫Node.js服務

馬哥Linux運維 ? 來源:OSC開源社區 ? 作者:OSC開源社區 ? 2022-07-01 10:51 ? 次閱讀

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并設計了以下測試:

當測試開始時,它會在前 10 秒內將 workers 的數量從 1 增加到 TARGET

然后再運行 60 秒才結束。

Workers盡可能快地查詢服務

運行以下測試:

download_small_file

download_medium_file

download_large_file

download_image

download_image_manipulated

CPU 被限制在整個系統的 10%

RAM 是無限的

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

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

522bd990-e2dd-11ec-ba43-dac502259ad0.png

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

529817c2-e2dd-11ec-ba43-dac502259ad0.png

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

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

52ffaa72-e2dd-11ec-ba43-dac502259ad0.png

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

534e3a52-e2dd-11ec-ba43-dac502259ad0.png

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

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

53dbe7c6-e2dd-11ec-ba43-dac502259ad0.png

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

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

文章出處:【微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

審核編輯:彭靜

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10911

    瀏覽量

    213144
  • RAM
    RAM
    +關注

    關注

    8

    文章

    1369

    瀏覽量

    115065
  • 開源
    +關注

    關注

    3

    文章

    3412

    瀏覽量

    42740
  • 存儲服務
    +關注

    關注

    0

    文章

    20

    瀏覽量

    5964

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

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Bun 1.2震撼發布:全力挑戰Node.js生態的JavaScript運行時新星

    了與 Node.js 的兼容性,還為開發者帶來了內置的數據庫支持和云服務集成能力,進一步強化了其“全能工具包”的定位。Node.js 兼容性獲得突破性進展在此次更新中,最引人注目的是 Bun 在
    的頭像 發表于 01-24 10:42 ?138次閱讀
    Bun 1.2震撼發布:全力挑戰<b class='flag-5'>Node.js</b>生態的JavaScript運行時新星

    使用OpenVINO? ElectronJS中創建桌面應用程序

    ? 最近,我完成了一個 demo 演示,展示了 OpenVINO 在 Node.js 框架中的強大功能。得益于與 Electron.js 的集成,該演示不僅能夠高效地執行神經網絡推理,還提供了交互式
    的頭像 發表于 11-25 11:35 ?266次閱讀
    使用OpenVINO? ElectronJS中創建桌面應用程序

    Node.js小科普和Node.js安裝常見管理工具

    便捷。但是隨著JavaScript影響力不斷壯大,它的使用范圍已經發生了變化。2009年,Node.js發布,初代版本支持基本的網絡通信和文件系統操作,這讓JavaScript可以到服務器上大展拳腳
    的頭像 發表于 11-23 15:37 ?167次閱讀
    <b class='flag-5'>Node.js</b>小科普和<b class='flag-5'>Node.js</b>安裝常見管理工具

    前端技術探秘-Nodejs的CommonJS規范實現原理

    了解Node.js Node.js是一個基于ChromeV8引擎的JavaScript運行環境,使用了一個事件驅動、非阻塞式I/O模型,讓JavaScript 運行在服務端的開發平臺,它讓
    的頭像 發表于 11-05 11:56 ?866次閱讀
    前端技術探秘-Nodejs的CommonJS規范實現原理

    JS實現簡單的屏幕錄像機

    作者:京東保險 張潔 本文將介紹如何用JS實現簡單的屏幕錄像機。 一、錄制準備 創建一個按鈕 ? Start recording ? 書寫JavaScript ? var
    的頭像 發表于 10-09 15:27 ?193次閱讀

    工程師必備!Node.js和常見管理工具介紹(附操作演示)

    語言及其相關生態中的一些基礎而關鍵的概念,以及它們是如何在互聯網歷史浪潮中產生的。一JavaScript與Node.js1JavaScriptJavaScript,即JS
    的頭像 發表于 08-30 12:34 ?361次閱讀
    工程師必備!<b class='flag-5'>Node.js</b>和常見管理工具介紹(附操作演示)

    ARMxy ARM 物聯網邊緣計算網關支持 Node-RED 用于工業控制

    在惡劣環境下穩定運行。豐富的通信接口(如網口、USB、RS485 等)及 WiFi/4G 支持,使網關能夠靈活適應不同網絡環境。 Node-RED 是一個基于 Node.js 的流程編排工具,通過
    的頭像 發表于 08-19 17:01 ?453次閱讀
    ARMxy ARM 物聯網邊緣計算網關支持 <b class='flag-5'>Node</b>-RED 用于工業控制

    使用api調用espconn_connect時遇到的疑問求解

    當我們使用 api 調用時espconn_connect我們會遇到問題。 我們想在我們的私人服務器下模擬node.js的 socket.io(websocket),但是我們沒有機會,也沒有足夠
    發表于 07-11 07:20

    Node-RED初學者教程-三分鐘學習

    通過這短短三分鐘的教程,你已經掌握了Node-RED的基本操作。你可以利用Node-RED的強大功能來創建更復雜的數據流和自動化任務,無論是物聯網應用、API集成還是數據處理。Node-RED簡化了編程過程,讓開發更直觀、更高效
    的頭像 發表于 06-27 17:09 ?3243次閱讀
    <b class='flag-5'>Node</b>-RED初學者教程-三分鐘學習

    Node-RED如何制作漂亮的界面

    Node-RED不僅是一個強大的編程工具,還能通過其儀表盤(Dashboard)功能為物聯網應用創建美觀、實用的界面。以下是如何使用Node-RED制作漂亮界面的詳細步驟和技巧。很多公司已經將產品
    的頭像 發表于 06-26 16:50 ?5243次閱讀
    <b class='flag-5'>Node</b>-RED如何制作漂亮的界面

    請問ble_mesh的nodenode之間是否要定義協議通訊?

    1.當一個provisioner和多個Node組成一個ble mesh網絡,如果Provisioner想和某個Node通訊,但是他們的距離超過了30米,得借助另一個Node作為橋梁,那么就涉及到
    發表于 06-26 06:21

    Node-RED安裝本地教程

    Node-RED是一個基于流的開發工具,廣泛應用于物聯網(IoT)、家庭自動化和其他數據驅動的應用程序。它通過圖形化的編程界面,使得非專業程序員也能輕松上手。本文將介紹如何在本地環境中安裝Node-RED,幫助你快速開始項目開發。
    的頭像 發表于 06-24 12:10 ?2302次閱讀
    <b class='flag-5'>Node</b>-RED安裝本地教程

    鴻蒙實戰開發-本地部署、SmartPerf 編譯部署指導文檔

    編譯環境搭建 注意:在linux編譯環境安裝時以root或者其他 sudo 用戶身份運行下面的命令。 node 環境安裝 下載Node js安裝包(windows推薦, linux跳過此步驟) 從
    發表于 05-09 14:23

    鴻蒙開發實戰:網絡請求庫【axios】

    [Axios]?,是一個基于 promise 的網絡請求庫,可以運行 node.js 和瀏覽器中。本庫基于[Axios]原庫v1.3.4版本進行適配,使其可以運行在 OpenHarmony,并沿用其現有用法和特性。
    的頭像 發表于 03-25 16:47 ?4055次閱讀
    鴻蒙開發實戰:網絡請求庫【axios】

    鴻蒙新手入門-環境準備問題解析

    Node.js版本與API配套關系 由于SDK的部分工具依賴Node.js運行時,推薦使用配套API版本的Node.js,保證工程的兼容性。 匹配關系見下表: API Level Node.j
    發表于 02-18 17:44
    主站蜘蛛池模板: 激情综合色综合久久综合 | 天天干天天上 | 欧美日本一道免费一区三区 | 在线五月婷婷 | 色播影院性播免费看 | 在线中文天堂 | 国产在线成人一区二区 | 狠狠ri| 一级毛片一级毛片 | 四虎影院永久免费观看 | 么公的好大好硬好深好爽在线视频 | 国产伦精品一区二区三区女 | 狠狠干夜夜爽 | 欧美黄色片在线 | 亚洲免费色视频 | 韩国激情啪啪 | 稀缺资源呦视频在线网站 | 深夜偷偷看视频在线观看 | 手机看片日韩高清1024 | 久久草在线精品 | 人人澡人| 午夜影院在线视频 | 天天色综合4 | 久久亚洲精品国产亚洲老地址 | 性色欧美 | 天天做天天爱夜夜爽女人爽宅 | 亚洲xx站| aaaa级日本片免费视频 | 国产精品自线在线播放 | 日本国产在线观看 | 婷婷激情在线 | 亚洲色图欧美激情 | 看亚洲a级一级毛片 | 色成人综合网 | 影音先锋色天使 | 免费的三级网站 | 男女草逼视频 | 三级电影在线观看视频 | 四虎久久精品国产 | ww欧洲ww在线视频看 | 四虎网址在线观看 |