第297章 年的预算通胀之后,年的假调度先失势
门外的副主任助理终于把那层勉强维持出来的平稳撕开了一点。
“你们如果执意前置问名,后面公共输入的预算会被打爆。”他隔着门板,声音压得低,却能听出里面的硬,“年构建不是你们一个部门的事,调度一旦失衡,预算通胀会先发生。到时候所有待入池、待复核、待修复的资源都会被重新分配,你们守不住。”
“预算通胀?”林序冷笑了一声,“你们倒是把偷挪资源说得像财政危机。”
周砚没有立刻接话。
他盯着屏幕里那条已经被反复标红的输入链路,手指在桌面上轻轻敲了两下。那种敲击没有节奏,像是在确认某个已经猜到的事实。技术人员刚刚拉出来的“限速疲劳”还悬在屏幕右侧,和另一层更深的字段并排挂着,像两只并不相称的钩子,一前一后勾住了同一片年构建。
“把预算明细展开。”周砚忽然说。
技术人员怔了一下,立刻切换到资源分配页。原本只有构建、观测、复核三类的预算字段,此刻多出了一列灰色的小字,叫“假调度占用”。那几个字藏得很深,若不是周砚刚刚把限速疲劳的根翻出来,几乎没人会注意到它。
“假调度?”纪检负责人抬眼。
技术人员指着屏幕,喉咙有点发紧:“是一个临时代理层。它不直接处理输入,也不直接处理问名,只负责在问名层和构建层之间做‘资源协调’。看上去像缓冲,实际上是占预算、挂任务、延迟真实调度的中间壳。”
林序皱眉:“中间壳?谁放进去的?”
“不是谁放进去的。”周砚说,“是年构建包里原本就留的接口。以前可能只是为了高峰期分流,现在被拿来做假调度。”
他把屏幕往左边拖了一寸,资源曲线立刻显现出来。原本平稳的曲线被切成了许多细碎的台阶,一层层向上抬。每一次问名拦截,系统就自动生成一次“备用调度”,每一次备用调度生成,预算池里就多吞一截资源。表面上看,系统是在保护输入吞吐,实际上它是在把真实调度的预算,悄悄转移到一层看起来最无害的假壳里。
“这就是预算通胀。”周砚声音冷下来,“不是钱变多了,是假单越来越多,预算单位越来越虚。真正该花在问名修复、留白确认、输入核验上的资源,被假调度吃掉,最后看起来每条链路都在跑,实际上每条链路都在涨价。”
门外那名副主任助理沉默了半拍,似乎没想到他们会这么快从“限速疲劳”摸到“预算通胀”。
“你们不要混淆概念。”他终于开口,“调度是为了压住整体波动,预算分层是正常机制。没有这层缓冲,公共输入一拥而上,所有人都要停。”
“停?”周砚抬头,眼神直接钉在门缝那一线模糊的人影上,“你们不是怕停,你们是怕真实调度一旦显影,假调度就没地方躲了。”
这句话出口,门外彻底静了一下。
周砚很清楚,对方现在最想做的不是争辩,而是继续把这个词往“正常管理动作”上拉。预算通胀一旦被解释成资源保护,假调度就能继续吃预算;假调度一旦能吃预算,限速疲劳就能继续被拿来当借口;限速疲劳一旦还在,公共输入的问名层就会一直被磨,直到所有人都习惯了它慢、习惯了它贵、习惯了它在每次需要时都“暂时不可用”。
那就不是调度了,是驯化。
“把假调度层的任务单独列出来。”周砚说。
技术人员已经在飞快翻页,屏幕上不断弹出被折叠的任务节点。越翻,越能看出那层壳有多厚。它下面套着“峰值缓冲”“异常削峰”“公共输入分流”“问名窗口错峰”“构建包预热”五个子标签,每一个标签都写得极其漂亮,像一整套合理化叙事,专门用来让人忽略它最底下那一行编号。
那行编号很短,短到几乎像个笑话。
【aux-disp-07】
“辅助分配七号位。”林序念出来,声音发哑,“听着像后勤。”
“就是拿后勤的壳,干前台的活。”周砚说,“它不直接碰核心,但它负责把核心资源先占住。问名层一拦,它就上报负荷;负荷一上报,它就吃掉更多预算;预算一吃掉,真实调度就更慢;真实调度一慢,大家就更依赖它。最后所有人都以为自己是在等系统,其实是在等假调度给自己放行。”
纪检负责人把那份补充函从桌上抽起来,翻到背面。纸背有一层淡得几乎看不见的水印,若不是灯光足够冷、角度足够偏,根本发现不了。水印不是印章,而是一串资源签名。
“它连落纸都带预算字段。”他低声说。
砚答得很快,“这就是假调度最狠的地方。它不光在系统里吃预算,它还把预算痕迹带到纸面上。这样一来,等你们要追查是谁先动了资源,表面上看是公共输入慢了、问名疲劳了、样本堆积了,所有后果都像自然发生。可只要看预算流向,就会发现真正先失势的不是输入,而是调度本身。”
林序盯着屏幕,忽然开口:“假调度先失势,是什么意思?”
周砚没马上回答。
他把那条aux-disp-07的资源曲线单独拎出来,再把真实调度曲线叠上去。两条线原本在前面几分钟几乎同步,越往后,假调度那条就越像被灌了水,越来越粗,越来越虚。它占着位置,却不再准确;它吞着预算,却不再稳定;它看似把局面兜住,实际上正把自己撑到失真。
“意思是它再也装不住自己是‘正常缓冲砚说,“预算通胀之后,假调度先失势。因为它要维持表面稳定,就必须持续抬高资源占用;资源占用一高,异常就会被放大,真实调度的滞后也会被放大。到了这个时候,原本拿来掩护的那层壳,先开始暴露自己的不对劲。”
他指着屏幕里一段突然变红的预算预警。
【假调度占用率超阈值】
【真实调度等待时长上升】
【问名层响应延迟增加】
【建议切换至高优先级人工协调】
“看见没有。”周砚说,“它已经开始建议人工协调了。假调度最怕的就是这一步。只要进入人工协调,所有占预算的理由就必须写出来,谁批的、为什么批、给谁用、用来干什么,全都得落字。它之前靠自动化躲开的账,一旦回到人工,就没法再假装自己只是个缓冲。”
技术人员的手心明显出了汗:“那我们现在是不是可以直接停掉它?”
“不能硬停。”周砚说,“它现在还挂着一部分公共输入。如果直接断,外面就会立刻把锅甩给我们,说是我们前置问名导致系统停摆。”
“那怎么办?”林序问。
周砚盯着曲线,眼神一点点沉到底。
“让它自己失势。”
屋里几个人同时看向他。
周砚把资源页切到“预算占用来源”那一栏,红色的占用条下方,几条灰色子链路依次展开。每一条子链路都不复杂,甚至可以说很朴素:峰值缓冲、错峰投递、观测排队、留白挂起、临时预占。可这些看似朴素的节点,一旦被串在一起,就会形成一个完整的假调度回路。回路的共同特征是,所有动作都能解释,所有动作都能留痕,唯独真正的调度决策被埋在最下面,像藏进壳里的针。
“把这几条都打上预算核验标记。”周砚说,“不是拦,不是删,是让它们全都进入预算复核队列。”