网易首页 > 网易号 > 正文 申请入驻

从 Node 转向 Go,性能提升 5 倍,内存减少 40%

0
分享至


作者 |

David Barroso

编译| 梦依丹

出品 | CSDN(ID:CSDNnews)

近日,开源服务软件Hasura在官博发文称,随着用户数的增加,软件规模化的性能开始成为一个问题,于是他们用Go重写了一个Node.js微服务,结果显示,内存消耗减少至一半而服务请求数量却增加了5倍。

为什么会选择Go?

在可扩展需求变的愈加急切的情况之下,Hasura团队决定用Go重写服务。选择Go的原因有很多,其中包括但不止于:

  • 它的依赖性管理系统和构建系统非常适合云计算

  • Nhost团队对Go经验丰富

  • 与Node.js相比,Go显得非常冗长,但它易学且上手快

  • 众所周知,其有着卓越的性能表现

  • 有关这门语言的更多介绍,推荐你阅读ACM的这篇文章:https://cacm.acm.org/magazines/2022/5/260357-the-go-programming-language-and-environment/fulltext

重写服务

看似简单的事情,可做起来并不容易。事实上,重写工作并不顺利,尤其是编写这样的微服务。该服务非常方便有用,但并不执行过于复杂的任务,Hasura-storage的创新和实用性来自于连接用户喜爱的两个伟大的服务:S3和Hasura,而不是做任何异想天开的事情。

重写完成后的性能表现

任何重写工作都避免不了进行基准测试,他们也一样。基于k6设计了以下测试环境。当测试开始时,它在最初的10秒内将用户数量从1提升到目标数,然后再运行60秒才结束。

工作人员尽可能快地查询服务,我们运行以下测试。

  • download_small_file (100 workers) - 下载一个100KB的文件

  • download_medium_file (100 workers) - 下载一个5MB的文件

  • download_large_file (50 workers) - 下载一个45MB的文件

  • download_image (100 workers) - 下载一个5.3MB的图片

  • download_image_manipulated (10 workers) - 下载相同的图片,但要调整图片的大小,并即时应用一些模糊的效果

  • CPU被限制在整个系统的10%

  • 内存没有限制

在看到结论之前,这里想澄清一下,你将要看到的数字不应该从表面上看,用于基准测试的系统的CPU容量相当有限,所以想给两个服务施加些压力,看看它们在压力下的表现,所以,大家感兴趣的不是原始数字,而是两个版本之间的差异。

请求数

请求数是衡量重写是否有意义的重要指标:


如图所示,在各种情况下,所提供的请求数量都有大幅提高,特别是对于较小的文件,有5倍的提升。

内存消耗

内存是一种有限的资源,如果一个系统达到了它的极限,就不容易对它进行节流。传统的系统依靠交换磁盘,但对整体性能影响巨大。现代系统依靠的是在达到阈值时重启服务。正是由于这个原因,不同情况下的内存使用峰值是很重要的,如果你达到一定的数值,你的服务就会被重新启动,如果服务被重新启动,它就不能为请求提供服务。下面可以看到上述不同场景下的峰值使用情况。


如图所示,该项指标中多种情况下都得到了较大的提升,尤其是在下载大文件时。

响应时间

关于响应时间这个指标,主要看两个方面,最小响应时间,以及在95%的页面之下,大多数用户端的响应时长最多是多少(包括系统有压力时)。

下面先看一下最小响应时间。


在download_small_file案例中很难看出来有什么变化,但将该场景的响应时间从Node.js案例的29ms提高到Go案例的7ms。除了download_image_manipulated,在其他场景中看到了4倍的改进。

现在来看看95%的页面响应情况。


在该测试案例下面,你也能看到大多数情况之下都有4倍的改进,但在download_image_manipulated和download_large_file这两种情况下看到了实质性的改进,但没有像其他情况那样戏剧性。这是有道理的,因为下载大文件是由I/O NET约束的,而处理图像是由CPU约束的,即使如此,很高兴能看到这一重大改进。

将服务部署到生产中

在服务被重写和测试后,Hasura团队将服务部署到生产中。当它被部署后,效果非常显著。下面是在集群中的一个节点的内存使用情况。


正如你所看到的,新服务减少了近40%的内存占用,这一重大改进可以为更多的用户和流量提供服务,且不会增加基础设施费用。

结论

经测试及实际生产部署得知,重写后的服务顺利完成了当初定下的性能提升目标,利用更少的资源提供更多的请求与服务,并且也改善了用户的响应时长。

  • https://nhost.io/blog/hasura-storage-in-go-5x-performance-increase-and-40-percent-less-ram

成就一亿技术人

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
天气预报:明后天大范围暴雨来袭,2022年会是冷秋吗?农谚怎么说

天气预报:明后天大范围暴雨来袭,2022年会是冷秋吗?农谚怎么说

嘻嘻男孩
2022-08-08 20:43:36
海峡突然响声震天:伊朗引爆70枚深水炸弹,竟炸出隐藏的美核潜艇

海峡突然响声震天:伊朗引爆70枚深水炸弹,竟炸出隐藏的美核潜艇

