当前位置:首页>Linux>Linux 进程被莫名杀掉,初中级运维该怎么一步步定位?

Linux 进程被莫名杀掉,初中级运维该怎么一步步定位?

  • 2026-07-02 14:44:17
Linux 进程被莫名杀掉,初中级运维该怎么一步步定位?

背景与问题

Linux 进程突然消失是运维工作中最棘手的问题之一。没有错误日志,没有 core dump,进程就这样无声无息地没了。这种情况通常发生在内存资源紧张时,OOM Killer(Out of Memory Killer)根据系统策略选择某个进程杀掉。但进程被杀掉的原因远不止 OOM 一种:资源耗尽、信号终止、配置限制、内核 bug、被人为 kill 等,每一种的排查思路都不同。

本文系统讲解 Linux 进程消失的各种可能原因,以及对应的排查手段和预防措施。以 RHEL 8/9、AlmaLinux 9、Ubuntu 22.04 LTS 为测试环境,覆盖 systemd 服务和直接运行的进程两种场景。阅读本文后,你能够独立定位进程消失的根因,区分不同信号来源,并建立有效的预防机制。

1. 进程消失的常见原因分类

进程消失从表现上分为两类:进程自己退出(exit)和被信号终止(kill)。两类问题的排查方向完全不同。

进程自己退出通常表现为进程执行完毕正常返回,或者因代码错误触发段错误、浮点异常等导致非正常退出。这类情况会在系统日志或应用日志中留下记录。

被信号终止是更常见的情况。Linux 中有多种信号可以终止进程:SIGKILL(信号 9)是最强的强制终止信号,进程无法捕获或忽略;SIGTERM(信号 15)是优雅终止信号,进程可以捕获并做清理工作;SIGSEGV(信号 11)表示进程访问了非法内存地址,由内核发送;SIGABRT(信号 6)通常是程序主动调用 abort() 产生的;SIGBUS(信号 7)表示总线错误。

除此之外,还有几种特殊场景:OOM Killer 在内存不足时选择某个进程杀掉;cgroup 资源限制触发强制终止;systemd 的 TimeoutStopSec 超时强制杀;进程达到 max PID 或最大线程数限制;ulimit 资源限制触发。

2. 第一步:确认进程真的消失了

2.1 检查进程是否还在运行

# 检查进程是否存在(PID 是举例)
ps -p 12345

# 或者
kill -0 12345
# 如果进程不存在,kill -0 返回 "No such process"

# 查看特定进程名称
ps aux | grep nginx
ps -ef | grep mysqld

2.2 检查进程是否变成了僵尸

僵尸进程是已经退出但未被父进程回收的进程,仍然占用 PID:

# 查找僵尸进程
ps aux | grep Z

# 更详细的信息
ps -eo pid,ppid,state,comm | grep Z

僵尸进程不占用内存但占用 PID 和进程表空间。如果父进程没有调用 wait() 回收子进程,僵尸会一直存在。解决办法是修复或重启父进程。

2.3 检查进程的退出码

如果进程刚刚退出,可以通过 /proc 获取退出信息:

# 查看进程的退出码(进程退出后短期内仍可查询)
cat /proc/PID/status | grep -E "State|VmRSS"

# 查看 dmesg 中的 OOM Killer 记录
dmesg | grep -i "out of memory"
dmesg | grep -i "killed process"

3. 排查 OOM Killer

3.1 OOM Killer 的工作原理

Linux 内核在物理内存和 swap 空间都耗尽时,会触发 OOM Killer。内核根据每个进程的 oom_score(由 oom_score_adj 调整)计算优先级,分数越高越容易被杀掉。分数由多个因素决定:进程使用的内存越多分数越高;进程运行时间越久分数越低(避免杀掉刚启动的进程);内核尝试选择那个占用资源最多但对系统影响最小的进程。

oom_score_adj 的取值范围是 -1000 到 +1000。负数降低被杀的概率,正数增加被杀的概率。设置为 -1000 则完全免疫 OOM Killer,但这通常只用于系统关键进程。

3.2 检查 dmesg 中的 OOM 记录

OOM Killer 执行后会记录到 dmesg:

# 查找 OOM Killer 相关记录
dmesg | grep -i "out of memory"
dmesg | grep -i "killed process"
dmesg | grep -i "oom"

# 查看更完整的时间戳信息
dmesg -T | grep -i "oom"

输出示例:

[Mon Apr 14 10:30:45 2026] Out of memory: Killed process 12345 (myapp) total-vm:2048000kB, anon-rss:1024000kB, file-rss:0kB, shmem-rss:0kB, UID:1000 pgtables:2048kB oom_score_adj:0

这条记录显示进程 12345(myapp)被 OOM Killer 杀掉,总占用虚拟内存 2GB,匿名内存 1GB。

注意:dmesg 是内核环形缓冲区,大小有限。如果机器运行时间较长,旧记录会被新记录覆盖。可以通过设置 vm.legacy_va_layout 或增加 vm.m Min_free_kbytes 来减少 OOM 发生频率。

3.3 查看系统内存历史

确认 OOM 前后的内存使用情况:

# 查看内存使用情况
free -h

# 查看详细内存统计
cat /proc/meminfo | grep -E "MemTotal|MemFree|MemAvailable|Buffers|Cached|SwapTotal|SwapFree|AnonPages|Shmem"

# 查看哪些进程占用内存最多
ps aux --sort=-rss | head -20

如果 MemAvailable 接近 0 而 SwapFree 也是 0,说明确实发生了内存耗尽。如果 MemAvailable 仍然充足但 OOM 被触发,可能是 cgroup 限制导致的。

3.4 检查 OOM 触发的时间点

如果 OOM 记录时间与进程消失时间吻合,问题基本确定。进一步分析为什么会内存耗尽:

# 查看进程的内存增长历史(需要部署监控)
# 例如 Prometheus Node Exporter 的 node_memory_*

# 检查是否有内存泄漏
# 观察进程的 VmRSS 随时间的变化
whiletruedo
    ps -p 12345 -o pid,vsz,rss,pmem,comm
    sleep 5
done

如果进程内存持续增长不释放,是典型的内存泄漏。如果内存突然飙升,可能是突发流量或异常请求导致。

3.5 调整 OOM Killer 策略

调整进程的 oom_score_adj:

# 查看当前进程的 oom_score_adj
cat /proc/PID/oom_score_adj

# 临时调整(进程重启后失效)
echo -1000 > /proc/PID/oom_score_adj

# 永久调整(通过 systemctl 设置)
systemctl set-environment OOM_SCORE_ADJ=-1000
# 或者在 service 文件中设置

service 文件中设置:

[Service]
Environment=OMP_SCORE_ADJ=-1000

注意:不要轻易将 oom_score_adj 设置为 -1000。如果系统真的内存耗尽,OOM Killer 无法杀掉该进程,可能导致系统 itself 被挂起或 panic。

4. 排查 cgroup 资源限制

4.1 cgroup v2 资源限制

现代 Linux 发行版(RHEL 9、Ubuntu 22.04+)默认使用 cgroup v2。检查进程是否受到 cgroup 限制:

# 查看进程所属的 cgroup
cat /proc/PID/cgroup

# 查看 cgroup 内存限制
cat /sys/fs/cgroup/memory.max
cat /sys/fs/cgroup/memory.current

# 如果是 cgroup v1
cat /sys/fs/cgroup/memory/memory.limit_in_bytes
cat /sys/fs/cgroup/memory/memory.usage_in_bytes

如果 memory.current 接近 memory.max,说明触发了 cgroup 内存限制。

4.2 Docker 容器资源限制

在容器中运行的进程受容器资源限制约束:

# 查看容器内存限制
docker inspect container_name | grep -A 10 "Memory"

# 查看容器内进程的 cgroup
docker exec container_name cat /proc/1/cgroup

# 检查容器 OOMKiller 是否触发
docker logs container_name 2>&1 | grep -i oom

Docker 容器的 OOMKiller 行为与系统 OOMKiller 独立。容器内的 OOMKiller 由内核的 cgroup 机制触发,与系统级 OOMKiller 是两个独立的判断逻辑。

4.3 Kubernetes Pod 资源限制

Pod 层面的资源限制通过 cgroup 生效:

# 查看 Pod 的资源限制
kubectl describe pod pod_name | grep -A 5 "Limits"

# 查看节点的资源分配情况
kubectl describe node node_name | grep -A 10 "Allocated resources"

Pod 如果设置了 resource limits,而容器内存使用超过 limits,会被 cgroup 直接杀死。这种情况下 dmesg 可能看不到 OOM 记录,但容器的 exit code 会是 137(128 + 9,SIGKILL)。

5. 排查信号终止

5.1 检查进程收到的信号

如果进程被信号杀死,可以查看进程退出时的状态信息:

# 查看进程的退出状态
cat /proc/PID/status | grep -E "State|SigPnd|SigBlk|SigIgn|SigCgt"

# 查看进程收到的未处理信号(十六进制)
cat /proc/PID/status | grep "SigQ:"

5.2 常见信号识别

**SIGKILL (9)**:无法被捕获、阻塞或忽略。进程收到此信号后立即终止。这是最常见的强制终止信号。可能来源:被人手动 kill -9、systemd 的 TimeoutStopSec 超时、cgroup 资源限制触发。

**SIGTERM (15)**:可以被捕获或忽略。进程收到信号后应该执行清理操作然后退出。可能来源:手动 kill(不带 -9)、systemd stop、容器 stop。

**SIGSEGV (11)**:段错误,进程访问了非法内存地址。这是代码 bug,不是外部干预。可能来源:空指针解引用、数组越界、栈溢出。

**SIGABRT (6)**:程序主动调用 abort() 触发。可能来源:assert 失败、glibc 内存分配失败时调用。

**SIGBUS (7)**:总线错误,通常是非对齐内存访问导致。

**SIGFPE (8)**:浮点异常,除零或溢出。

5.3 分析 core dump

如果进程崩溃产生 core dump,可以分析根因:

# 检查是否启用 core dump
ulimit -c

# 如果是 0,表示未启用。需要开启
ulimit -c unlimited

# 或者永久设置
echo"ulimit -c unlimited" >> /etc/profile

core dump 文件默认在进程的工作目录或执行目录生成,文件名通常是 core.PID。可以通过修改 /proc/sys/kernel/core_pattern 自定义路径和文件名。

分析 core dump:

# 使用 gdb 分析
gdb /path/to/binary /path/to/corefile

# 或者使用 crash(内核转储分析工具)
crash /usr/lib/debug/vmlinuz-$(uname -r) /path/to/corefile

6. 排查 systemd 服务终止

6.1 查看 systemd 日志

systemd 管理下的服务被杀死,日志会记录原因:

# 查看服务的完整日志
journalctl -u service_name -n 100

# 查看服务上一次启动的日志
journalctl -u service_name -b -1

# 查看服务被终止前的日志
journalctl -u service_name --since "1 hour ago"

# 查看 OOM 相关日志
journalctl -k | grep -i oom

6.2 检查 service 文件配置

检查 service 文件中的超时和重启策略:

[Service]
Type=simple
ExecStart=/usr/local/bin/myapp
TimeoutStartSec=60
TimeoutStopSec=30
Restart=on-failure
RestartSec=5
MemoryMax=2G
MemoryHigh=1.8G

TimeoutStopSec=30:如果服务在 30 秒内没有优雅退出(收到 SIGTERM 后),systemd 会发送 SIGKILL 强制杀死。这是最容易被忽视的进程消失原因之一。

MemoryMax:硬限制。进程内存使用达到此值会被 cgroup 直接杀死。

MemoryHigh:软限制。当内存使用达到此值,cgroup 会提醒进程释放内存,但如果进程不响应,最终会触发 MemoryMax 限制。

6.3 调整 systemd 停止超时

如果应用需要更长时间做清理,应该增加 TimeoutStopSec:

[Service]
TimeoutStopSec=300

这给了进程 5 分钟的优雅退出时间,适合有数据库连接池、文件句柄需要关闭、缓存需要刷新等场景的应用。

6.4 禁用 OOM Killer 对特定服务

通过 systemd 设置服务对 OOM 的免疫:

[Service]
OOMScoreAdjust=-1000

设置后,该服务不会被系统 OOM Killer 杀掉。但注意,如果系统内存耗尽到无法分配给关键系统进程,可能导致 kernel panic。

7. 排查 ulimit 资源限制

7.1 进程数限制

检查允许的最大进程数:

# 查看当前 shell 的进程数限制
ulimit -u

# 查看系统最大 PID 数量
cat /proc/sys/kernel/pid_max

# 查看特定用户的进程限制
cat /etc/security/limits.conf

如果进程数达到限制,新进程无法创建。检查方法:

# 查看用户当前进程数
ps -U username | wc -l

# 查看系统总进程数
ps -e | wc -l

7.2 文件描述符限制

每个连接、文件、socket 都占用一个文件描述符:

# 查看当前限制
ulimit -n

# 查看系统级限制
cat /proc/sys/fs/file-max

# 查看已使用的 FD 数量
cat /proc/sys/fs/file-nr

如果达到限制,进程无法打开新文件或建立新连接。错误信息通常是 "Too many open files"。

