chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何用Go重寫Node.js服務(wù)

馬哥Linux運(yùn)維 ? 來(lái)源:OSC開(kāi)源社區(qū) ? 作者:OSC開(kāi)源社區(qū) ? 2022-07-01 10:51 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Hasura Storage 是一項(xiàng)開(kāi)源服務(wù),在 hasura 和任何 s3 兼容的存儲(chǔ)服務(wù)之上增加了一個(gè)存儲(chǔ)服務(wù)。其目的是能夠利用云存儲(chǔ)服務(wù),同時(shí)也利用 hasura 的功能,如它的 graphql API、權(quán)限、行動(dòng)、預(yù)設(shè)等。

出于業(yè)務(wù)發(fā)展需求,Hasura Storage 團(tuán)隊(duì)近期將其原本用 Node.js 編寫的服務(wù)用 Golang 進(jìn)行了重寫?!斑@個(gè)用 Node.js 編寫的服務(wù)在相當(dāng)長(zhǎng)的一段時(shí)間內(nèi)為我們提供了良好的服務(wù),但隨著公司的發(fā)展和用戶數(shù)量的大規(guī)模增加,性能開(kāi)始成為一個(gè)問(wèn)題。雖然 Node.js 可能有很多可取之處,但優(yōu)異的性能和可擴(kuò)展性并不是其中之一。”

Hasura Storage 方面表示,在使用Golang進(jìn)行重寫后,其可處理的服務(wù)請(qǐng)求數(shù)增加了 5 倍,同時(shí)內(nèi)存消耗減半。根據(jù)介紹,他們選擇 Go 的原因在于:

該語(yǔ)言的依賴性管理系統(tǒng)和構(gòu)建系統(tǒng)使其非常適合云

團(tuán)隊(duì)有豐富的 Golang 經(jīng)驗(yàn)

雖然 Go是一種非常冗長(zhǎng)的語(yǔ)言(尤其是與 Node.js 相比),但它非常易于學(xué)習(xí)且編寫速度快

性能非常優(yōu)異

重寫完成后,Hasura Storage 團(tuán)隊(duì)針對(duì) Node.js 和 Golang 版本的服務(wù)運(yùn)行了一些基準(zhǔn)測(cè)試。使用了k6并設(shè)計(jì)了以下測(cè)試:

當(dāng)測(cè)試開(kāi)始時(shí),它會(huì)在前 10 秒內(nèi)將 workers 的數(shù)量從 1 增加到 TARGET

然后再運(yùn)行 60 秒才結(jié)束。

Workers盡可能快地查詢服務(wù)

運(yùn)行以下測(cè)試:

download_small_file

download_medium_file

download_large_file

download_image

download_image_manipulated

CPU 被限制在整個(gè)系統(tǒng)的 10%

RAM 是無(wú)限的

Hasura Storage 提前聲明稱,最終結(jié)果不應(yīng)該只看表面的數(shù)字;“用于基準(zhǔn)測(cè)試的系統(tǒng)的 CPU 容量非常有限,因?yàn)槲覀兿雽?duì)這兩種服務(wù)施加壓力并看看它們?cè)趬毫ο碌谋憩F(xiàn)如何所以,我們感興趣的不是數(shù)字,而是兩個(gè)版本之間的差異?!?/p>

測(cè)試結(jié)果表明,Hasura Storage在每種情況下能夠處理的請(qǐng)求數(shù)都實(shí)現(xiàn)了大幅提升,其中較小的文件(5x)的效果更為顯著。

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

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

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

另一個(gè)重要的指標(biāo)是響應(yīng)時(shí)間,Hasura Storage 提供了兩個(gè)數(shù)據(jù):最小響應(yīng)時(shí)間,開(kāi)源告訴我們系統(tǒng)未承受壓力時(shí)的響應(yīng)時(shí)間;以及 P95,開(kāi)源告訴我們大多數(shù)用戶的響應(yīng)時(shí)間最多是多少(包括當(dāng)系統(tǒng)處于壓力之下)。