希言话史
2022-08-08 18:32:50
老板饭局后打包剩菜给家穷的司机,一年后司机才知是特地买给他的

老板饭局后打包剩菜给家穷的司机,一年后司机才知是特地买给他的

唐德看世界
2022-05-29 00:27:01
如果把全国各省看做一个班级,这事儿就有意思了!

如果把全国各省看做一个班级,这事儿就有意思了!

混知
2022-08-09 13:01:14
上午9点!中国乒乓球遭毁灭打击:刘国梁很意外,球迷吐槽声一片

上午9点!中国乒乓球遭毁灭打击:刘国梁很意外,球迷吐槽声一片

乒乓看世界
2022-08-08 21:44:18
彭于晏逐渐让我们觉得配得上他

彭于晏逐渐让我们觉得配得上他

小吃货聊娱乐
2022-07-09 16:30:26
成都高温天气仍将持续 最高温度将达到39℃左右

成都高温天气仍将持续 最高温度将达到39℃左右

锦观新闻
2022-08-09 11:52:05
男人射出的精华液质量好坏,肉眼可见吗?

男人射出的精华液质量好坏,肉眼可见吗?

糖芯妈妈
2022-08-08 10:31:25
惊悚!越南一初中生从26楼纵身一跃而下,跳楼前在酒店喝咖啡

惊悚!越南一初中生从26楼纵身一跃而下,跳楼前在酒店喝咖啡

缅甸中文网
2022-08-08 18:21:33
巨石强森都想挑战的肌肉王者马东石!能揍爆坏人又能变身马可爱

巨石强森都想挑战的肌肉王者马东石!能揍爆坏人又能变身马可爱

ChicMyGeek
2022-08-08 19:30:20
湖北省商务厅原厅长秦军被“双开”!官方通报:大搞迷信活动、将个人费用在单位报销,侵吞公款...

湖北省商务厅原厅长秦军被“双开”!官方通报:大搞迷信活动、将个人费用在单位报销,侵吞公款...

每日经济新闻
2022-08-09 17:59:25
李敖:台湾就是中国的睾丸,美国人耍流氓经常偷偷摸摸来扯蛋

李敖:台湾就是中国的睾丸,美国人耍流氓经常偷偷摸摸来扯蛋

有心无意
2022-08-08 12:37:16
“不会再和大专女生相亲”,28岁研究生的自述,戳到多少人的痛处

“不会再和大专女生相亲”,28岁研究生的自述,戳到多少人的痛处

婉清学姐
2022-08-09 12:42:26
44885人见证!高拉特首秀创主场上座率新高,替补登场9分钟无作为

44885人见证!高拉特首秀创主场上座率新高,替补登场9分钟无作为

周佳骅
2022-08-08 22:08:25
佩落西变相承认一个中国:当我还是小女孩时梦想挖穿地球来到中国

佩落西变相承认一个中国:当我还是小女孩时梦想挖穿地球来到中国

商业观察佳
2022-08-07 20:42:15
港币贬值压力将要减轻?今天,香港金管局买入29.75亿港元!

港币贬值压力将要减轻?今天,香港金管局买入29.75亿港元!

财经逍遥
2022-08-09 15:54:05
小明星!王楠女儿合影国少队员,躲姥姥怀里撒娇,盯证书满眼羡慕

小明星!王楠女儿合影国少队员,躲姥姥怀里撒娇,盯证书满眼羡慕

足坛宙斯
2022-08-09 16:49:27
泽连斯基谈台湾:要确保一个“国家”不能侵略另一“国家”

泽连斯基谈台湾:要确保一个“国家”不能侵略另一“国家”

蒋平蒋论
2022-08-08 17:09:31
8万人被困三亚!罪魁祸首暴露了…

8万人被困三亚!罪魁祸首暴露了…

鸣金网
2022-08-09 10:17:30
我军宣布延长军演,蔡英文再次喊话大陆:愿通过对话解决两岸问题

我军宣布延长军演,蔡英文再次喊话大陆:愿通过对话解决两岸问题

杨春思
2022-08-09 12:02:51
2022-08-09 18:40:49
CSDN
CSDN
成就一亿技术人
22042文章数 238960关注度
往期回顾 全部

科技要闻

环比暴跌超60% 特斯拉中国销量怎么了?

头条要闻

保险箱被FBI撬开 特朗普惹上"大麻烦"了?

头条要闻

保险箱被FBI撬开 特朗普惹上"大麻烦"了?

体育要闻

被禁赛50年后 她们拿到了欧洲冠军

娱乐要闻

赵露思卖馄饨旧照 大学时人气就很旺

财经要闻

汽车要闻

极氪009外观首发 "光之泉"前脸比大劳的亮多了

态度原创

教育
亲子
数码
时尚
游戏

教育要闻

由剑南春赞助,2022年网易教育高考特别报道

亲子要闻

这些防溺水安全知识,家长孩子都要看

数码要闻

「逛吃的亚洲象」续集:带路抓偷渡客,大疆热成像无人机立功

为什么会生活的人都喜欢穿棉麻?

“假赛哥”京一发长文道歉

进入关怀模式