当前位置:首页>Linux>Linux系统内存爆满?教你一眼识别是泄漏还是正常使用?

Linux系统内存爆满?教你一眼识别是泄漏还是正常使用?

  • 2026-02-08 00:18:47
Linux系统内存爆满?教你一眼识别是泄漏还是正常使用?
"完了,服务器内存又爆了!"——这可能是每个开发人员最不愿看到的场景之一。

那种感觉,就像是你家突然来了一堆不速之客,把所有空间都占得满满当当,让你无从下手。。

一、内存泄漏与正常高占用的核心区别

在深入排查之前,我们得先把内存泄漏和正常高内存占用这两个概念搞清楚,它们虽然都会让内存使用率看起来很高,但本质上可是大不相同。

1.1 内存泄漏

内存泄漏,简单来说,就是程序在动态分配内存后,没有释放那些不再使用的内存空间 ,导致这部分内存被永久占用,就像你在餐厅占了个座位,吃完了也不离开,后面的人就没地方坐了。在 Linux 系统里,这可是个大麻烦,会让系统的可用内存越来越少,最后可能导致系统崩溃或者程序异常退出。

在 C/C++ 语言中,这种情况尤为常见。比如下面这段简单的 C 代码:

#include<stdio.h>#include<stdlib.h>voidmemory_leak_example(){    int *ptr = (int *)malloc(100 * sizeof(int));    // 这里本应该在不再使用ptr时调用free(ptr)来释放内存,但代码中遗漏了这一步}intmain(){    for (int i = 0; i < 1000; i++) {        memory_leak_example();    }    return 0;}

memory_leak_example函数中,使用malloc分配了一块能容纳 100 个整数的内存空间,但是函数结束时没有调用free释放这块内存。每次调用memory_leak_example,都会有新的内存块被分配且无法回收。在main函数中,循环调用这个函数 1000 次,内存泄漏就会不断累积,最终耗尽系统资源。

再比如,在一个网络服务器程序中,如果每次处理客户端连接时都分配一些内存用于存储连接信息,但在客户端断开连接后没有释放这些内存,随着连接的不断建立和断开,内存泄漏会越来越严重,服务器的性能也会逐渐下降,甚至可能无法再接受新的连接。

1.2 正常高占用

Linux 系统有时候会出现内存占用很高的情况,但这并不一定是坏事,很多时候是系统在 “精打细算” 地利用内存来提高整体性能。

常见的正常高内存占用场景,就是系统把内存用作buff/cachebuff主要用于块设备(如磁盘)的 I/O 操作,作为缓冲区;cache则主要用于缓存文件系统中的文件数据 。当你频繁读取磁盘上的文件时,系统会把这些文件数据缓存到内存中,这样下次再读取相同文件时,就可以直接从内存中获取,大大提高了读取速度。这就好比你把常用的东西放在手边,下次用的时候就能快速拿到。

比如你在服务器上搭建了一个文件存储系统,用户经常上传和下载文件。当用户下载文件时,文件数据会先被读取到cache中,如果其他用户紧接着下载相同的文件,系统就可以直接从cache中读取数据并发送给用户,而不需要再次从磁盘读取,这大大减轻了磁盘 I/O 的压力。

再比如数据库(如 MySQL)和缓存服务(如 Redis),它们也会占用大量内存 。MySQL 的innodb_buffer_pool_size参数可以配置 InnoDB 存储引擎用于缓存数据和索引的内存大小,合理增大这个值可以提高数据库的读写性能。Redis 更是几乎完全基于内存运行,它会把数据全部存储在内存中,通过高效的内存管理和数据结构来实现快速的数据读写操作。这些服务占用的内存都是为了提高自身的运行效率,只要它们的内存使用在合理范围内,并且系统在需要时能够回收这部分内存,就属于正常的高内存占用。

而且,Linux 内核有一套成熟的内存管理机制,比如 LRU(Least Recently Used,最近最少使用)算法 。这个算法会把内存中的页面(内存的基本单位)分为活跃页面和非活跃页面,当系统内存不足时,会优先回收非活跃页面,也就是那些最近最少被访问的页面。这就像你整理房间时,会先把那些很久都没用过的东西清理掉。