7.3 调整 limits.conf

在 /etc/security/limits.conf 中添加或修改:

* soft nofile 1000000
* hard nofile 1000000
* soft nproc 65535
* hard nproc 65535

* 表示所有用户,可以替换为特定用户名或 @用户组。

对于 systemd 服务,需要在 service 文件中设置:

[Service]
LimitNOFILE=1000000
LimitNPROC=65535

8. 排查被人为 kill

8.1 检查审计日志

Linux 审计子系统会记录所有 kill 命令的执行:

# 启动 auditd
systemctl enable auditd
systemctl start auditd

# 查看 kill 相关的审计记录
ausearch -k kill

# 查看特定进程被杀的记录
ausearch -p PID

# 查看特定时间范围内的记录
ausearch -ts recent -k kill

如果没有安装 auditd,这个排查手段不可用。但审计日志是事后追溯的重要依据。

8.2 检查 history

查看用户的历史命令记录:

# 查看特定用户的历史记录
cat /home/username/.bash_history

# 查看最近执行的命令
history

注意:history 可以被清除或禁用,不能作为唯一依据。

8.3 检查容器内被杀

在 Kubernetes 或 Docker 环境中,可能因为以下原因被杀死:

# 检查容器退出码
docker inspect container_name --format='{{.State.ExitCode}}'
# 137 = SIGKILL (128+9)
# 143 = SIGTERM (128+15)

# 查看 Kubernetes Pod 终止原因
kubectl describe pod pod_name | grep -A 10 "Last State"

# 查看 Pod 事件
kubectl get events | grep pod_name

9. 内存相关排查命令汇总

9.1 系统级内存分析

# 内存总览
free -h

# 详细内存信息
cat /proc/meminfo

# 内存使用最高的进程
ps aux --sort=-rss | head -15

# 内存使用趋势(需要监控数据)
# Prometheus + node_exporter: node_memory_MemAvailable_bytes

9.2 进程级内存分析

# 查看进程的详细内存映射
pmap -x PID

# 查看进程的内存使用(RSS 为实际物理内存)
ps -eo pid,vsz,rss,pmem,comm --sort=-rss | head -15

# 查看进程的 oom_score
cat /proc/PID/oom_score

# 查看进程的 oom_score_adj
cat /proc/PID/oom_score_adj

9.3 交换空间分析

# 查看 swap 使用情况
swapon -s
free -h

