MCP Server On FC 之旅第四站: 长连接闲置计费最高降低87%成本的技术内幕
函数计算( FC )是阿里云事件驱动的全托管计算服务, 使用函数计算,您无需采购与管理服务器等基础设施,只需编写并上传代码或镜像。函数计算为您准备好计算资源,弹性地、可靠地运行任务,并提供日志查询、性能监控和报警等功能。面对 MCP Server 场景,函数计算不仅通过 MCP Runtime 支持了社区开源的 Stdio MCP Server 一键托管到函数计算;还通过亲和性调度解决了 MCP Server Session 会话保持的关键问题;同时函数计算针对 MCP Server 的场景特点,在函数计算已有的毫秒级计费基础上,实现了长连接闲置计费能力,支持部署到函数计算的 MCP Server 实现按用计费,在稀疏调用场景,最高可降低 87% 的 MCP Server 的托管成本。
为什么 MCP Server 可能存在资源闲置问题?
在系列文章首篇 MCP Server 实践之旅第 1 站:MCP 协议解析与云上适配 我们深入解析了 MCP 以及 SSE 协议,该协议通过定义标准化事件类型,实现了客户端-服务端的交互控制及会话保持机制,交互过程如下图所示:

- Client端发起一个 GET 请求,建立SSE长连接。(Connection1)
- Server端回复
event:endpoint类型的事件,将sessionId信息放入data 中返回。(Connection1) - Client端使用第2步返回的sessionId信息发起首个HTTP POST 请求。(Connection2)
- Server端迅速响应202,但无内容。(Connection2)
- Server端返回第3步请求的实际消息。(Connection1)
- Client端使用第2步返回的sessionId发起HTTP POST请求
initialized作为确认。(Connection3) - Server端迅速响应202,无内容。(Connection3)
- Client端使用第2步返回的sessionId发起HTTP POST请求
list tools。(Connection4) - Server端迅速响应202,无内容。(Connection4)
- Server端返回第8步请求的实际消息,即工具列表。(Connection1)
- Client端使用第2步返回的sessionId发起HTTP POST请求
call tool。(Connection5) - Server端迅速响应202,无内容。(Connection5)
- Server端返回第11步请求的实际消息,即工具调用结果。(Connection1)
所以,由于 MCP Server 通信协议需要会话保持的特点,一旦初始化,就会建立长连接绑定固定的服务器资源。但绝大多数 MCP Server 的业务流量呈现典型的稀疏性(Sparse Access)与突发性(Burstiness)特征——请求分布高度离散且流量峰谷波动显著,导致服务器资源的实际资源利用率很低,典型场景下图所示:

某用户通过大模型初始化了一个 MCP Server,实现对某文档库的检索能力,大模型会话持续了1小时才关闭,期间总共检索了2次, 资源保持时间是1小时,实际初始化与检索的时间为7.1s,资源闲置比例高达99.8%。在一些复杂的 AI agent 场景, 可能一个会话要连接多个不同用途的 MCP Server,可能产生大量的资源闲置,谁来承担这个闲置成本呢?
函数计算为用户让利,承担了 MCP Server 资源闲置成本
按用计费,是函数计算为用户降本的宗旨,函数计算通过长期对技术的耕耘,已经建立起了三个核心能力:
- 高密度、多样化混部,实现了计算资源的错峰使用:函数计算有来自不同行业的活跃用户,产生了海量的负载类型,基于阿里云“沙箱容器”及“裸金属服务器”,函数计算实现了计算节点上高密度部署,使得多样化的场景类型可以错峰使用计算资源,提升了服务器整体的能效比;
- 基于函数级别的资源画像实现主动干预调度,减少资源挤占的隐患:函数计算基于历史数据,为活跃函数建立起精准的资源画像模型,可以识别函数在不同时间段的资源占用情况,基于画像模型,可以主动对占用大量计算资源的函数调度,减少由于计算节点资源挤占,影响请求延时的概率;
- 百毫秒级的快速弹性及平滑迁移能力,能快速兜底处理资源挤占问题:函数计算具备百毫秒级的弹性及平滑迁移用户负载的能力,在识别到有资源挤占的行为发生时,可以通过平滑迁移快速恢复;
正由于具备这些核心能力,函数计算实现了通过技术降本,所以选择了为用户让利,承担起了 MCP Server 的资源闲置成本。
闲置计费实现的技术内幕
目前函数计算已实现按用计费的能力,如函数计算计费概述所示,按照请求计费的模式是按用计费的典型模式,只有请求执行期间,才会产生费用,无请求执行,实例处于“冻结”状态,冻结持续几分钟便会自动释放资源,不会产生额外的费用;即使您选择预留实例,由于有明确的“冻结”状态来判断闲置,预留实例在无请求执行时仅需要支付内存成本。但由于 MCP Server 的协议会话保持、异步提交及流式返回的特点,在会话持续期间,始终需要保持计算资源的活跃,故无法通过明确的“冻结”状态来减免资源闲置成本,所以函数计算面向 MCP Server 场景,引入了额外的判断闲置的方法,如下所示:

函数计算将 MCP Server 长连接时间划分成多个闲置判断周期,如果某周期实际消耗的 CPU Time 低于某个阈值,则该周期算作闲置,这个阈值的设定,确保了只有发生 Initialize/List Tools/Call Tools 等实际调用时,函数实例才会判断为活跃。
以上述稀疏调用场景为例:

4次实际的动作,只有8秒算做活跃周期,剩余3592秒都处于闲置周期,闲置的周期,在计量上会减免 CPU 费用,只计算内存费用;内存费用参考函数计算计费概述,以2核3GB的配置为例,内存费用仅占18%,整体费用节省:
(1- (8 + 3592 × 18%)/3600),约为82%,如果以2核2GB最低内存比例配置为例,整体费用可降低87%。为了简化对 MCP Server 场景闲置计费的理解,费用节省直接折算成减少 CU 计算时间,无条件的降低,在计量上表现为 CU 计算时间和活跃 vCPU 时间的降低。
如何开启 MCP Server 的闲置计费能力?
MCP Server 闲置计费能力主要目标是解决会话亲和性保持造成闲置的问题,当开启会话亲和性后便默认开启闲置计费能力,开启方法参考 MCP亲和性调度。
通过函数计算控制台 MCP 运行时开发 MCP 服务或通过 Function AI 创建 MCP 服务时,创建的函数自带 MCP Server 的闲置计费能力:
- 函数计算控制台:

- Funciton AI 控制台:

其它场景需要在创建函数时通过参数指定开启:调用 API CreateFunction - 创建函数或 UpdateFunction - 更新函数,通过 SessionAffinity 字段指定调用请求的亲和策略为“MCP_SSE”,注意:由于 GPU 资源稀缺,对于配置了 GPU 的函数实例,不支持长连接的闲置计费。
另外,对于 Websocket 需要维持长请求的场景,也同步支持了闲置计费能力,无需参数设置默认开启,敬请体验,计费详情可到函数计算-资源用量明细查看。
MCP Server On FC 之旅第四站: 长连接闲置计费最高降低87%成本的技术内幕的更多相关文章
- SharePoint Server 2013开发之旅(四):配置工作流开发和测试环境
工作流这个功能,在SharePoint Server 2013中做了很大的改动.我们可以从微软官方的文档中了解一下大概的情况 http://technet.microsoft.com/zh-cn/li ...
- Sql Server之旅——第四站 你必须知道的非聚集索引扫描
非聚集索引,这个是大家都非常熟悉的一个东西,有时候我们由于业务原因,sql写的非常复杂,需要join很多张表,然后就泪流满面了...这时候就 有DBA或者资深的开发给你看这个猥琐的sql,通过执行计划 ...
- asp.net mvc 之旅—— 第四站 学会用Reflector调试我们的MVC框架代码
我们知道,现在能调试.net程序通常有两个,第一个是ILSpy,还是一个是Reflector,这两个小反编译软件算是我们研究底层代码中所拥有的一把 锋利小尖刀~~~,比如你看到的ILSpy这样的界面图 ...
- Javascript之旅——第四站:parseInt中要注意的坑
前些天信用卡站点要接入一个新功能,不过还真比较坑爹,asp站点,大家都知道信用卡的背面是有一个有效期的,在对接银行中这个信息 一定是要传给银行做数据校验,用户在语音输入信用卡有效期后,系统会做一个有效 ...
- Sql Server之旅——第五站 确实不得不说的DBCC命令
原文:Sql Server之旅--第五站 确实不得不说的DBCC命令 今天研发中心办年会,晚上就是各自部门聚餐了,我个人喜欢喝干红,在干红中你可以体味到那种酸甜苦辣...人生何尝不是这样呢???正好 ...
- webpack入坑之旅(四)扬帆起航
这是一系列文章,此系列所有的练习都存在了我的github仓库中vue-webpack,在本人有了新的理解与认识之后,会对文章有不定时的更正与更新.下面是目前完成的列表: webpack入坑之旅(一)不 ...
- Selenium WebDriver + Grid2 + RSpec之旅(四) ----通过RSpec编写测试用例
Selenium WebDriver + Grid2 + RSpec之旅(四) ----通过RSpec编写测试用例 自动化测试和手工测试一样,是要有测试用例,有检查点和测试结果的,接下来我们通过RSp ...
- VSTO之旅系列(四):创建Word解决方案
原文:VSTO之旅系列(四):创建Word解决方案 本专题概要 引言 Word对象模型 创建Word外接程序 小结 一.引言 在上一个专题中主要为大家介绍如何自定义我们的Excel 界面的,然而在这个 ...
- SQL Server 2008性能故障排查(四)——TempDB
原文:SQL Server 2008性能故障排查(四)--TempDB 接着上一章:I/O TempDB: TempDB是一个全局数据库,存储内部和用户对象还有零食表.对象.在SQLServer操作过 ...
- JAVA之旅(四)——面向对象思想,成员/局部变量,匿名对象,封装 , private,构造方法,构造代码块
JAVA之旅(四)--面向对象思想,成员/局部变量,匿名对象,封装 , private,构造方法,构造代码块 加油吧,节奏得快点了 1.概述 上篇幅也是讲了这点,这篇幅就着重的讲一下思想和案例 就拿买 ...
随机推荐
- Elasticsearch搜索引擎学习笔记(三)
索引的一些操作 集群健康 GET /_cluster/health 创建索引 PUT /index_test { "settings": { "index": ...
- Mermaid Live Editor 如何调整方向
在 Mermaid Live Editor 中,默认情况下,流程图和序列图等都是按照从左到右的方向来布局的.但是,如果你想要创建一个从上到下(纵向)布局的图形,你可以使用 TD(Top-Down,即从 ...
- rust学习笔记(8)
cargo cargo是一个用来帮助控制项目开发的工具 cargo.toml 这是一个用来管理项目的文件 首先是[package]部分 [package] name = "foo" ...
- xshell连接Win10下子系统Unbuntu
自带的ssh server不好用,需要先卸载再安装. 1. 卸载 ssh server sudo apt-get remove openssh-server 2. 安装 ssh server sudo ...
- 使用SVM在数字验证码识别中的应用研究课程报告
第1章 概要设计 1.1 设计目的 支持向量机作为一类强大的监督学习模型,以其出色的泛化能力,在手写数字识别.面部检测.图像分类等多个领域展现出了其优越性.其在处理小样本.非线性及高维模式识别任务中表 ...
- Joker 智能开发平台再放大招,新作将彻底重塑开发模式
-- 突破传统枷锁,引领开发模式全面革新 自前端可视化智能平台重磅发布后,其在行业内的影响力便如涟漪般迅速扩散.凭借着创新的设计理念和过硬的性能表现,这个平台为无数开发者和企业提供了高效且便捷的开发解 ...
- docker学习 容器的启动过程
这一节我们来稍微了解下docker原理性的东西1 docker run -i -t ubuntu /bin/bash输入上面这行命令,启动一个ubuntu容器时,到底发生了什么?大致过程可以用下 ...
- post数据到第三方,中文乱码
1.项目中发现 测试环境 推送正文,数据正常 2.生产到腾讯云之后,中文推送过去乱码,但是post 接口的 时候,指定了 编码格式. 3.后查看日志,发现日志中记录的中文就是乱码 4.排查cs代码文件 ...
- 汇编概念辨析(Intel/AT&T syntax、GAS、NASM)
写在前面 本文并不详细介绍Intel syntax.AT&T syntax.GAS.NASM的具体内容和具体区别,而是从概念辨析的角度说明这些专有名词的含义,以便为初学者扫清疑惑.有兴趣深入了 ...
- 【Linux】2.3 Linux目录结构
基本介绍 linux 的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录"/",然后在此目录下再创建其他的目录. 深刻理解 linux 树状文件目录是非常重要的,这里 ...