详情页标题前

腾讯云云函数(SCF)Web 函数请求并发管理-云淘科技

详情页1

请求并发概述

请求单并发

默认情况下,在调用函数时,云函数会分配一个并发实例处理请求或事件。函数代码运行完毕返回后,该实例会处理其他请求。如果在请求到来时,所有实例都在运行中,云函数则会分配一个新的并发实例。一个并发实例同一时刻仅处理一个事件的运行逻辑,保障每个事件的处理效率和稳定性。

请求多并发

在大多数情况下,请求单并发都是值得推荐使用的模式,无需在写代码时考虑多个请求同时处理带来的典型并发难题,例如线程安全、阻塞调用、异常处理等。而在 Web 应用中,典型的业务场景是 IO 密集型——函数内访问数据库或其他系统的接口等下游服务,会有较多时间在等待这些下游服务响应。这种等待一般都是在做 iowait,不消耗 CPU,此时,如果开启了请求多并发,让一个实例可以同时处理多个请求,则可以更充分利用单个实例的 CPU 资源。Web 函数目前已经支持 开启请求多并发 配置,您可以根据业务需要进行启用和配置。请求多并发支持自定义静态并发智能动态并发两种模式。自定义静态并发n启用后,当同时有多个请求,将不超过指定并发值的请求调度到同一函数实例内执行。并发增多,将增加函数实例的CPU、内存等消耗,建议配合压力测试进行合理设置,避免函数执行异常。目前支持的并发范围为 2~100 并发。智能动态并发n启用后,在函数实例负载允许的情况下,智能动态调度更多请求到同一函数实例内运行。将于后续推出,敬请期待。

请求并发优势

在 IO 密集型场景中,如 Websocket 长连接业务,可减少计费执行时长,节省费用。多个请求并发在同一个实例中可复用数据库连接池,减缓下游服务压力。请求并发密集时,多个请求只需要一个实例进行处理,无需拉起多个实例,从而降低实例冷启动几率,降低响应延迟。

操作步骤

开启请求多并发

1. 登录云函数控制台,选择左侧导航栏中的 函数服务。2. 在“函数服务”列表页面,选择需进行配置的 Web 函数名。3. 在“函数管理”页面中,选择函数配置。4. 在“函数配置”页面中,单击“编辑”,进入编辑模式。5. 在“请求多并发”中,勾选“启用”,开启请求多并发模式,在弹出的“自定义静态并发”下方的输入框中输入需要的并发值。如下图所示: n

腾讯云云函数(SCF)Web 函数请求并发管理-云淘科技

6. 单击“保存”完成配置。

注意事项

计费

未开启请求多并发时,单个函数实例一次只会处理一个请求,第一个请求处理完成才会开始处理下一个请求,内存时间的计费时长是每个请求的执行时长的加和,如下图所示: n

腾讯云云函数(SCF)Web 函数请求并发管理-云淘科技

开启请求多并发之后,单个函数实例一次会处理多个并发请求,第一个请求未结束时,如果第二个请求进来,则会有一段时间两个请求同时在处理,此时,交叠的这段时间只会计算一次。如下图所示: n

腾讯云云函数(SCF)Web 函数请求并发管理-云淘科技

其他计费项保持不变,详情见 计费概述。

日志

开启请求多并发后,由于多个并发请求同时处理,每个请求产生的日志在流式上报时,可能会出现日志和 RequestID 无法一一对应。此时,应该在代码中正确设置 logger,将 RequestID 打印到日志中,以解决该问题。RequestID 从 Web 函数中接收到的公共请求头里的 X-Scf-Request-Id 字段(部分框架为 x-scf-request-id)获取。

NodeJS 示例代码

let WebSocketServer = require('ws').Server;let wss = new WebSocketServer({ port: 9000 });
wss.on('connection', function connection(ws) {
let requestID = ws.upgradeReq.headers['x-scf-request-id']; console.log('requestID: %s', requestID);
ws.on('message', function incoming(message) { console.log('requestID: %s', requestID); console.log('received: %s', message); });
});

超限错误

内存超限

请求多并发会增加内存超限的概率,在内存超限 OOM 发生时,实例会进行重启,此时,实例内正在处理的多个请求会同时出现 abort 中断错误,错误码为 434 MemoryLimitReached。请在设置并发值之前,先对函数进行压测以确定安全的并发值,以避免内存超限带来的影响。