此外,如果我们确实需要释放一些buff/cache占用的内存,也可以通过一些命令来手动清理,比如echo 1 > /proc/sys/vm/drop_caches(清理页面缓存)、echo 2 > /proc/sys/vm/drop_caches(清理目录项和 inode 缓存)、echo 3 > /proc/sys/vm/drop_caches(清理页面缓存、目录项和 inode 缓存) 。不过,在生产环境中使用这些命令要谨慎,因为清理缓存可能会影响系统的短期性能,后续再访问被清理缓存的数据时,可能需要重新从磁盘读取,导致 I/O 操作增加。

二、实操 3 步:从系统到进程,精准区分

了解了内存泄漏和正常高占用的区别后,接下来就是实战环节了。

当我们发现 Linux 内存被吃满时,该如何一步步排查到底是哪种情况呢?

这里我给大家总结了一个简单有效的 3 步诊断法,按照这个步骤来,保准能让你快速找到问题所在。

2.1 第一步:看整体内存状态

要查看系统的整体内存状态,最常用的命令就是free 。这个命令会显示系统的物理内存、交换空间(swap)以及缓冲区和缓存的使用情况 。

不过,很多人在看free命令的输出时,容易犯一个错误,就是只关注free列,认为这就是系统可用的内存。其实,这是不准确的。

$ free -h              total        used        free      shared  buff/cache   availableMem:           15Gi       3.7Gi       387Mi       113Mi        11Gi        11GiSwap:          7.8Gi          0B       7.8Gi

在这个输出中,total是系统内存总量,used是已使用的内存,free是未被任何程序使用的内存,shared是多个进程共享的内存,buff/cache是用于缓冲区和缓存的内存 ,而available才是真正能被新进程使用的内存,它包含了可回收的buff/cache内存。

比如,当你看到buff/cache占用很高,但available也很充足时,这大概率是正常的缓存占用,说明系统在合理利用内存来提高 I/O 性能 。但如果buff/cache高,而available却很低,那就要小心了,这可能意味着系统内存真的很紧张,或者存在内存泄漏的情况,需要进一步排查。

2.2 第二步:手动清理缓存 

如果第一步中发现buff/cache占用过高,我们可以通过手动清理缓存来进一步判断内存占用是否正常。

在 Linux 中,清理缓存可以通过向/proc/sys/vm/drop_caches文件写入特定的值来实现 。

具体操作如下:

# 先同步数据到磁盘,防止数据丢失$ sync# 清理页面缓存$ echo 1 > /proc/sys/vm/drop_caches# 清理目录项和inode缓存$ echo 2 > /proc/sys/vm/drop_caches# 清理所有缓存(页面缓存、目录项和inode缓存)$ echo 3 > /proc/sys/vm/drop_caches

需要注意的是,在执行这些操作之前,一定要先执行sync命令,将所有未写入磁盘的数据同步到磁盘,防止数据丢失 。而且,这些操作需要 root 权限 。

清理缓存后,我们再用free命令查看内存使用情况 。如果available内存明显回升,那就说明之前的高内存占用是正常的缓存导致的;但如果清理后内存没有明显变化,那大概率是内存泄漏了,需要继续下一步排查。

2.3 第三步:盯进程内存趋势 

如果经过前两步的排查,怀疑存在内存泄漏,那接下来就要深入到进程层面,找出是哪个进程在 “搞鬼”。

这里我们可以使用top命令(按Shift+M可以按内存使用率降序排列进程 )或者htop工具(一个更直观的交互式进程查看工具 )。在这些工具的输出中,重点关注进程的RES(Resident Size,常驻物理内存 )指标,它表示进程实际占用的物理内存大小。

# 启动top命令,按Shift+M按内存使用率排序$ top# 或者安装并启动htop$ sudo apt install htop  # Debian/Ubuntu系统$ sudo yum install htop  # CentOS/RHEL系统$ htop

如果发现某个特定进程的RES随着时间持续增长,而且即使业务负载降低了,它的内存占用也不回落,那这个进程很可能存在内存泄漏 。比如一个 Java 应用程序,正常情况下,随着业务量的变化,它的内存占用应该在一个合理的范围内波动 。但如果它的RES一直往上涨,那就有问题了,可能是程序中存在内存泄漏的代码,比如对象创建后没有正确释放,或者缓存没有设置过期策略等。