# 查看哪些进程在使用 swap
smem -r
# 或者
for f in /proc/*/status; do awk '/VmSwap/{if($2>0) print $0}'$fdone

如果发现大量进程在使用 swap,说明物理内存严重不足,OOMKiller 随时可能触发。

10. 预防措施

10.1 部署内存监控

在内存使用率达到 80% 时告警,85% 时严重告警:

# Prometheus 告警规则示例
- alert: HighMemoryUsage
  expr: (1 - node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes) * 100 > 80
for: 5m
  labels:
    severity: warning
  annotations:
    summary: "High memory usage detected"

10.2 限制服务内存

通过 systemd 或 cgroup 限制服务的最大内存,留出余量给系统关键进程:

[Service]
MemoryMax=4G
MemoryHigh=3.5G

这样当服务内存使用达到 3.5G 时,内核开始提醒进程释放内存;达到 4G 时强制杀死。这个值应该设置为容器/服务可用物理内存的 80-90%。

10.3 保留内存给关键服务

通过 cgroup 设置系统关键进程的内存最低保障:

# 为系统进程预留内存
echo 1024 > /sys/fs/cgroup/memory/low

10.4 增加 swap 空间

虽然 swap 不能完全替代物理内存,但足够的 swap 可以避免 OOMKiller 在正常流量波动时频繁触发:

# 添加 8GB swap 文件
fallocate -l 8G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

# 永久启用(在 /etc/fstab 中添加)
/swapfile none swap sw 0 0

10.5 应用层面优化

进程层面解决内存问题:

  • 检查代码是否存在内存泄漏(使用 valgrind、AddressSanitizer)
  • 限制单次请求的内存使用(如上传文件大小限制)
  • 使用连接池复用数据库连接,避免每个请求创建新连接
  • 配置合理的 worker 数量和单个 worker 的最大请求数

11. 典型案例分析

案例一:Java 进程被 OOM Killer 杀掉

现象:运行中的 Java 进程突然消失,dmesg 显示 OOM Killer 记录。

排查过程

# 1. 确认是 OOM
dmesg | grep -i oom

# 2. 查看 Java 进程使用的内存
ps -eo pid,vsz,rss,pmem,comm | grep java

# 3. 查看 JVM 配置的最大堆内存
jcmd PID GC.heap_info

# 4. 检查系统总内存和 JVM 堆外内存
cat /proc/meminfo | grep -E "MemTotal|MemAvailable|AnonPages"

根因:JVM 堆内存设置为 4GB,但 Metaspace、DirectByteBuffer、Native 内存等堆外内存额外占用了 2GB。系统总内存 8GB,被多个服务共用,导致 Java 进程实际使用了 6GB+,触发 OOM。

解决:减小 JVM 堆内存,保留足够空间给堆外内存;或者增加物理内存;或者通过 cgroup 限制该服务的最大内存。

案例二:systemd 服务超时被杀

现象:执行 systemctl stop myservice 时服务无法停止,最终被强制杀死。

排查过程

# 1. 查看服务停止时的日志
journalctl -u myservice -n 50

# 2. 检查 service 文件的超时配置
cat /etc/systemd/system/myservice.service | grep -E "Timeout"

# 3. 模拟慢速关闭
systemctl stop myservice &
sleep 60
ps aux | grep myservice

根因:应用关闭时需要做数据库连接池关闭、缓存刷新等操作,默认 90 秒超时不够用。

解决:增加 TimeoutStopSec 值,或者优化应用的关闭逻辑。

案例三:容器内进程被 cgroup 限制杀死

现象:Docker 容器内进程退出,exit code 137。

排查过程

# 1. 检查容器退出码
docker inspect container --format='{{.State.ExitCode}}'

# 2. 检查容器内存限制
docker inspect container --format='{{.HostConfig.Memory}}'

# 3. 检查容器内存使用
docker stats container --no-stream

# 4. 检查容器日志
docker logs container 2>&1 | tail -50

根因:容器内存限制 512MB,应用实际需要 600MB。

解决:增加容器内存限制,或者优化应用内存使用。

12. 排查流程总结

遇到进程消失问题,按以下顺序排查:

第一步,检查 dmesg 是否有 OOM 记录。如果有,问题基本确定是内存耗尽。

第二步,检查 systemd/journalctl 日志。如果进程由 systemd 管理,日志会记录终止原因和收到的信号。

第三步,检查进程退出码。如果是 137 说明收到 SIGKILL,128+信号编号。如果是 0 说明正常退出。

第四步,检查审计日志ausearch。如果配置了 auditd,可以看到是谁执行了 kill 命令。

第五步,检查进程收到的信号。cat /proc/PID/status 可以看到进程的信号掩码。

第六步,分析资源使用。内存、CPU、文件描述符、进程数是否达到限制。

第七步,检查网络和存储。进程可能因为依赖的服务不可用而主动退出。

13. 总结

进程消失的排查没有万能公式,需要根据信号来源、资源状态、系统日志一步步缩小范围。

OOM Killer 是最常见的原因,表现为 dmesg 中有记录,退出码通常是 137。systemd 超时杀死次之,表现为日志中有 TimeoutStopSec 记录。cgroup 限制在容器化环境中常见,exit code 也是 137。

建立预防机制比事后排查更重要:合理的资源限制、足够的监控告警、适当的 OOMScoreAdjust 配置,可以大大减少进程莫名消失的情况发生。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 17:55:33 HTTP/2.0 GET : https://f.mffb.com.cn/a/486930.html
  2. 运行时间 : 0.637431s [ 吞吐率:1.57req/s ] 内存消耗:5,158.79kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=a6fbcdda0ecb0bff41f5807714cf3e63
  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.000865s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000847s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.011259s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.021814s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001945s ]
  6. SELECT * FROM `set` [ RunTime:0.001317s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001652s ]
  8. SELECT * FROM `article` WHERE `id` = 486930 LIMIT 1 [ RunTime:0.023600s ]
  9. UPDATE `article` SET `lasttime` = 1783072533 WHERE `id` = 486930 [ RunTime:0.015260s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000941s ]
  11. SELECT * FROM `article` WHERE `id` < 486930 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.024097s ]
  12. SELECT * FROM `article` WHERE `id` > 486930 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.046977s ]
  13. SELECT * FROM `article` WHERE `id` < 486930 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.048584s ]
  14. SELECT * FROM `article` WHERE `id` < 486930 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.061780s ]
  15. SELECT * FROM `article` WHERE `id` < 486930 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.213736s ]
0.640011s