超时

请求耗时过长,在配置的执行超时时间范围内没有执行完成时,会终止该请求,向客户端返回错误码 433 TimeLimitReached。实例内的其他正在进行中的请求不受影响。

监控

开启请求多并发后,在监控页面会出现“并发请求个数”面板,可直观看到指定时间段内的请求并发情况。n

腾讯云云函数(SCF)Web 函数请求并发管理-云淘科技



监控常见问题

对一段时间没有调用的函数发起并发请求,会出现虽然并发请求数量未超过设定的并发值,但监控“并发实例个数和预置并发”面板中显示的并发实例个数大于 1 的情况。这是因为一段时间没有调用,函数实例回收资源,此时发起请求,会出现冷启动,为保障及时响应处理进来的请求,此时会并发拉起函数实例,直到第一个实例可以正常接受请求为止。如果是普通的 HTTP 请求,过一段时间之后,新请求会集中在若干个函数实例上进行处理,其余的函数实例会在请求处理结束后逐步下线,监控中的并发实例数恢复正常。如果是 WebSocket 连接,则在连接未断开之前,并发实例数都会维持在一开始拉起的数量。通过配置动态预置避免冷启动,可以减少这类问题发生的概率。
官网1折活动,限时活动,即将结束,速速收藏
同尘科技腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:https://www.yunxiaoer.com/149353.html

(0)
上一篇 2023年12月9日
下一篇 2023年12月9日
详情页2

相关推荐

  • 腾讯云对象存储日志管理

    简介 本文档提供关于日志管理的 API 概览以及 SDK 示例代码。 API 操作名 操作描述 PUT Bucket logging 设置日志管理 为源存储桶开启日志记录 GET Bucket logging 查询日志管理 查询源存储桶的日志配置信息 设置日志管理 功能说明 PUT Bucket Logging 用于为源存储桶开启日志记录,将源存储桶的访问日…

    腾讯云 2023年12月9日
  • 腾讯云对象存储快速入门

    本文档主要提供 GooseFS 快速部署、调试的相关指引,提供在本地机器上部署 GooseFS,并将对象存储(Cloud Object Storage,COS)作为远端存储的步骤指引,具体步骤如下: 前提条件 在使用 GooseFS 之前,您还需要准备以下工作:1. 在 COS 服务上创建一个存储桶以作为远端存储,操作指引请参见 控制台快速入门。2. 安装 …

    2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 腾讯云云直播实时监播

    云直播增值功能费用包含:实时监播、虚拟背景、实时字幕、智能弹幕和拉流转推本地模式。当您已启用实时监播业务中的异常监控(包括格式及内容异常检测)和智能识别(包括文字及语音识别)功能时,这些服务将由媒体处理(MPS)提供。使用这些功能将产生相应的MPS费用。异常监控(包括格式及内容异常检测)和智能识别(包括文字及语音识别)功能目前处于免费公测阶段,自2023年1…

    腾讯云 2023年12月9日
  • 在Flink我们现在数据库中有新增索引,但是同步任务没有报错,所以可以知道索引这边的变动的影响吗?-云小二-阿里云

    在Flink我们现在数据库中有新增索引,但是同步任务没有报错,所以可以知道索引这边的变动的影响吗? 以下为热心网友提供的参考意见 在Flink中,如果数据库中有新增索引,同步任务没有报错,这并不意味着索引的变动没有影响。以下是可能的影响: 性能影响:新增索引可能会影响查询性能。索引可以加快查询速度,但如果索引设计不当或数据分布不均,可能会降低写入性能或增加存…

    阿里云 2023年12月20日
  • 阿里云容器服务ACK视频专区-云淘科技

    本文提供容器服务ACK不同集群类型的视频索引。您可以按照跳转,学习视频并了解、使用产品。 视频专区索引 集群类型 入门文档 托管版与专有版容器集群ACK 快速入门 5分钟玩转ACK 五步上手Kubernetes 七步玩转容器化存储 云原生AI套件 视频专区 内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家阿里云企业补贴进行中: 马上申请腾讯云限时…

    阿里云容器服务 2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。