相反,如果进程的内存占用比较稳定,而且与业务压力呈正相关,比如数据库进程随着数据量的增加,内存占用也相应增加,那这就是正常的内存占用,说明该进程是根据业务需求合理使用内存 。

三、精准找到泄漏源头

经过前面的步骤,我们基本能判断出内存是泄漏还是正常占用了。但如果真的确定是内存泄漏,该怎么进一步找到泄漏的源头呢?这就需要一些进阶工具来帮忙了。

下面我给大家介绍几个在不同场景下非常好用的工具,让你从 “定性” 判断直接升级到 “定位” 问题根源。

3.1 用户态程序泄漏检测

对于 C/C++ 这类手动管理内存的程序来说,内存泄漏是个很常见的问题 。这时候,Valgrind 就派上用场了。Valgrind 是一个功能非常强大的内存调试、内存泄漏检测以及性能分析工具 ,它就像一个 “内存警察”,时刻盯着程序的内存使用情况。

安装 Valgrind 很简单,在 Debian/Ubuntu 系统上,你可以用sudo apt-get install valgrind来安装 ;在 CentOS/RHEL 系统上,则可以用sudo yum install valgrind 。安装好后,使用起来也不复杂,假设你有一个编译好的可执行文件test,运行下面这个命令就能检测内存泄漏:

valgrind --leak-check=full./test

--leak-check=full这个参数表示开启全面的内存泄漏检测 。运行后,Valgrind 会输出详细的报告,告诉你程序中哪些地方可能存在内存泄漏,包括泄漏的内存块大小、调用路径等信息 。比如,报告中可能会显示类似这样的信息:

==1234== 1024 bytes in 1 blocks are definitely lost in loss record 1 of 1==1234==    at 0x4C2DB8Fmalloc (vg_replace_malloc.c:309)==1234==    by 0x400632main (test.c:5)

这就说明在test.c文件的第 5 行,调用malloc分配的 1024 字节内存没有被释放,导致了内存泄漏 。

不过,Valgrind 也有个小缺点,就是它会让程序运行得非常慢 ,因为它要对程序的每一个内存操作进行监控 。所以,一般建议在开发或者测试环境中使用它。

除了 Valgrind,pmap命令也能帮我们查看进程的内存映射情况 。当我们怀疑某个进程存在内存泄漏时,可以先用ps命令找到它的进程 ID(PID) ,然后用pmap查看它的内存映射详情:

$ ps -ef | grep test  # 找到test程序的进程ID,假设是1234$ pmap 1234

pmap的输出会显示进程的每一个内存段的起始地址、大小、权限以及对应的文件或库 。通过分析这些信息,我们可以发现一些异常占用的内存段,进一步定位内存泄漏的位置 。比如,如果看到有一个内存段的大小在不断增长,而且没有对应的文件或库,那就很有可能是这个内存段存在泄漏 。

3.2 内核态泄漏排查

如果怀疑是内核层的内存泄漏,那排查起来就稍微复杂一些了 。

不过,我们可以借助slabtop/proc/meminfo这两个工具来帮忙。

/proc/meminfo是一个虚拟文件,它提供了系统内存使用情况的详细统计信息 。我们可以通过查看其中的SlabSReclaimableSUnreclaim等指标来判断是否存在内核内存泄漏 。其中,Slab表示内核对象缓存所占用的内存 ,SReclaimable是可回收的部分,SUnreclaim则是不可回收的部分 。如果SUnreclaimSlab的比例过高,而且随着时间不断增长,那就很有可能存在内核对象没有被正确释放,导致内存泄漏 。

$ cat /proc/meminfo | grep -E "Slab|SReclaimable|SUnreclaim"Slab:            123456 kBSReclaimable:     23456 kBSUnreclaim:       99999 kB

从这个输出可以看到,SUnreclaim的占比比较高,需要进一步排查 。

slabtop命令则可以实时显示内核 “slab” 缓冲区的详细信息 ,它就像一个放大镜,能让我们更清楚地看到内核缓存的使用情况 。运行slabtop -o-o表示只显示活跃缓存 ),然后按Shift + P可以按缓存大小排序 ,重点关注那些名字中含有dentryinode 、sockbuffer_headsize-4096等字样的项 。如果这些项对应的ACTIVE列(活跃对象数 )远高于OBJS列(对象总数 ),或者反复刷新时ACTIVE列持续增长,那就说明这些内核缓存中的对象可能没有被正确释放,存在内存泄漏的嫌疑 。

