国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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 容量非常有限,因為我們想對這兩種服務施加壓力并看看它們在壓力下的表現如何所以,我們感興趣的不是數字,而是兩個版本之間的差異?!?/p>

測試結果表明,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 的約束。但即使如此,我們也很高興看到這種實質性的改進?!?/p>

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

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

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

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

Hasura Storage 方面表示,他們決定重寫服務是為了提高性能指標;而在對兩個服務進行并列基準測試后,他們也可以有底氣的宣稱成功地顯著改善了所有指標?!拔覀兿M軌蛟谑褂酶儋Y源的同時滿足更多請求,同時還可以改善我們用戶的響應時間,我相信他們會喜歡的。”

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

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

審核編輯:彭靜

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

    關注

    68

    文章

    11277

    瀏覽量

    224949
  • RAM
    RAM
    +關注

    關注

    8

    文章

    1399

    瀏覽量

    120546
  • 開源
    +關注

    關注

    3

    文章

    4203

    瀏覽量

    46125
  • 存儲服務
    +關注

    關注

    0

    文章

    20

    瀏覽量

    6074

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

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    大模型 ai coding 比較

    Core i7-1195G7 @ 2.90GHz (4核8線程) OS Windows 10 (win32 x64) Node.js v24.13.0 測試日期 2026-02-19 網關
    發表于 02-19 13:43

    Go 語言高并發服務設計與性能調優實戰:從萬級到百萬級并發的演進之路

    在2026年的今天,Go 語言已成為高并發后端服務的首選語言。根據 Stack Overflow 最新開發者調查: 指標 數據 Go 語言采用率 后端服務中占比 42% 平均并發能力
    發表于 02-18 19:19

    Docker容器化部署完全指南

    我們團隊從 2019 年開始全面容器化,目前線上跑著 800+ 個容器,覆蓋 Java、Go、Node.js、Python 四種技術棧。這篇文章把從安裝到生產環境踩過的坑全部整理出來。
    的頭像 發表于 02-09 14:09 ?382次閱讀

    從0到1搭建實時日志監控系統:基于WebSocket + Elasticsearch的實戰方案

    低成本、實時性高的日志監控系統。 2. 技術選型 數據存儲 :Elasticsearch(高效檢索與聚合) 實時推送 :WebSocket(全雙工通信,避免HTTP輪詢) 后端服務Node.js
    發表于 01-09 16:43

    Node-RED+Modbus_slave:JSON數據采集與阿里云服務器上傳

    1.引言 1.1文檔說明 本文檔介紹的是使用node-red將modbus_slave模擬的485數據進行JSON數據封裝后,上傳到阿里云ECS私人搭建的服務器,數據通過服務器出處理后,存入到
    的頭像 發表于 01-05 17:37 ?696次閱讀
    <b class='flag-5'>Node</b>-RED+Modbus_slave:JSON數據采集與阿里云<b class='flag-5'>服務</b>器上傳

    【M-K1HSE開發板免費體驗】M-K1HSE開發板構建HELLO WORLD頁面

    工程存放的位置,其他參數保持默認設置即可,點擊【finish 】。 其中Node用來配置當前工程運行的Node.js版本,可選擇使用已有的Node.js或下載新的Node.js版本 4
    發表于 07-15 04:31

    HarmonyOS5云服務技術分享--ArkTS開發函數

    等打包 ? 支持Node.js 14.x/18.x和Java 1.8 ? 支持HTTP觸發器調用 ? 持續開發調試一條龍 ?? 準備工作: 安裝AGCLI工具(華為應用分發服務命令行工具) 準備測試
    發表于 05-22 17:29

    HarmonyOS5云服務技術分享--ArkTS開發Node環境

    ? 你好呀,開發者小伙伴們!今天我們來聊聊如何在HarmonyOS(ArkTS API 9及以上)中玩轉云函數,特別是結合Node.js和HTTP觸發器的開發技巧。文章會手把手帶你從零開始,用最接地
    發表于 05-22 17:21

    HarmonyOS5云服務技術分享--云函數創建配置指南

    。HarmonyOS的AGC平臺提供靈活配置,支持Node.js、Python、Java等多種語言,還能自定義運行環境哦! ?? 二、手把手創建第一個云函數 ??Step 1:進入云函數控制臺?? 登錄
    發表于 05-22 17:08

    keithley 2600系列labiew vi中配置測量功能中的node in 和node out具體功能是什么?

    圖中的node in和node out的具體作用是什么呢?新手剛剛接觸labview和源表,不太明白其具體功能
    發表于 05-12 10:11

    KaihongOS操作系統:開發環境搭建

    ”。 步驟 2選擇 Do not import settings,點擊 OK。 步驟 3安裝 Node.js 與 ohpm。可以指定本地已安裝的 Node.js 或 ohpm 路徑位置;如果本地 沒有合適
    發表于 04-23 07:27

    【教程】Node-RED中Chirpstack節點使用指南

    在物聯網應用開發中,LoRaWAN技術因其低功耗、遠距離傳輸等特點而備受關注。Chirpstack作為最流行的LoRaWAN服務器之一,與Node-RED的集成為我們提供了強大的物聯網應用開發能力
    的頭像 發表于 03-27 19:33 ?1274次閱讀
    【教程】<b class='flag-5'>Node</b>-RED中Chirpstack節點使用指南

    在樹莓派上構建和部署 Node.js 項目

    探索在RaspberryPi上構建和部署Node.js項目的最佳實踐。通過我們的專業提示和技巧,克服常見挑戰,使您的項目順利運行。去年圣誕節,我收到了一份極其令人著迷的禮物,它占據了我許多周末的時間
    的頭像 發表于 03-25 09:44 ?675次閱讀
    在樹莓派上構建和部署 <b class='flag-5'>Node.js</b> 項目

    僅僅使用代碼,就能點亮樹莓派的 GPIO 世界

    RaspberryPi的一個流行應用是構建Web服務器。為此,我們可以使用不同的技術,如Python、Node.JS甚至PHP。由于RaspberryPi的絕大多數腳本都是用Python編寫的,因此
    的頭像 發表于 03-25 09:31 ?617次閱讀
    僅僅使用代碼,就能點亮樹莓派的 GPIO 世界

    【干貨】什么是Node-RED?一文帶你了解!

    一什么是Node-RED?首先我們來認識一下什么是Node-RED。Node-RED是一個基于Node.js的開源可視化編程工具,于2013年由IBM公司推出。它可以通過瀏覽器的圖形化
    的頭像 發表于 03-13 19:32 ?1945次閱讀
    【干貨】什么是<b class='flag-5'>Node</b>-RED?一文帶你了解!