当前位置:首页>Linux>一行破局:只掌握这 15 个 Linux 核心命令,90% 的生产故障都能一行解决

一行破局:只掌握这 15 个 Linux 核心命令,90% 的生产故障都能一行解决

  • 2026-08-19 04:14:16
一行破局:只掌握这 15 个 Linux 核心命令,90% 的生产故障都能一行解决

一行破局:只掌握这 15 个 Linux 核心命令,90% 的生产故障都能一行解决

真正让工程师拉开差距的,不是会不会背命令,而是告警响起之后,能不能在 3 分钟内把“症状”收敛成“证据”,再把“证据”收敛成“根因”。

线上故障最怕两件事:第一,大家都觉得自己知道问题在哪;第二,没有人先把现场钉住。Linux 命令行的价值,就在于它能帮你用最短路径拿到第一手证据。监控告诉你“系统出事了”,而 /proc、socket、线程栈、文件描述符和系统调用,才真正告诉你“到底为什么出事”。

很多文章喜欢把 Linux 命令写成速查表,但生产环境并不缺速查表,缺的是一条稳定的排障路径。你需要知道:

  • • CPU 高时,先看进程、线程还是系统态占比。
  • • 内存涨时,先判断 Java 堆、堆外内存还是页缓存。
  • • 磁盘打满时,先锁定慢设备、慢进程还是慢文件。
  • • 网络超时时,先看连接状态、重传,还是应用没有及时 close
  • • 容器里没有工具时,如何穿透 namespace 把宿主机的工具链借进来。

这篇文章不准备做“命令大全”,而是围绕生产故障里最常见的 15 个核心命令,给你一套可以直接上手的排障框架。它们分别是:

toppspidstatjstackpmapcat /proc/*/smapsvmstatiotoplsofsstcpdumpstracejournalctlnsentersar

其中有些不是独立二进制意义上的“单个命令”,比如 smaps 依赖 /proc 文件系统,但它们在生产一线的价值完全够得上“核心命令”这四个字。


一、为什么“一行命令”才是生产故障的分水岭?

线上故障的本质不是“信息不够多”,而是“现场太嘈杂”。Prometheus、Grafana、APM、链路追踪、日志平台会同时抛出大量症状:

  • • P99 飙高
  • • Pod 重启
  • • CPU 打满
  • • 数据库慢查询增加
  • • 网络重传升高
  • • 下游超时

这些都是真的,但它们未必是根因。真正有经验的工程师不会一上来就改配置、扩容或者重启,而是先回答三个问题:

  1. 1. 问题发生在系统的哪一层。
  2. 2. 当前最稀缺的资源是什么。
  3. 3. 哪条证据链最短,能最快把根因锁定。

一行命令的价值,正是把排障从“感觉判断”变成“证据驱动”。

更具体一点,生产排障几乎都可以落到下面这条路径上:

告警症状 -> 锁定资源维度 -> 锁定进程/线程/连接/文件 -> 读取内核暴露证据 -> 关联应用代码或配置 -> 修复 -> 验证 -> 防复发

所以命令不是炫技,而是工程化排障的最短闭环。


二、先记住这条总路线:不要一上来就“猜”

如果你只记一条规则,我建议你记这一条:

先用廉价命令缩小范围,再用重型命令拿最终证据。

所谓廉价命令,就是开销低、信息广、适合快速扫描的命令,比如:

  • • top
  • • ps
  • • pidstat
  • • vmstat
  • • ss
  • • journalctl
  • • sar

所谓重型命令,就是 attach、抓包、深入进程内部,可能影响性能或需要更高权限的命令,比如:

  • • jstack
  • • strace
  • • tcpdump
  • • pmap
  • • smaps

这背后有两个工程原则。

第一,不要在根因未明时扩大故障面。比如一个高 QPS Java 进程已经抖动严重,此时贸然长时间 strace -f,有可能进一步放大延迟。

第二,排障不是收集越多信息越好,而是越早得到“能做决策的证据”越好。很多故障只要一条线程栈、一组 socket 状态分布、一次 IO 文件列表,就足以结束争论。


三、CPU 飙升:从 Pod 扩容无效,到锁定哪一段代码在空转

3.1 场景:容器内 Java 服务 CPU 100%,HPA 一直扩容,但延迟并没有下降

这类问题最典型的误判是:看到 CPU 高,就先扩容。

但如果根因是代码热点、自旋锁竞争、GC 抖动、线程池错误配置,扩容通常只会把问题复制到更多副本上。正确动作是先判断:

  • • 是单进程 CPU 高,还是整机被打满。
  • • 是用户态高,还是系统态高。
  • • 是哪个线程在烧 CPU。
  • • 它到底在跑业务逻辑、GC,还是频繁系统调用。

3.2 第一条命令:先看整机是否真的是 CPU 瓶颈

vmstat 1 5

重点看四组指标:

  • • r:可运行队列长度,持续大于 CPU 核数,说明抢占严重。
  • • us:用户态 CPU 占比,通常对应业务代码、JIT、GC 用户态计算。
  • • sy:内核态 CPU 占比,偏高时要怀疑系统调用、网络栈、锁竞争。
  • • wa:IO wait,高则可能是假性“CPU 高”,实则在等磁盘。

为什么先看 vmstat 而不是直接看某个进程?因为你要先确认,问题是局部热点,还是宿主机资源竞争。很多 K8s 节点问题,根因不是你的 Pod,而是同机 noisy neighbor。

3.3 第二条命令:锁定最耗 CPU 的进程

top -b -n1 -o %CPU | head -20

如果你知道服务名,也可以更直接:

ps -eo pid,ppid,cmd,%cpu,%mem --sort=-%cpu | head -15

这一步不是为了“看到 CPU 高”这种废话,而是为了回答两个实际问题:

  • • 热点是在 Java、Go、Nginx,还是 sidecar、日志采集、JVM 附属进程。
  • • 它是单个大进程吃满,还是多个进程平均分摊。

3.4 第三条命令:锁定线程,而不是只停留在进程层

top -H -b -n1 -p 6 | awk 'NR>7 {print $1,$9,$12}' | sort -k2 -rn | head -5

如果想更稳定地连续观察线程波动,用:

pidstat -t -p 6 1 5

top -H 适合快照式定位,pidstat -t 适合观察线程 CPU 是否持续集中在同一批线程上。持续集中,往往意味着代码热点;频繁切换,则要怀疑抢锁、线程池抖动或请求风暴。

3.5 第四条命令:把线程 ID 对上 Java 栈

jstack 6 | grep -A 30 "0x$(printf '%x\n' 243)"

其中 243 是你从 top -H 或 pidstat -t 拿到的线程 ID。

这条命令的价值,不在于“打印线程栈”,而在于完成了从内核调度对象到应用代码位置的映射:

  • • 内核层看到的是 TID
  • • JVM 栈里暴露的是十六进制 nid
  • • 你通过十进制转十六进制,把两者接起来

这样你就能把“CPU 高”落到诸如以下具体根因:

  • • 某段 JSON 序列化在大对象上反复拷贝
  • • 正则表达式回溯过深
  • • 无限重试没有退避
  • • 自旋 CAS 在高冲突场景下空转
  • • Full GC 或 Remark 线程持续占用 CPU

3.6 一行组合:真正能在现场救命的版本

pid=$(pgrep -f 'java.*user-center'); tid=$(top -H -b -n1 -p "$pid" | awk 'NR>7{print $1,$9}' | sort -k2 -rn | head -1 | awk '{print $1}'); printf 'pid=%s tid=%s hex=%x\n' "$pid" "$tid" "$tid"; jstack "$pid" | grep -A 30 "0x$(printf '%x\n' "$tid")"

3.7 这类问题常见的真实根因

  • • SQL 变慢,线程大量阻塞前后伴随少数线程在连接池争抢和超时重试中耗尽 CPU。
  • • 线程池队列太小,拒绝策略触发后业务层疯狂降级重试。
  • • synchronized 热点锁导致竞争线程不断唤醒和挂起。
  • • 应用误把批处理逻辑跑在请求线程里,导致单次请求计算量异常放大。

3.8 修复后如何验证

不要只看“CPU 降下来了”,要一起验证:

  • • P95/P99 是否恢复
  • • 线程热点是否消失
  • • 扩容副本数是否回落
  • • GC 次数和停顿是否回到基线
  • • 数据库、Redis、MQ 是否同步恢复

很多事故里,CPU 高只是二次症状,真正根因在下游资源阻塞。


四、内存上涨:不要只盯着堆,堆外内存、页缓存和映射文件同样会杀死进程

4.1 场景:服务内存持续上涨,最终被 OOMKilled,但堆 dump 看起来不大

这是线上极常见的坑。

很多人看到 Java 进程内存高,第一反应就是“堆泄漏”。可在容器环境里,真正把进程送走的,可能是:

  • • DirectByteBuffer 堆外内存
  • • JNI 分配的 native memory
  • • 线程栈数量过多
  • • mmap 文件映射
  • • glibc arena 碎片
  • • 页缓存与 cgroup 内存限制叠加

4.2 第一条命令:先看系统是不是整体在换页或回收压力中

vmstat 1 5

重点看:

  • • si / so:swap in / swap out,不为 0 时说明已经开始换页
  • • free:空闲内存只是参考,不要单独看
  • • wa:高时有可能是内存压力引发的回写放大

如果宿主机本身在抖,说明问题不一定只在单个进程。

4.3 第二条命令:用 pmap 看 RSS 到底花在哪

pmap -x 6666 | sort -k3 -nr | head -10

这里最有价值的是按 RSS 排序后的内存映射段。你通常会看到:

  • • [ anon ]
  • • Java heap
  • • .so 共享库
  • • 文件映射
  • • 栈段

如果匿名段异常大,而堆又没有同步变大,优先怀疑堆外内存或本机内存泄漏。

4.4 第三条命令:深入到 smaps 看分段细节

cat /proc/6666/smaps | grep -A 20 "7f2a00000000"

smaps 比 pmap 更细,能看到:

  • • RSS
  • • PSS
  • • Private_Dirty
  • • Shared_Clean
  • • Swap

它真正解决的是“这段内存到底是共享页、私有脏页,还是已经换出”。这对判断是不是页缓存、是不是文件映射异常、是不是本机分配失控非常关键。

4.5 一行组合:快速抓出堆外占用 TOP

pid=$(pgrep -f 'java.*user-center'); pmap -x "$pid" | awk 'NR>2 {print $3,$4,$NF}' | sort -nr | head -10

4.6 这类问题为什么经常误判

因为语言运行时给你的监控视角,往往只覆盖“托管内存”,但 Linux 杀进程时看的是 cgroup 或宿主机视角下的实际占用。也就是说:

  • • JVM 说自己堆只用了 4G
  • • 容器却可能已经吃了 7G

中间那 3G,往往就在 native memory、线程栈和文件映射里。

4.7 工程上的防复发手段

  • • Java 服务开启 -XX:NativeMemoryTracking=summary 或 detail
  • • 对 Netty、Arrow、RocksDB 等堆外内存敏感组件设上限
  • • 监控进程 RSS、容器 working set、page cache,而不是只看堆使用率
  • • 限制线程数,避免线程栈把容器内存悄悄吃光
  • • 在大文件或索引加载场景中关注 mmap 数量和页缓存回收行为

五、磁盘 IO 风暴:真正要找的不是“磁盘忙”,而是谁在写、写到哪、为什么必须同步写

5.1 场景:数据库从库延迟飙升,应用日志也开始超时,节点 iowait 很高

这时最容易出现两种错误动作:

  • • 直接重启服务
  • • 看到磁盘 100% 就判断“盘不行了”

但很多时候,磁盘风暴根因不是设备坏,而是某个进程的写入模式突然变了,比如:

  • • binlog/fsync 频率异常
  • • 日志爆量
  • • 大量小块随机写
  • • 临时文件落盘
  • • checkpoint 或 compaction 突然触发

5.2 第一条命令:先确认是不是 IO 等待导致系统变慢

vmstat 1 5

如果 wa 明显升高,同时 us 并不高,说明 CPU 并没有真忙,线程大概率是在等 IO。

5.3 第二条命令:锁定最重的 IO 进程

iotop -b -n1 -o -P | awk 'NR>3 {print $1,$4,$6,$12}' | head -10

这一步能回答:

  • • 是 MySQL、Java、日志采集器还是备份进程在写
  • • 是读多还是写多
  • • 这个进程是否就是你当前怀疑的对象

5.4 第三条命令:用 lsof 把进程和文件关联起来

lsof -p 12345 | awk '/REG/ {print $9}' | sort | uniq | head -30

这是磁盘排障的分水岭。因为从“进程很忙”到“它到底在操作哪个文件”,中间往往就隔着一个 lsof

你会很快看到是:

  • • redo log
  • • binlog
  • • 热点表空间
  • • 临时目录
  • • GC 日志
  • • 应用滚动日志

5.5 一行组合:先抓进程,再列文件

pid=$(iotop -b -n1 -o -P | awk 'NR==4{print $1}'); echo "PID=$pid"; lsof -p "$pid" | awk '/REG/ {print $9}' | sort -u | head -30

5.6 为什么这条证据链很重要

因为 IO 问题非常容易跨层误导:

  • • 数据库复制延迟,看起来像数据库问题,实际是宿主机某个归档任务把磁盘写爆
  • • 接口超时,看起来像应用代码慢,实际是日志同步刷盘拖垮请求线程
  • • Kafka 消费积压,看起来像消费逻辑异常,实际是 broker 所在盘延迟抖动

5.7 如果还想确认是不是同步刷盘或文件锁问题

strace -f -e trace=fsync,fdatasync,open,openat -p 12345

这一步是重型证据。它能直接告诉你进程是不是在高频 fsync,或者是否不断打开某个文件。


六、网络超时:ping 正常没有意义,连接状态和重传才是真相

6.1 场景:微服务调用大量超时,应用日志写满了 Read timed out,但 ping 正常

生产里最常见的网络误判,就是用 ping 正常来排除网络问题。

但应用层超时常见根因很多根本不是 ICMP 能解释的:

  • • SYN 发出后迟迟没建连
  • • accept backlog 满
  • • 服务端连接耗尽
  • • CLOSE_WAIT 堆积
  • • TCP 重传升高
  • • NAT、负载均衡或 sidecar 连接跟踪异常

6.2 第一条命令:看 socket 状态分布

ss -tan | awk 'NR>1 {print $1}' | sort | uniq -c | sort -rn

如果你看到下面这些状态异常增多,含义完全不同:

  • • SYN-SENT 多:本端发起建连困难
  • • SYN-RECV 多:服务端半连接堆积
  • • ESTAB 多:只是连接多,不一定是问题
  • • TIME-WAIT 多:短连接风暴或连接复用策略不好
  • • CLOSE-WAIT 多:应用层没有及时关闭连接

6.3 第二条命令:只看可疑状态

ss -tan state close-wait

或:

ss -tan state syn-sent

你不需要一上来抓包。大多数情况下,ss 已经足够把问题缩小到连接生命周期的某个阶段。

6.4 第三条命令:看重传是否持续增长

sar -n TCP,ETCP 1 5

如果系统有 sysstat,这比老式 netstat -s 更适合持续观察。重点看:

  • • active/s passive/s
  • • retrans/s
  • • reset/s

当 retrans/s 明显抬升时,要继续怀疑链路丢包、队列拥塞、对端过载或网卡/驱动问题。

6.5 第四条命令:只抓你关心的握手与重置

tcpdump -i eth0 -nn 'tcp port 8080 and (tcp[tcpflags] & (tcp-syn|tcp-rst) != 0)' -c 100

为什么不是一上来全量抓包?因为生产流量大时,全量抓包既影响性能,也不利于快速分析。抓 SYN、RST、少量样本,通常更快回答问题:

  • • 包到底有没有发出去
  • • 对端有没有回应
  • • 是谁先 reset
  • • 三次握手卡在哪一步

6.6 一个真实得不能再真实的案例

很多 Java 服务的 CLOSE_WAIT 问题,并不是操作系统 bug,而是代码没写好:

  • • HttpClient 用完没及时关闭
  • • 下游连接池归还异常
  • • 异常分支漏掉 finally

这时 ss 给你的已经不是“网络问题”线索,而是应用资源释放问题线索。


七、启动卡死、无日志、无响应:strace 是最锋利的最后一刀

7.1 场景:服务启动后不报错,也不监听端口,日志几乎没有输出

这种问题最折磨人,因为看起来“什么都没发生”。

但对操作系统来说,只要进程还活着,它就一定在做某些系统调用。于是 strace 的价值就出来了。

7.2 一行命令:直接看它卡在什么系统调用

strace -f -e trace=open,openat,connect,read,write,flock -p $(pgrep -f myapp) 2>&1 | head -40

你常见到的根因会非常具体:

  • • open(...)= -1 ENOENT:配置文件或动态库缺失
  • • connect(...)= -1 ETIMEDOUT:启动依赖外部注册中心或数据库超时
  • • flock(...) 长时间不返回:文件锁竞争
  • • read(...) 一直阻塞:等管道、等 FIFO、等设备

7.3 为什么 strace 这么有效

因为它直接绕过了应用日志的主观性。

日志可能没打出来,日志级别可能不够,代码可能压根没走到 catch;但系统调用是进程和内核的真实边界。你看到的不是“开发者以为程序在干什么”,而是“程序真的在跟操作系统交互什么”。

7.4 什么时候不要长时间用 strace

  • • 高吞吐线上核心链路
  • • 系统调用极其频繁的进程
  • • 你已经拿到足够证据,只差执行修复时

strace 适合做精确定位,不适合当长期监控工具。


八、容器时代的排障分水岭:容器里没有工具,不等于你看不到现场

8.1 场景:线上容器是 distroless,没有 shell、没有 top、没有 lsof

这是 K8s 生产环境的常态,而不是例外。镜像越精简,运行越安全,排障就越依赖宿主机工具链。

8.2 关键命令:先找到容器对应的宿主机 PID

docker inspect --format '{{.State.Pid}}' <container_id>

如果是 containerd/CRI:

crictl inspect <container_id> | jq .info.pid

8.3 一步穿透 namespace

nsenter -t <pid> -a -- ss -tanp

也可以:

nsenter -t <pid> -m -p -- jstack 1

或者:

nsenter -t <pid> -n -- tcpdump -i any -nn 'tcp port 8080'

8.4 为什么 nsenter 是容器排障必修课

因为容器隔离靠的是 namespace,而不是“另一台机器”。目标进程的网络栈、挂载点、PID 视图,本质上都还是宿主机内核在管理。nsenter 做的事,就是调用 setns() 进入目标命名空间,把宿主机工具借进去。

这意味着:

  • • 你不需要为了排障给业务容器临时装一堆工具
  • • 你可以在宿主机上统一保留可信工具链
  • • 你可以把排障能力做成节点级标准操作,而不是容器内手工操作

8.5 生产建议

  • • 节点预装最小排障工具集
  • • 做一套标准化 diag.sh 或 node-debug 脚本
  • • 给 SRE 和核心研发准备只读排障权限,而不是 root 漫游
  • • 把进入容器 namespace 的流程纳入值班手册

九、别忽略系统日志:很多“玄学问题”其实早就写在 journalctl 里

9.1 场景:服务偶发失败,重启后恢复,但你总觉得不是应用自身问题

有一类故障不是进程内部逻辑,而是系统外围在出问题:

  • • cgroup OOM
  • • kubelet 杀进程
  • • 磁盘只读
  • • 网卡 flap
  • • systemd 拉起失败
  • • 时间同步异常

这时应用日志常常是不完整的,因为进程来不及说话就被外部环境处理掉了。

9.2 一行命令:看最近系统级异常

journalctl --since "10 min ago" -p warning

如果是具体服务:

journalctl -u myapp --since "10 min ago"

你能快速拿到的信息包括:

  • • 是否出现 OOM killer 记录
  • • systemd 是否反复拉起失败
  • • 某个挂载点是否变成只读
  • • 内核是否报告网卡、文件系统、驱动异常

9.3 为什么很多人会漏掉这一步

因为大家默认觉得“故障一定是业务代码引起的”。但在复杂生产环境里,业务代码只是最后承压的一层。真正的根因可能在宿主机、内核、文件系统或运行时。


十、历史视角同样重要:sar 解决的是“现在看不见刚才发生了什么”

10.1 场景:你登录到机器时,故障已经过去一半了

很多线上问题最尴尬的点在于:

  • • 告警已经触发过
  • • 重试风暴已经退潮
  • • CPU 已经回落
  • • 连接状态也没那么夸张了

如果你只看当前快照,很可能会得出“现场看起来还好”的错误结论。

10.2 一行命令:回看刚才的 CPU、网络、磁盘波动

sar -u -r -n DEV 1 5

如果系统启用了历史采样,还可以回看采样文件。sar 的价值不在于比实时命令更酷,而在于它能回答:

  • • 故障发生前 5 分钟 CPU 是否先升高
  • • 内存回收是否在更早就开始恶化
  • • 网卡吞吐是否突然放大
  • • 系统负载是瞬时尖峰还是持续爬升

这对区分“突发流量”“慢性泄漏”“定时任务打点”“批处理冲击”非常有帮助。


十一、把 15 个命令串成一条真正可执行的排障链

到这里你会发现,这 15 个命令并不是孤立存在的。它们在生产里更像一套组合拳。

11.1 CPU 型故障

推荐路径:

vmstat -> top / ps -> pidstat -> jstack

适合解决:

  • • 热点线程
  • • GC 抖动
  • • 自旋空转
  • • 锁竞争
  • • 线程池风暴

11.2 内存型故障

推荐路径:

vmstat -> pmap -> smaps -> journalctl

适合解决:

  • • 堆外内存膨胀
  • • cgroup OOM
  • • 文件映射异常
  • • 线程栈过多

11.3 IO 型故障

推荐路径:

vmstat -> iotop -> lsof -> strace

适合解决:

  • • 日志打爆磁盘
  • • 数据库刷盘抖动
  • • 临时文件膨胀
  • • 高频 fsync

11.4 网络型故障

推荐路径:

ss -> sar -> tcpdump -> journalctl

适合解决:

  • • 大量超时
  • • 建连失败
  • • CLOSE_WAIT 堆积
  • • 重传异常
  • • 网卡或驱动层问题

11.5 容器型故障

推荐路径:

docker inspect / crictl inspect -> nsenter -> 复用上述所有命令

适合解决:

  • • distroless 容器无工具
  • • Pod 内外视角不一致
  • • 宿主机和容器指标混淆

十二、一行命令图谱:15 个核心命令到底分别看什么

命令
解决的核心问题
适合第一时间使用吗
典型风险
top
谁最耗 CPU/内存
快照可能误导瞬时波动
ps
进程维度排序和父子关系
看不到线程细节
pidstat
线程和进程的连续资源变化
需要多采几个周期
jstack
Java 线程到底在跑什么
否,先缩小范围再用
高峰期频繁执行有扰动
pmap
RSS 主要落在哪些映射段
只能看到进程内存视角
smaps
具体内存段的精细构成
信息多,现场需要有针对性看
vmstat
整机资源压力类型
不能直接给出根因
iotop
谁在读写磁盘
依赖内核统计能力
lsof
进程打开了哪些文件/端口
文件很多时输出庞大
ss
TCP/UDP 连接状态如何
只看到连接,不直接看到业务语义
tcpdump
包是否真的在走、怎么走
流量大时要严格过滤
strace
进程卡在哪类系统调用
有性能开销
journalctl
系统级和服务级日志证据
日志保留策略可能影响回溯
nsenter
如何进入容器命名空间
是,容器环境尤其关键
权限控制必须做好
sar
刚才到底发生过什么
依赖系统预先安装采样组件

十三、真正的生产经验,不是背命令,而是知道哪些命令不能乱用

命令会不会用,只是初级差异;知道什么时候不用,才是生产经验。

13.1 三条很重要的边界

第一,重型命令不要在未知高峰上盲打。

比如:

  • • 不要对已经抖动严重的核心进程长时间 strace -f
  • • 不要在大流量节点上无过滤地 tcpdump -i any
  • • 不要把多次 jstack 误当成长期观测工具

第二,不要脱离业务上下文解释系统证据。

例如看到 TIME_WAIT 多,不一定是 bug,也可能是短连接设计本来如此;看到磁盘忙,也不一定是数据库慢,可能是日志系统或备份任务。

第三,不要把“当前快照”误当成“整个故障过程”。

很多故障在你登录时已经发生了演化:

  • • CPU 峰值过去了,但连接池还没恢复
  • • IO 高峰过去了,但脏页回写还在拖尾
  • • 网络抖动过去了,但应用连接已进入错误状态

所以历史指标和系统日志一定要一起看。


十四、从“会排障”到“少排障”:把一行命令沉淀成工程能力

如果团队排障仍然依赖个人英雄主义,那说明系统还不够工程化。

更成熟的做法,是把这些命令沉淀成标准能力。

14.1 建一套节点级诊断脚本

例如把以下能力固化进 diag.sh

  • • CPU 热点线程采集
  • • RSS TOP 映射采集
  • • socket 状态采集
  • • FD 数量采集
  • • 关键日志抓取

这样值班同学不用临场拼命回忆参数。

14.2 给监控加“命令语义映射”

比如:

  • • 看到 CLOSE_WAIT 激增,就联想到 ss
  • • 看到容器内存高但堆正常,就联想到 pmap/smaps
  • • 看到 iowait 高,就联想到 iotop + lsof

成熟团队的值班手册,应该能把告警直接映射到下一条命令,而不是映射到“请拉群讨论”。

14.3 把防复发闭环补齐

命令只能帮你找到根因,真正减少事故频率的,是后面的治理动作:

  • • 热点 SQL 加索引、限流、缓存和慢查询告警
  • • 连接泄漏补充 finally 释放和连接池监控
  • • 堆外内存组件补限额和使用量埋点
  • • 日志刷盘模式调整为异步批量
  • • 容器节点预装最小排障工具集

十五、结语:命令是术,证据链才是道

只会背命令,最多算熟练工;能够把命令、内核视角、运行时机制和业务现场串成一条证据链,才算真正具备生产排障能力。

这 15 个 Linux 核心命令之所以重要,不是因为它们覆盖了所有故障,而是因为它们足够稳定、足够底层、足够接近真实现场。无论你跑的是 Java、Go、Node.js,还是容器、虚拟机、裸机,最终都要落回 CPU、内存、IO、网络、进程和系统日志这些基本面上。

所以,别把它们当成“面试题”去背。

把它们练成下面这套条件反射,才真正有意义:

  • • 看到 CPU 高,先判断整机还是进程,再落到线程和栈
  • • 看到内存涨,先分清堆、堆外、页缓存和映射文件
  • • 看到超时,先看 socket 状态和重传,而不是先怪网络
  • • 看到容器里没工具,第一反应是 nsenter,而不是手忙脚乱地重建镜像

真正的一行破局,不是“只敲一行命令就解决问题”,而是你知道哪一行最值得先敲,敲完之后下一步该去哪,什么时候已经拿到足够证据,什么时候该立刻止损、修复、回滚。

这,才是生产故障里最值钱的能力。


建议你在测试环境刻意练习一遍这套路径:主动制造 CPU 热点、连接泄漏、磁盘刷盘抖动和容器内无工具场景,然后强迫自己只用命令行完成定位。练过和没练过,值班时的心理稳定性完全是两个层级。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-21 22:54:55 HTTP/2.0 GET : https://f.mffb.com.cn/a/505300.html
  2. 运行时间 : 0.501620s [ 吞吐率:1.99req/s ] 内存消耗:4,818.35kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=4f9f8b4a2a8c10b29676308cf3566651
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.001128s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001701s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.101374s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000708s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001719s ]
  6. SELECT * FROM `set` [ RunTime:0.000671s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001290s ]
  8. SELECT * FROM `article` WHERE `id` = 505300 LIMIT 1 [ RunTime:0.012888s ]
  9. UPDATE `article` SET `lasttime` = 1787324095 WHERE `id` = 505300 [ RunTime:0.002775s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.001017s ]
  11. SELECT * FROM `article` WHERE `id` < 505300 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001743s ]
  12. SELECT * FROM `article` WHERE `id` > 505300 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001164s ]
  13. SELECT * FROM `article` WHERE `id` < 505300 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.079651s ]
  14. SELECT * FROM `article` WHERE `id` < 505300 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.051490s ]
  15. SELECT * FROM `article` WHERE `id` < 505300 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.056188s ]
0.505294s