$ sudo slabtop -o# 按Shift + P按大小排序后,部分输出如下# NAME            OBJS ACTIVE  USE OBJ SIZE  SLABS OBJ/SLAB CACHE SIZE  NAME# dentry          1000   800 80%    4096     20       50      81920  dentry# inode_cache      500   400 80%    8192     10       50      81920  inode_cache

这里dentryinode_cacheACTIVE列都比较高,就需要重点关注 。

四、避坑指南

在排查 Linux 内存问题时,很多人都会陷入一些认知误区,这些误区不仅会浪费我们大量的时间和精力,还可能导致错误的判断和处理方式。下面我就给大家盘点一下 3 个最常见的误区,帮你避避雷。

4.1 误区 1:把 buff/cache 高当成内存泄漏

很多人在看到free命令输出中buff/cache占用很高时,就会紧张地以为是内存泄漏了,其实这是一个典型的误区。在 Linux 系统中,buff/cache高并不意味着内存有问题,反而是系统在高效利用内存的表现。

正如前面提到的,buff主要用于块设备 I/O 操作的缓冲,cache用于缓存文件系统中的文件数据 。当系统频繁读写磁盘文件时,这些数据就会被缓存到buff/cache中,以提高后续读写的速度。这就好比你把常用的工具放在手边,下次使用时就能快速拿到,大大提高了工作效率。所以,buff/cache占用高是 Linux 提升 I/O 性能的核心机制,只要available内存充足,系统运行正常,就不需要担心。

而且,buff/cache中的内存是可回收的 。当系统真正需要内存时,内核会根据 LRU 算法,优先回收那些最近最少使用的缓存页面 。比如,当有新的进程需要内存时,系统会检查buff/cache中的缓存数据,如果某些数据已经长时间没有被访问,就会把它们从内存中移除,释放出空间给新进程使用 。所以,不能仅仅因为buff/cache高就判断为内存泄漏,一定要结合available内存以及系统的整体运行情况来综合判断。

4.2 误区 2:只看瞬时内存状态,忽略趋势分析

还有一个常见的误区,就是只看单次查看的内存数据,以此来判断是否存在内存泄漏 。内存使用情况是动态变化的,单次的数据并不能说明问题。比如,某个进程在处理一个大任务时,可能会在短时间内占用大量内存,但任务完成后,内存占用就会降下来,这是正常的业务波动 。

要准确判断内存是否泄漏,关键是要监控内存的变化趋势 。我们可以通过tophtop等命令持续观察某个进程的内存占用情况 。如果这个进程的内存占用随着时间持续增长,而且在业务负载稳定甚至降低的情况下也不回落,那才有可能是内存泄漏 。比如,一个 Web 服务器进程,正常情况下,随着用户请求的增加和减少,它的内存占用应该在一个合理的范围内波动 。但如果发现它的内存占用一直在上升,即使在用户访问量很少的时候也是如此,那就需要警惕内存泄漏的可能性了 。

相反,如果进程的内存占用虽然在某一时刻很高,但随着业务的变化,它能稳定在一个合理的区间内,那就是正常的内存使用 。所以,在排查内存问题时,一定要有动态分析的思维,关注内存使用的趋势,而不是仅仅依赖单次的内存数据。

4.3 误区 3:混淆虚拟内存(VSZ)与物理内存(RSS)

在查看进程内存占用时,很多人会混淆虚拟内存(VSZ,Virtual Memory Size)和物理内存(RSS,Resident Set Size) ,这也是一个容易踩坑的地方。

VSZ 是进程可访问的虚拟地址空间总量 ,它包括了进程已经分配但还没有实际使用的内存(比如通过malloc申请但未初始化的内存 )、共享库、内存映射文件等 。简单来说,VSZ 就像是你预订的酒店房间总面积,包括了你可能会使用的所有空间,但不一定都被实际占用 。而 RSS 是进程实际占用的物理内存大小 ,也就是进程真正 “住进去” 的那部分空间,它包含了栈、堆、已加载到内存的共享库等 。