首先是最小響應(yīng)時(shí)間。測(cè)試用例download_small_file 的結(jié)果不好從圖中目測(cè),但Hasura Storage 稱其將場(chǎng)景的響應(yīng)時(shí)間從 Node.js用例的 29ms 提高到 Golang用例的 7ms。除了在 download_image_manipulated 中實(shí)現(xiàn)了大約 2 倍的改進(jìn)外,在其他場(chǎng)景中則均實(shí)現(xiàn)了 4 倍的改進(jìn)。

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

再是 P95。除 download_image_manipulated 和 download_large_file 外,大多數(shù)情況下都實(shí)現(xiàn)了 4 倍的改進(jìn)。Hasura Storage 解釋稱,雖然沒(méi)有像其他情況那樣戲劇性,但這兩種情況下都有實(shí)質(zhì)性的改進(jìn)。“這是合理的,因?yàn)橄螺d大文件會(huì)受到 I/O NET 的約束,而處理圖像則會(huì)受到 CPU 的約束。但即使如此,我們也很高興看到這種實(shí)質(zhì)性的改進(jìn)?!?/p>

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

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

在服務(wù)被重寫和測(cè)試后,Hasura Storage 將服務(wù)部署到了生產(chǎn)環(huán)境,一些重寫的好處也開(kāi)始展現(xiàn)。如下圖所示(集群的一個(gè)節(jié)點(diǎn)中的 RAM 使用情況),內(nèi)存占用減少了近 40%。“這是一項(xiàng)重大改進(jìn),可以讓我們?cè)诓辉黾诱w基礎(chǔ)設(shè)施費(fèi)用的情況下為更多用戶和流量提供服務(wù)。”

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

Hasura Storage 方面表示,他們決定重寫服務(wù)是為了提高性能指標(biāo);而在對(duì)兩個(gè)服務(wù)進(jìn)行并列基準(zhǔn)測(cè)試后,他們也可以有底氣的宣稱成功地顯著改善了所有指標(biāo)。“我們希望能夠在使用更少資源的同時(shí)滿足更多請(qǐng)求,同時(shí)還可以改善我們用戶的響應(yīng)時(shí)間,我相信他們會(huì)喜歡的。”

原文標(biāo)題:用Go重寫Node.js服務(wù):項(xiàng)目性能提升5倍,內(nèi)存減少40%

文章出處:【微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

審核編輯:彭靜

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    11256

    瀏覽量

    224149
  • RAM
    RAM
    +關(guān)注

    關(guān)注

    8

    文章

    1399

    瀏覽量

    120169
  • 開(kāi)源
    +關(guān)注

    關(guān)注

    3

    文章

    4154

    瀏覽量

    45828
  • 存儲(chǔ)服務(wù)
    +關(guān)注

    關(guān)注

    0

    文章

    20

    瀏覽量

    6061

