尘土与星辰 -1992|第309章|阵列与梯度|中文
电子城的地下二层没有窗户。空气里混杂着防静电袋的塑料味、旧机箱的金属锈味和劣质焊锡的松香味。林尘跟着苏曼穿过狭窄的过道,两侧货架上堆满拆机件,标签上手写着通电时间和写入量,字迹被灰尘糊得模糊。 “这块。”苏曼停在一个柜台前,指着一块Intel S3700。外壳
第309章 阵列与梯度
电子城的地下二层没有窗户。空气里混杂着防静电袋的塑料味、旧机箱的金属锈味和劣质焊锡的松香味。林尘跟着苏曼穿过狭窄的过道,两侧货架上堆满拆机件,标签上手写着通电时间和写入量,字迹被灰尘糊得模糊。
“这块。”苏曼停在一个柜台前,指着一块Intel S3700。外壳有划痕,但SATA接口金手指干净,没有氧化发黑的痕迹。
林尘蹲下。左腿的麻木感在屈膝时被筋膜拉扯,他咬了下后槽牙,把笔记本接上转接线。终端弹出,他输入smartctl -a。读取数据。通电一万四千小时,健康度百分之九十二,坏块映射表正常,重分配扇区计数为零。他抬头看柜台后的老板:“两块。要同批次。阵列条带对齐,差一批次延迟会抖。”
老板是个秃顶的中年人,叼着烟报价。苏曼砍价。林尘没插话,手指在裤兜里捏着那本错题本。硬壳边缘硌着指腹。他脑子里在算:RAID 0没有冗余,两块盘同时掉盘的概率极低,但单块过热降频会直接拖垮IOPS。必须加散热片,风扇直吹。预算卡在红线内,不能超。
最终三百八拿下两块。加上转接卡和四根SATA线,刚好。
回到临时机房时,下午两点。窗外的阳光被百叶窗切成条纹,落在积灰的水泥地上。林尘把设备箱放在折叠桌上,拆封。螺丝刀拧开机箱挡板,固定硬盘架。动作很慢。左脚不能承重,他只能把重心压在右腿和桌沿上。每拧一颗螺丝,膝盖的旧伤就传来一阵钝痛。他停下来,深呼吸,继续。
“环境我配好了。”苏曼把显示器接上,“Ubuntu 20.04,内核参数调过。net.ipv4.tcp_tw_reuse开了,文件描述符拉到六万五。Swap关了,避免压测时触发磁盘交换。”
“先做基准。”林尘插上硬盘,接电源。开机。风扇狂转。他进系统,用mdadm组建RAID 0。条带大小设为一百二十八K。对齐检查通过。格式化ext4,挂载。跑fio。顺序读写跑到两千兆,随机四K读写稳定在八万IOPS。延迟中位数零点四毫秒。
“够用了。”苏曼看着屏幕,“压测脚本呢?”
“在改。”林尘打开终端,调出Locust的配置文件。他把并发梯度拆成五段:一千、五千、一万、两万、五万。每段维持十分钟。请求体模拟真实业务负载,带JWT鉴权和动态参数。他加了一个钩子函数:如果响应时间超过两百毫秒,自动标记为降级,不中断测试,但记录分布。
“资本要确定性。”他低声重复昨晚写下的话,“我们给轨迹。”
下午四点。脚本部署完毕。监控面板亮起,Grafana的曲线图初始值为零。林尘把止痛药干咽下去,喝了一口冷水。药片滑过食道,留下微苦的余味。他坐在折叠椅上,左脚平放在一个垫高的纸箱上,避免压迫。
“开始。”他说。
苏曼敲下回车。
终端开始滚动日志。并发数从一千起步。CPU占用率百分之十五。内存平稳。网络吞吐两百兆。延迟曲线贴着底部走。
五千。CPU跳到百分之四十。风扇声音变重。延迟中位数零点六毫秒。正常。
一万。CPU百分之六十八。SSD温度四十二度。IOPS开始爬坡。林尘盯着屏幕上的热力图。请求分布均匀,没有雪崩。
两万。CPU百分之八十九。风扇全速运转。机房温度明显上升。林尘的左脚开始痉挛。肌肉不受控制地抽搐。他把手按在膝盖上,用力下压,直到痛感盖过痉挛。屏幕上的延迟曲线出现第一个小峰值,一百二十毫秒,随后回落。
“连接池满了。”苏曼快速敲键盘,“我在调max_connections。”
“别动。”林尘盯着监控,“是TCP握手队列溢出。改net.core.somaxconn,重启网络栈。现在改会断连,等这波过去。”
他等。曲线在峰值处悬停了三秒,然后回落。系统自适应了。
三万。CPU打满。SSD温度五十一度。延迟中位数跳到一百八十毫秒。IOPS卡在六万五,上不去。
“瓶颈在磁盘队列深度。”林尘说,“RAID 0的调度器是mq-deadline,换none。直通底层。”
苏曼执行。终端闪烁。曲线短暂下坠,随后反弹。IOPS突破七万。延迟稳定在两百毫秒以内。
四万。机房像蒸笼。林尘的衬衫后背湿透。左脚的麻木感已经蔓延到小腿肚。他感觉不到脚趾的存在,只有骨头缝里的酸胀。他闭上眼,听风扇的噪音。那是机器在呼吸。也是钱在烧。
四万五。延迟曲线开始抖动。不是平滑上升,而是锯齿状。峰值突破三百毫秒。
“热节流。”林尘睁开眼,“SSD主控降频了。拿风扇,直吹硬盘架。”
苏曼搬来工业风扇,对准机箱内部。冷风灌入。温度曲线缓慢回落。延迟锯齿被压平。
五万。死线目标。
并发数拉满。终端日志疯狂滚动。CPU占用率百分之百。内存占用百分之九十二。SSD温度五十八度,逼近安全线。延迟中位数两百一十毫秒。IOPS稳定在七万八。
林尘盯着监控面板。曲线没有崩溃。没有断崖。它在高位震荡,但轨迹清晰。
“记录。”他说,“采样率降到零点五秒。保留原始日志。”
苏曼点头。手指在键盘上飞快操作。
十分钟。测试结束。并发数归零。风扇声逐渐平息。机房里只剩下硬盘停转的轻响。
林尘靠在椅背上,长长吐出一口气。左脚彻底失去知觉。他试着动了动脚趾,没有反应。他低头,把裤腿卷起。小腿肌肉僵硬得像石头。
“数据导出了。”苏曼把U盘递过来,“压测报告模板我填好了。延迟分布、IOPS曲线、错误率、资源占用。全在。”
林尘接过U盘。金属外壳冰凉。他插进笔记本,打开文件。表格整齐,图表清晰。每一项指标都在阈值内。七十二小时的死线,他们用了不到八小时跑完了核心链路。
但他没有立刻保存。他翻到日志的最后一行。
WARNING: NVMe controller temperature threshold exceeded. Performance throttling active.
不是SSD。是主板上的NVMe缓存盘。刚才的测试里,为了加速日志写入,他临时把系统日志重定向到了那块旧缓存盘。它扛住了五万并发,但温度曲线在最后两分钟出现了异常跃升。如果正式演示时,委员会的网络环境更复杂,日志量翻倍,这块盘会直接掉线。
掉线意味着压测中断。中断意味着对赌失败。
林尘盯着那行警告。手指在桌面上轻轻敲了两下。
“苏曼。”他声音很平,“把日志输出切到内存盘。tmpfs。挂载两G。演示时不写磁盘,只写内存。结束后异步刷盘。”
“内存盘断电会丢数据。”
“演示不丢。”林尘说,“资本看的是实时轨迹,不是持久化。我们给确定性,不是给保险箱。”
苏曼沉默了两秒,点头。“明白。我现在改。”
林尘合上笔记本。窗外的天色已经暗下来。城市亮起灯火。他扶着桌沿站起来,左脚落地时像踩在棉花上。他必须去医院打封闭,或者至少换一副护具。但明天早上九点,委员会要初审压测环境。他们只有不到二十小时。
手机震动。
赵启明的助理发来一条消息:委员会临时调整流程。明日初审增加现场网络拓扑核验。请准备物理链路图与防火墙策略白名单。
林尘看着屏幕。现场核验。白名单。
他低头,翻开错题本。在新的一页写下:内存盘异步刷盘。物理链路图。白名单穿透。封闭网络降级预案。
笔尖停顿。他补了一行:确定性不在机器里。在冗余里。
他收起本子,拿起外套。左脚拖在地上,发出轻微的摩擦声。下一步,是画拓扑图。
More from WayDigital
Continue through other published articles from the same publisher.
Comments
0 public responses
All visitors can read comments. Sign in to join the discussion.
Log in to comment