举个例子,当你启动一个进程时,它可能会预分配一些内存空间(计入 VSZ) ,但在实际运行过程中,可能只使用了其中的一部分(计入 RSS) 。比如,一个进程通过malloc申请了 1GB 的内存,但在某一时刻只使用了 100MB,那么 VSZ 会显示为 1GB 左右(加上其他内存开销 ),而 RSS 可能只有 100MB 多一点(加上进程运行所需的其他物理内存 )。所以,VSZ 数值高并不代表进程真实的内存占用高,在排查内存问题时,我们应该优先关注 RSS 。如果只看 VSZ,很容易被虚高的数值误导,以为进程占用了大量内存,而实际上它可能并没有真正使用那么多物理内存 。

五、总结与应急方案

5.1 诊断流程总结

为了让大家更清晰地掌握内存问题的诊断方法,我把前面的核心步骤整理成了一张表格,方便对比内存泄漏和正常占用的特征以及对应的检测方法。

判断维度内存泄漏正常高占用
内存特征随着时间推移,可用内存持续减少,进程占用内存不释放buff/cache占用高,但available内存充足,内存占用与业务负载呈正相关
系统层面检测free命令查看,available内存持续降低;swap频繁使用free命令查看,buff/cache高,available也高;清理缓存后available内存明显回升
进程层面检测特定进程RES持续增长,业务负载降低内存不回落进程内存占用稳定,与业务压力正相关,如数据库随数据量增加内存合理增长
检测工具Valgrind(用户态程序)、slabtop+/proc/meminfo(内核态)freetophtop等常规工具查看内存和进程状态

5.2 应急处理建议:不同场景的解决方案

当我们确定了内存问题的性质后,就需要根据不同的情况采取相应的应急处理措施。

如果是正常的缓存占用,一般不需要特殊处理,因为这是系统在优化性能。但如果因为业务需求,希望调整系统的缓存策略,可以通过修改内核参数来实现。比如,降低vm.swappiness的值(取值范围是 0 - 100,默认 60 ),可以减少系统使用交换空间的倾向,让系统更倾向于使用物理内存。修改方法如下:

# 临时生效(重启后失效)sudo sysctl -w vm.swappiness=10# 永久生效:修改/etc/sysctl.conf,添加或修改vm.swappiness=10,然后执行sysctl -p

不过要注意,如果物理内存确实不足,调低swappiness可能会导致 OOM(Out Of Memory,内存不足)情况更频繁出现,所以要结合实际情况谨慎调整 。

要是确定是内存泄漏,临时应急的方法是重启出现内存泄漏的可疑进程或服务,这样可以释放被泄漏占用的内存,避免系统因为内存耗尽而崩溃 。但这只是治标不治本的方法,要彻底解决问题,还是得结合前面提到的工具,如 Valgrind(针对 C/C++ 程序 ),深入代码层面定位内存泄漏的具体位置。比如在 C/C++ 程序中,可能是忘记了释放mallocnew分配的内存,找到这些代码后,补充freedelete操作来释放内存 。

当然,本文介绍的方法和工具适用于大多数常见场景。但如果遇到特别复杂的内核内存泄漏问题,可能还需要进一步探讨使用kmemleakpage owner等更高级的内核调试工具。感兴趣的小伙伴也可以自行研究一下,有问题咱们也可以在评论区讨论 。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-02-08 18:01:46 HTTP/2.0 GET : https://f.mffb.com.cn/a/463370.html
  2. 运行时间 : 0.124586s [ 吞吐率:8.03req/s ] 内存消耗:4,614.94kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=3f21b0d9665f129756ee11eee1951e1e
  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.000981s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001524s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000634s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000620s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001362s ]
  6. SELECT * FROM `set` [ RunTime:0.000564s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001466s ]
  8. SELECT * FROM `article` WHERE `id` = 463370 LIMIT 1 [ RunTime:0.001127s ]
  9. UPDATE `article` SET `lasttime` = 1770544906 WHERE `id` = 463370 [ RunTime:0.017821s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000655s ]
  11. SELECT * FROM `article` WHERE `id` < 463370 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001111s ]
  12. SELECT * FROM `article` WHERE `id` > 463370 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000982s ]
  13. SELECT * FROM `article` WHERE `id` < 463370 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.004261s ]
  14. SELECT * FROM `article` WHERE `id` < 463370 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001921s ]
  15. SELECT * FROM `article` WHERE `id` < 463370 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001765s ]
0.128422s