结论先给:如果共用额度按“先到先得”消耗,优先顺序不应按团队级别排,而应按“查询结果是否会改变下一步动作”排。会直接触发隔离、下线、阻断或放行的查询排最前;只用于归档、趋势观察或补充说明的查询排最后。一旦额度消耗速度超过补充速度,这套顺序仍会失效,此时必须改成按时间片轮转,而不是继续让高优先级查询无限插队。
共用额度最怕的不是不够用,而是把额度花在“查了也不会做什么”的任务上。给每个待查对象标注一个动作依赖等级,比按提交团队排序更稳定。
前两类进入快车道,后两类进入慢车道。这样安排的实际效果是:额度紧张时,快车道仍能保持响应,慢车道排队变长但不会造成处置停摆。下一步动作是给每个查询标注依赖等级,再决定它进入哪个队列。
同一条快车道里,先提交的不一定最急。更合理的排序依据是“最晚需要时间”:这个查询结果最迟在什么时候必须拿到,否则后续动作会被迫延期或取消。
假设三个团队同时提交查询:A 团队需要在十分钟内决定是否隔离主机,B 团队需要在两小时内完成一份日报,C 团队下周才做复盘。按提交时间排,可能先处理 B 或 C;按最晚需要时间排,A 排最前。这个例子的数字只用于说明比较方法,不代表任何工具的实际处理速度。
执行时可以用一个简单规则:最晚需要时间越早,优先级越高;时间相同,则动作依赖等级越高者优先;两者都相同,才按提交时间。这样排序后,下一步是检查排队中的查询是否有人工标注错误,因为一个标错的最晚时间会把整条队列带偏。
按优先级排序有一个反例:当额度消耗速度持续高于补充速度,高优先级查询会不断插队,低优先级团队可能长期拿不到任何结果。此时继续坚持“动作依赖优先”会让部分团队完全停摆,反而制造新的处置风险。
判断是否进入这个状态的依据不是某个固定百分比,而是观察队列尾部是否长期没有推进。如果连续多个周期里,慢车道查询一件都没有完成,就说明排序机制已经失效。这时应改成时间片轮转:每个团队在每个周期内获得固定份额,份额内自行决定查什么。高优先级查询仍可保留少量预留额度,但不能无限占用。
改成轮转后,下一步动作是重新评估各团队的最低可用份额。如果最低份额仍不足以完成必须的阻断类查询,说明问题不在排序,而在总额度或查询对象数量本身,需要缩减查询范围或增加额度来源。
多个团队共用额度时,重复查询是隐性消耗。同一文件哈希、同一域名、同一样本被不同团队分别提交,会占用多次额度,却只产生一份有效信息。
可以要求提交前先查共享结果表:如果同一对象在有效期内已有结果,直接引用,不再重复查询。有效期的长短取决于对象是否会变化——文件哈希通常不变,域名和 IP 的判定可能随时间变化,需要按实际情况设定。合并重复查询的实际效果是释放出额度给真正需要新结果的查询。下一步是确认共享结果表由谁维护,以及结果过期后由哪个团队负责重新查询,避免出现“都以为别人会查”的空档。
如果查询结果本身不可靠、误报率很高,那么无论怎么排优先级都没有意义——快车道查出来的结果仍要人工复核,动作依赖等级也随之失真。此时应先解决结果可信度问题,再谈排序。
另一种需要推翻的情况是:额度并非按查询次数消耗,而是按数据量或并发数消耗。那么排序单位就不是“查询条数”,而是每次查询的数据量或占用的并发槽位。具体计费或限流方式需要核对所使用工具的实际说明,不同工具差异很大,不能套用同一种排序假设。确认计费单位后,下一步是把排序规则从“条数优先”改成“占用资源优先”,否则快车道里一条大查询可能挤掉慢车道里几十条小查询。