原文標(biāo)題:用Go重寫Node.js服務(wù):項(xiàng)目性能提升5倍,內(nèi)存減少40%

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    從零開(kāi)始安裝并配置開(kāi)源AI編程神器OpenCode

    編程神器OpenCode吧! 一,第一步:環(huán)境準(zhǔn)備 (Node.js & opencode 然后鍵入命令,“/connect",連接編程大模型供應(yīng)商。 選擇“Z.AI Coding Plan”,如下所示
    的頭像 發(fā)表于 01-22 21:22 ?588次閱讀
    從零開(kāi)始安裝并配置開(kāi)源AI編程神器OpenCode

    從0到1搭建實(shí)時(shí)日志監(jiān)控系統(tǒng):基于WebSocket + Elasticsearch的實(shí)戰(zhàn)方案

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

    Node-RED+Modbus_slave:JSON數(shù)據(jù)采集與阿里云服務(wù)器上傳

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

    進(jìn)迭時(shí)空 V8 RISC-V 后端優(yōu)化

    前言V8是Google開(kāi)發(fā)及開(kāi)源的JavaScript和WebAssembly語(yǔ)言編譯引擎,是Chromium項(xiàng)目的一部分,主要應(yīng)用于Chrome瀏覽器和Node.js等項(xiàng)目,在瀏覽器生態(tài)中發(fā)
    的頭像 發(fā)表于 07-31 09:02 ?965次閱讀
    進(jìn)迭時(shí)空 V8 RISC-V 后端優(yōu)化

    【M-K1HSE開(kāi)發(fā)板免費(fèi)體驗(yàn)】M-K1HSE開(kāi)發(fā)板構(gòu)建HELLO WORLD頁(yè)面

    工程存放的位置,其他參數(shù)保持默認(rèn)設(shè)置即可,點(diǎn)擊【finish 】。 其中Node用來(lái)配置當(dāng)前工程運(yùn)行的Node.js版本,可選擇使用已有的Node.js或下載新的Node.js版本 4
    發(fā)表于 07-15 04:31

    HarmonyOS5云服務(wù)技術(shù)分享--ArkTS開(kāi)發(fā)函數(shù)

    等打包 ? 支持Node.js 14.x/18.x和Java 1.8 ? 支持HTTP觸發(fā)器調(diào)用 ? 持續(xù)開(kāi)發(fā)調(diào)試一條龍 ?? 準(zhǔn)備工作: 安裝AGCLI工具(華為應(yīng)用分發(fā)服務(wù)命令行工具) 準(zhǔn)備測(cè)試
    發(fā)表于 05-22 17:29

    HarmonyOS5云服務(wù)技術(shù)分享--ArkTS開(kāi)發(fā)Node環(huán)境

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

    HarmonyOS5云服務(wù)技術(shù)分享--云函數(shù)創(chuàng)建配置指南

    。HarmonyOS的AGC平臺(tái)提供靈活配置,支持Node.js、Python、Java等多種語(yǔ)言,還能自定義運(yùn)行環(huán)境哦! ?? 二、手把手創(chuàng)建第一個(gè)云函數(shù) ??Step 1:進(jìn)入云函數(shù)控制臺(tái)?? 登錄
    發(fā)表于 05-22 17:08

    keithley 2600系列l(wèi)abiew vi中配置測(cè)量功能中的node in 和node out具體功能是什么?

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

    KaihongOS操作系統(tǒng):開(kāi)發(fā)環(huán)境搭建

    ”。 步驟 2選擇 Do not import settings,點(diǎn)擊 OK。 步驟 3安裝 Node.js 與 ohpm??梢灾付ū镜匾寻惭b的 Node.js 或 ohpm 路徑位置;如果本地 沒(méi)有合適
    發(fā)表于 04-23 07:27

    AIWA JS215維修手冊(cè)

    電子發(fā)燒友網(wǎng)站提供《AIWA JS215維修手冊(cè).pdf》資料免費(fèi)下載
    發(fā)表于 04-01 16:44 ?4次下載

    【教程】Node-RED中Chirpstack節(jié)點(diǎn)使用指南

    在物聯(lián)網(wǎng)應(yīng)用開(kāi)發(fā)中,LoRaWAN技術(shù)因其低功耗、遠(yuǎn)距離傳輸?shù)忍攸c(diǎn)而備受關(guān)注。Chirpstack作為最流行的LoRaWAN服務(wù)器之一,與Node-RED的集成為我們提供了強(qiáng)大的物聯(lián)網(wǎng)應(yīng)用開(kāi)發(fā)能力
    的頭像 發(fā)表于 03-27 19:33 ?1164次閱讀
    【教程】<b class='flag-5'>Node</b>-RED中Chirpstack節(jié)點(diǎn)使用指南

    在樹(shù)莓派上構(gòu)建和部署 Node.js 項(xiàng)目

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

    僅僅使用代碼,就能點(diǎn)亮樹(shù)莓派的 GPIO 世界

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

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

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