三星芯片在内存内部做计算:给SaaS的一课
你的系统很慢,服务器账单只涨不跌。你换过套餐,升级过机器,问题还是回来了。我想用一个意想不到的例子告诉你原因:一款学会了自己做算术的三星内存芯片。
在Hot Chips,也就是各大厂商展示新芯片的会议上,三星发布了PIM的最新进展。PIM是Processing-in-Memory的缩写。说白了:在内存内部做处理。这项技术背后的思路,能解释很多让SaaS又贵又慢的原因。跟着我,我把它全部翻译成大白话。
三星在攻克的问题
所有计算机都是这样工作的:数据存在内存里,处理器负责计算。但内存和处理器是两块分开的芯片。要计算任何东西,数据都得从一块芯片跑到另一块,然后再跑回来。
这趟旅程就是瓶颈。业界管它叫"memory wall",内存墙。过去几十年,处理器变得快到离谱。但它和内存之间的那条路,没快多少。结果就是:处理器大部分时间都在干等,等数据到达。
还有一个圈外人很少知道的细节:移动数据消耗的能量比做计算还多。数学运算本身很便宜。贵的是运输。有了AI之后,这个问题彻底爆炸了,因为AI模型本质上就是一座座数据山,一直在被搬来搬去。
三星的解决方案简单到近乎理所当然:既然旅程是问题,那就消灭旅程。他们把小型计算单元直接放进了内存芯片里。数据不再旅行。计算就在数据住的地方发生。更少的能耗,更少的等待,每瓦特产出更多结果。
贵的从来不是计算。是运输。
这和你的SaaS有什么关系
关系大了。因为你的系统正是同样的毛病,只是规模更大。
想想你系统里一个普通页面的路径,比如销售仪表盘。客户的浏览器请求页面。服务器接收。服务器去问数据库,数据库有时在另一台机器上,有时在另一个数据中心。数据库返回5万行数据。服务器处理这些行,求和、分组、过滤。把结果发给浏览器。浏览器渲染出来。
看到有多少趟旅程了吗?每一个箭头都是数据在移动。每次移动都花时间和金钱。云服务商按出站流量收费,按请求收费,按处理时间收费。数据到处乱跑,你就为每一趟买单。
经典的错误就是这个:从数据库拉取5万行,在服务器上求和,只为在屏幕上显示一个数字。数据库会求和。它做这件事比你的任何代码都更好更快。直接要算好的总和而不是原始数据行,就是三星在硬件上做的事的软件版:把计算带到数据身边,而不是把数据拖到计算面前。
你的系统在支付过多运费的信号
你不需要读代码就能起疑。有些症状在日常业务中就能看到:
- 云账单涨得比客户数量还快。
- 报表要好几秒才能打开,或者一到月底就"卡死"。
- 技术团队解决卡顿的方式永远一样:升级机器。
- 页面一次性加载所有东西,哪怕用户只想看个摘要。
最后这条特别阴险。我见过一个系统,为了只显示客户的姓名和余额,把客户的完整历史记录都下载下来。200个客户时运行良好。到了2万个客户,就成了开着搬家卡车去送一个信封。
升级机器能缓解症状几个月。这就像买一辆更大的卡车,因为你坚持每次都搬运全部家当。正确的问题不是"更大的卡车多少钱"。而是"我们为什么要搬这么多东西"。
三个遵循PIM同样逻辑的改动
我不是建议你去买三星的芯片。我是建议你偷走它的原则:让处理靠近数据。实践中,三个方向能解决大多数情况。
让数据库干活。 求和、平均、分组、过滤:这些数据库原生就会。如果你的服务器还在接收巨大的列表来处理,那就是计算发生在了错误的地方。一条写得好的查询能替代几百行代码,从根上砍掉数据的旅程。
保存结果,别重复计算。 如果销售仪表盘每天被查询300次,而数字每小时才变一次,那就每小时算一次,直接提供现成的结果。这叫缓存,它可能是性能回报率最高的手段。三星消灭了数据的旅程。缓存消灭了重复的计算。同一个思路家族。
把内容放在用户附近。 如果你的客户在巴西,服务器却在弗吉尼亚,每次点击都要横跨大陆两次。CDN和离用户更近的服务器区域,就是PIM的地理版:缩短数据和需要它的人之间的距离。
这三个改动都不需要重写系统。它们是架构调整,几乎总是比服务器升级更便宜。而且和升级不同,效果是永久的:你不再支付运费,而不是每年买更大的卡车。
为什么这件事以后会越来越重要
三星在这上面重金投入的原因是AI。语言模型移动的数据量大到离谱,其能源成本已经变成了几十亿美元的问题。当世界上最大的厂商都在重新设计硬件来缩短数据的路径时,这就是信号:运输已经成为计算的主要成本。
这会沿着整条链传导到你身上。数据中心耗能更多,意味着云更贵。云更贵,意味着浪费型系统会变成直接体现在你财报上的开支。未来几年,架构良好的SaaS和架构糟糕的SaaS之间的差距,不只是速度。是利润率。
我的观点,而且很坚定:我见到的大多数系统不需要更多服务器。需要的是更少的数据搬运。机器升级已经成了这个行业的标准止痛药,它之所以有效,恰恰是因为它推迟了那场关于架构的艰难对话。
从哪里开始,不被行话绑架
你不需要懂芯片才能行动。你需要向负责你系统的人问对问题:
- 最慢的三个页面是哪些?为了显示那些内容,它们加载了多少数据?
- 有什么东西是我们每次都在算,其实可以算一次存起来的?
- 我们的云账单涨在哪一项:处理、流量还是存储?
如果得到的回答很含糊,那本身就是诊断结果。健康的系统对这些问题有具体的答案。
我的工作正是在这一层:审视一家公司的系统,找到数据在白白乱跑的地方,然后缩短路径,用自动化和精简的架构。不卖更大的服务器,因为更大的服务器几乎从来不是答案。如果你的云账单涨得比营收还快,跟我说说你的系统现状,我告诉你先看哪里。
LinkedIn 摘要
云账单涨得比客户数量还快?问题不在服务器。 三星刚刚展示了一款能在内存内部做计算的芯片。为什么?因为移动数据比处理数据更贵。 你的SaaS也有同样的毛病:为了在屏幕上显示一个数字,从数据库拉取5万行数据。数据到处乱跑,你为每一趟买单。 升级机器,就像买一辆更大的卡车,只为每次继续搬运全部家当。正确的问题是:我们为什么要搬这么多东西? 大多数系统不需要更多服务器。需要的是更少的数据搬运。 如果你的云账单涨得比营收还快,来找我,我告诉你先看哪里。 #SaaS #架构 #云计算 #性能 #技术