Jev 10 RPM配置、15 RPM配额和14 RPM离线估算

配置在哪里

用户确认服务配额15 RPM;本次没有调用Provider或外部接口再次探测额度。正式准入providers-before.json记录Gateway Jev为rate_rpm=10、max_inflight=2、timeout=60;submission.json五条Jev配置的provider_snapshot均rate_rpm=10。Native properties无RPM项,Native HTTP先到本地Gateway,因此限速不在Native。

当前平台lab_platform/provider.py:150–193的_acquire按provider='jev'查询全局last_sent,pending未发送租约互斥,并检查last_sent+60/rate_rpm及全局活动租约数;request:222–242轮询准入,每次sleep0.05秒。不是滑动窗口计数器,是全provider固定最短发送间隔。当前实现副本与hash:provider-current.py、identity。平台没有可用的历史Git提交/逐字节部署快照,不把当前文件自动当作冻结历史部署代码;运行事实由冻结配置与Gateway发送时间支持。

为什么数值选择10而非15:能证实配置被显式设为10,不能从已找到证据确定原始选择者的配额判断/保守理由。不能把10写成Provider强制上限,亦不能仅依据“可能保守”给出确定原因。

并发和共享额度

正式本轮jev_serial_scheduler.py:1–8, 50–86一次只提交一个Jev正式Run,待terminal再提交下一个。这是本批次外部串行提交策略;Gateway租约配置仍为2,不是“Native全局只能一个Jev请求”的硬编码。设备锁/同App设备绑定与Provider限流是另一层约束。

以只读SQLite、限定字段扫描本轮Jev起止时间及前60秒,共691条Gateway调用:686正式HTTP、5条同Run未匹配正式Native fingerprint的准入调用;没有其他Run占用这个窗口的Gateway额度。最大同时上游处理1,最短全局send间隔6.023767秒,中位数6.068512秒,任意半开60秒窗口最多10次。global-jev-calls.json、rate-checks.json。不读取凭据;平台外直接用同key发送的请求及更早未结束租约不能由本快照完全排除,标UNKNOWN。

Scarlet正式send-gap P50=6.063120秒、最短6.028002;Activity P50=6.067621、最短6.023767。请求间隔受Native工作间隙影响,不能每个gap都算成主动sleep6秒。实际上游处理在此窗口最高并发1,现有大量排队与rate pacing一致,不能逐毫秒把全部Gateway残差归成限速sleep。

14 RPM可行条件

14 RPM给出60/14=4.285714秒的最小发送间隔。如果15 RPM为同key按请求数配额,且所有共享发送都经过同一个基于实际send时刻的限速器,连续半开60秒最多14次(包含端点的保守窗口至多15),留有余量。当前数据库共享多实例准入设计能避免未发送租约之间的准入空隙;是否与远端计费窗口、token额度和其它key流量完全一致仍未知,不能保证永无429。提高并发、绕过Gateway或未统一计数的重试都可能消耗余量。这里只审计,未修改生产配置。

两种离线敏感性计算

A. 逐请求固定前序实际发送时刻。 按全局691条实际send排序,保留每条的归档arrival、前一条实际send和未解释的dispatch残差;减少量=max(arrival, prev_send+6)−max(arrival, prev_send+60/14)。它隔离单次间隔参数的作用,不把残差自动算成限速;每条减少量≤1.714286秒。Scarlet443.938秒,Activity236.834秒。不能把各条假设同时发生解释为可实现完整运行轨迹。

B. 全局固定到达时间的理想队列重放。 691条共同FCFS,固定上游服务时长,最多2 active,分别间隔6和4.285714秒,后续send使用模拟前序send。没有调用Provider,不模拟APE因回复早而改变下一次到达。由于轮询/identity/DB等未分解,10 RPM基准也不能完全复现原队列,故仅报告“模型内10→14差”,不把观测−理想14全额算成收益。

App 正式HTTP 实测队列秒 逐请求固定前序send估算减少秒 理想队列10→14减少秒 理想10队列秒 理想14队列秒
activitydiary 243 410.307 236.834 320.323 357.427 37.104
wikipedia 25 3.115 1.714 1.714 2.263 0.549
scarletnotes 318 900.873 443.938 727.030 785.260 58.230
omninotes 80 55.344 39.288 41.642 50.464 8.822
odkcollect 20 47.512 22.333 37.246 44.098 6.852

理想10 RPM全局与观测queue残差P50=0.151秒、P95=0.810秒、max1.555秒;Scarlet实测queue900.873而理想10只有785.260,差115.613秒。这是有实质偏差的情景模型,727.030秒是其内部10→14差,不是已证实能省727秒;A与B也不是实际效果上下界。Activity内部差320.323秒同理。

完整每调用重放和5条准入调用保留在rate-limit-simulation.csv。所有估算都不换算成动作数、方法数或覆盖率收益;软timeout缩短还会改变到达/取消/再提交,应另行验证,不能与排队估算简单相加。