当前位置:首页>Linux>Linux系统性能瓶颈定位:CPU、内存、磁盘IO全面诊断

Linux系统性能瓶颈定位:CPU、内存、磁盘IO全面诊断

  • 2026-02-03 03:15:46
Linux系统性能瓶颈定位:CPU、内存、磁盘IO全面诊断

一、概述

1.1 背景介绍

在实际生产环境中,系统性能问题往往来得突然又难以定位。某天下午,你可能会接到告警:电商平台响应时间从平时的200ms突然飙升到2秒,用户投诉激增,运营团队焦急万分。这时候,如何快速准确地找到性能瓶颈,就成了运维工程师的核心能力。

性能问题的表现形式多种多样:应用响应缓慢、页面加载卡顿、API接口超时、数据库查询变慢等等。但归根结底,这些问题通常源于三大系统资源的瓶颈:CPU、内存、磁盘IO

很多时候,我们容易陷入"头痛医头、脚痛医脚"的误区。看到CPU使用率高就加CPU,看到内存不足就加内存,结果钱花了不少,问题依然存在。实际上,性能优化需要系统化的诊断方法,要理解各个资源之间的关联关系。比如,磁盘IO慢可能导致进程等待,进而引发CPU的iowait升高;内存不足会触发频繁的页面交换,同样会拖累磁盘IO性能。

本文将介绍一套完整的性能诊断方法论,从整体到局部,从现象到本质,帮助你快速定位系统瓶颈。这套方法基于Linux系统自带的工具,无需额外安装复杂的监控系统,就能在生产环境中快速排查问题。

1.2 技术特点

  • 系统化诊断流程:采用"自顶向下"的分析思路,先看整体资源使用情况,再深入到具体进程和线程。避免盲目优化,确保每一步都有数据支撑。通过建立性能基线,对比历史数据,能够快速识别异常波动。

  • 多维度性能指标:不仅仅关注CPU使用率、内存占用这些表面指标,更要深入分析上下文切换、缓存命中率、IO等待时间等深层指标。这些指标往往能揭示性能问题的真正原因。比如,CPU使用率只有50%,但上下文切换频率极高,说明存在严重的线程竞争问题。

  • 工具链完整实用:Linux系统内置了一整套性能分析工具(top、vmstat、iostat、mpstat、pidstat等),这些工具经过多年验证,稳定可靠。掌握这些工具的使用方法,就能应对90%以上的性能问题。更重要的是,这些工具开销很小,可以在生产环境中放心使用。

1.3 适用场景

  • 场景一:Web应用服务器性能优化典型表现是高并发时响应时间显著增加。比如电商平台在促销活动期间,用户访问量激增,服务器CPU使用率飙升到90%以上,大量请求超时。通过诊断发现,问题可能出在应用线程池配置不合理,导致频繁的上下文切换;也可能是某个接口存在性能问题,占用了大量CPU资源。诊断重点包括:CPU各核心的使用分布、进程和线程的CPU占用、系统调用开销、上下文切换频率等。优化方向可能是调整线程池大小、优化代码逻辑、增加缓存、或者进行水平扩展。

  • 场景二:数据库服务器瓶颈定位数据库是很多系统的核心,一旦出现性能问题,影响面会非常大。常见表现是查询变慢、事务堆积、连接数打满。通过诊断可能发现:磁盘IO性能不足,大量慢查询导致磁盘读写压力大;内存配置不当,缓冲池太小导致缓存命中率低;或者是CPU瓶颈,复杂查询消耗大量计算资源。诊断重点包括:磁盘IO的吞吐量和延迟、内存缓冲池的使用情况、慢查询日志分析、锁等待情况等。优化方向可能是添加索引、优化查询语句、调整数据库配置参数、升级硬件(特别是使用SSD替换机械硬盘)。

  • 场景三:批处理任务性能分析很多企业都有定时运行的批处理任务,比如数据同步、报表生成、日志分析等。这类任务的特点是运行时间长、资源占用集中。如果任务执行时间从原来的1小时增加到4小时,就需要分析是哪个环节出了问题。可能是CPU密集型任务(如数据计算、加密解密),也可能是IO密集型任务(如大文件读写、数据库批量插入)。诊断重点包括:任务的资源使用特征、是否存在资源竞争、磁盘IO模式(顺序读写还是随机读写)等。优化方向可能是并行处理、调整IO调度策略、使用更快的存储设备、或者优化算法减少计算量。

1.4 环境要求

组件
版本要求
说明
操作系统
CentOS 7+/Ubuntu 18.04+/Debian 10+
需要支持systemd和现代Linux内核特性
内核版本
Linux 4.4+
较新的内核提供了更完善的性能监控接口
sysstat工具包
11.0+
包含iostat、mpstat、pidstat等核心工具
权限要求
root或sudo权限
部分诊断命令需要提升权限才能查看完整信息
硬件配置
无特殊要求
本文方法适用于任何规模的Linux系统

二、详细步骤

2.1 准备工作

2.1.1 系统检查

在开始性能诊断之前,需要先了解系统的基本配置信息,建立一个清晰的认知基础。

# 查看系统版本和内核信息cat /etc/os-releaseuname -a# 查看CPU信息lscpunproc  # 快速查看CPU核心数# 查看内存信息free -hcat /proc/meminfo | head -20# 查看磁盘信息df -hlsblk

说明:这些命令帮助我们了解硬件配置的基本情况。比如,一个8核16G内存的服务器和一个2核4G的服务器,性能诊断的关注点会有很大不同。CPU核心数决定了系统的并行处理能力,内存大小影响缓存策略,磁盘类型(SSD还是HDD)直接关系到IO性能。

2.1.2 安装依赖工具

大部分Linux发行版默认已经安装了基础的性能工具,但sysstat包可能需要手动安装。

# Ubuntu/Debian系统sudo apt updatesudo apt install -y sysstat# CentOS/RHEL系统sudo yum install -y sysstat# 验证安装iostat -Vmpstat -Vpidstat -V

工具说明

  • top/htop:实时查看进程资源占用,系统自带
  • vmstat:虚拟内存统计,查看系统整体性能
  • iostat:磁盘IO性能分析,来自sysstat包
  • mpstat:多处理器统计,分析每个CPU核心的使用情况
  • pidstat:进程级性能统计,精确定位问题进程

这些工具的共同特点是:轻量级、开销小、输出直观。在生产环境中使用不会对系统造成明显影响。

2.2 CPU性能诊断

2.2.1 快速查看CPU整体状况

当接到性能告警时,第一步是快速了解CPU的整体使用情况。

# 使用top查看实时CPU使用情况top# 或者使用uptime查看系统负载uptime# 查看CPU平均负载cat /proc/loadavg

输出示例

top - 14:23:15 up 45 days,  3:21,  2 users,  load average: 4.52, 3.89, 2.76Tasks: 245 total,   3 running, 242 sleeping,   0 stopped,   0 zombie%Cpu(s): 78.5 us, 12.3 sy,  0.0 ni,  5.2 id,  3.8 wa,  0.0 hi,  0.2 si,  0.0 st

关键指标解读

  • load average:系统平均负载,三个数字分别代表1分钟、5分钟、15分钟的平均值。一般来说,负载值不应超过CPU核心数。如果是8核CPU,负载长期超过8就需要关注了。
  • us(user):用户空间CPU使用率,应用程序消耗的CPU
  • sy(system):内核空间CPU使用率,系统调用消耗的CPU
  • id(idle):空闲CPU百分比
  • wa(iowait):等待IO的CPU时间,这个值高说明磁盘IO可能是瓶颈

实战经验:如果看到iowait超过20%,基本可以判断是磁盘IO问题,而不是CPU计算能力不足。这时候继续优化CPU是没用的,应该转向磁盘IO诊断。

2.2.2 查看每个CPU核心的使用情况

现代服务器都是多核CPU,有时候会出现负载不均衡的情况,某些核心跑满了,其他核心却很空闲。

# 查看每个CPU核心的使用率mpstat -P ALL 1 5# 或者使用top然后按1键查看各核心情况

输出示例

14:25:30     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle14:25:31     all   45.23    0.00   10.52    2.15    0.00    0.25    0.00    0.00    0.00   41.8514:25:31       0   89.00    0.00   11.00    0.00    0.00    0.00    0.00    0.00    0.00    0.0014:25:31       1   42.00    0.00    8.00    5.00    0.00    1.00    0.00    0.00    0.00   44.0014:25:31       2   38.00    0.00   12.00    3.00    0.00    0.00    0.00    0.00    0.00   47.0014:25:31       3   12.00    0.00    5.00    1.00    0.00    0.00    0.00    0.00    0.00   82.00

分析要点:上面的例子中,CPU 0的使用率达到89%,而CPU 3只有18%,说明负载分布不均。这可能是因为:

  • 应用程序是单线程的,无法利用多核
  • 进程CPU亲和性设置不当,绑定到了特定核心
  • 某个进程占用了大量CPU资源

2.2.3 定位高CPU占用的进程

找到了CPU使用率高,下一步就是定位具体是哪个进程在消耗CPU。

# 使用top查看进程CPU占用,按P键按CPU排序top# 或者使用ps命令ps aux --sort=-%cpu | head -10# 使用pidstat查看进程CPU使用情况(推荐)pidstat -u 1 5

pidstat输出示例

14:30:15      UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command14:30:16        0      1234   85.00   10.00    0.00    0.00   95.00     0  java14:30:16     1000      5678   12.00    3.00    0.00    0.00   15.00     1  nginx14:30:16        0      9012    8.00    2.00    0.00    0.00   10.00     2  mysqld

说明:从上面可以看到,PID为1234的java进程占用了95%的CPU,这就是需要重点关注的对象。

2.2.4 分析上下文切换

CPU使用率不高,但系统响应慢?可能是上下文切换过于频繁。

# 使用vmstat查看上下文切换vmstat 1 5# 查看每个进程的上下文切换情况pidstat -w 1 5

vmstat输出示例

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st 4  0      0 512340  89532 1024576    0    0     2    15 2500 45000 45 10 43  2  0

关键指标

  • cs(context switch):每秒上下文切换次数。正常情况下几千到一万次,如果超过5万次就需要关注
  • in(interrupts):每秒中断次数

实战案例:某电商平台在促销期间,应用响应变慢,CPU使用率只有60%。通过vmstat发现cs值达到8万次/秒,远超正常水平。进一步排查发现是应用线程池配置过大(500个线程),导致大量线程竞争CPU,频繁切换。将线程池调整为100后,上下文切换降到2万次/秒,响应时间恢复正常。

2.3 内存性能诊断

2.3.1 查看内存使用概况

内存问题往往比CPU问题更隐蔽,但影响更严重。一旦内存不足触发swap,系统性能会断崖式下降。

# 查看内存使用情况free -h# 查看详细内存信息cat /proc/meminfo | head -30# 使用vmstat查看内存和swap情况vmstat 1 5

free命令输出示例

              total        used        free      shared  buff/cache   availableMem:           15Gi       8.2Gi       1.5Gi       256Mi       5.8Gi       6.5GiSwap:         2.0Gi       512Mi       1.5Gi

关键指标解读

  • total:总内存大小
  • used:已使用内存(不包括buff/cache)
  • free:完全空闲的内存
  • buff/cache:用于缓冲和缓存的内存,可以被回收
  • available真正可用的内存,这是最重要的指标
  • Swap used:交换分区使用量,如果这个值不为0,说明内存已经不够用了

重要提示:很多人看到used很高就以为内存不足,其实不然。Linux会尽可能利用空闲内存做缓存,这是正常的。真正需要关注的是available这一列,只要这个值足够大,系统就不会有内存压力。

2.3.2 识别内存泄漏

内存泄漏是Web应用常见的问题,表现为内存使用持续增长,最终导致OOM(Out of Memory)。

# 查看进程内存占用排序ps aux --sort=-%mem | head -10# 使用pidstat查看进程内存使用pidstat -r 1 5# 查看进程的详细内存映射pmap -x <PID>

pidstat输出示例

14:45:20      UID       PID  minflt/s  majflt/s     VSZ      RSS   %MEM  Command14:45:21        0      1234    125.00      0.00 8192000  4096000  25.60  java14:45:21     1000      5678     45.00      0.00 2048000   512000   3.20  nginx

关键指标

  • VSZ:虚拟内存大小,进程申请的总内存
  • RSS:实际物理内存占用,这是真正消耗的内存
  • %MEM:内存占用百分比
  • minflt/s:每秒次缺页错误(minor page fault),从缓存中加载页面
  • majflt/s:每秒主缺页错误(major page fault),需要从磁盘加载,这个值高说明内存不足

诊断内存泄漏的方法

# 持续监控某个进程的内存使用watch -n 5 "ps aux | grep java | grep -v grep"# 或者使用脚本记录内存变化whiletruedo    date >> mem_monitor.log    ps aux | grep java | grep -v grep >> mem_monitor.log    sleep 60done

如果发现RSS持续增长,几个小时内从2G涨到8G,基本可以确定存在内存泄漏。

2.3.3 监控页面交换(Swap)

Swap是内存不足时的救命稻草,但也是性能杀手。一旦开始频繁swap,系统性能会急剧下降。

# 查看swap使用情况free -h | grep Swap# 使用vmstat监控swap活动vmstat 1 10# 查看哪些进程在使用swapfor file in /proc/*/status; do    awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}'$filedone | sort -k 2 -n -r | head -10

vmstat关键指标

procs -----------memory---------- ---swap-- -----io---- r  b   swpd   free   buff  cache   si   so    bi    bo 2  1 524288 102400  45120 512000  120  250    50   100
  • si(swap in):每秒从swap读入内存的数据量(KB)
  • so(swap out):每秒从内存写入swap的数据量(KB)

判断标准:如果si和so的值持续不为0,说明系统在频繁进行页面交换,这是严重的性能问题信号。

实战案例:某社交平台的应用服务器,用户反馈页面加载极慢。通过free命令发现swap使用了1.5G,vmstat显示si和so值分别为200和150。进一步排查发现是Java应用的堆内存配置过大(-Xmx12G),而服务器总内存只有16G,导致系统内存不足。将堆内存调整为8G后,swap使用降为0,页面响应恢复正常。

2.4 磁盘IO性能诊断

2.4.1 查看磁盘IO整体状况

磁盘IO是很多性能问题的根源,特别是使用机械硬盘的服务器。

# 查看磁盘IO统计iostat -x 1 5# 查看磁盘使用情况df -h# 查看磁盘分区信息lsblk

iostat输出示例

Device            r/s     w/s     rkB/s     wkB/s   await  %utilsda             45.20   120.50   1024.00   4096.00   25.30  85.60sdb              2.10     5.30     64.00    128.00    5.20  12.40

关键指标解读

  • r/s:每秒读操作次数
  • w/s:每秒写操作次数
  • rkB/s:每秒读取的数据量(KB)
  • wkB/s:每秒写入的数据量(KB)
  • await:平均IO等待时间(毫秒),这是最关键的指标
  • %util:磁盘使用率,接近100%说明磁盘已经饱和

判断标准

  • await < 10ms:性能良好(SSD)
  • await 10-20ms:可以接受
  • await > 50ms:存在明显IO瓶颈
  • %util > 80%:磁盘接近饱和

2.4.2 定位高IO进程

找到磁盘IO瓶颈后,需要定位是哪个进程在进行大量IO操作。

# 使用pidstat查看进程IO情况pidstat -d 1 5# 使用iotop实时查看进程IO(需要安装)sudo iotop -o# 查看进程打开的文件lsof -p <PID>

pidstat输出示例

15:10:20      UID       PID   kB_rd/s   kB_wr/s  Command15:10:21        0      1234      0.00   8192.00  java15:10:21      999      5678   2048.00    512.00  mysqld

说明:从上面可以看到,PID 1234的java进程每秒写入8MB数据,这可能是日志写入或数据持久化操作。

2.4.3 分析IO模式

不同的IO模式对性能影响差异很大。顺序IO性能远高于随机IO。

# 查看IO调度器cat /sys/block/sda/queue/scheduler# 查看磁盘队列深度cat /sys/block/sda/queue/nr_requests# 使用iostat查看详细IO统计iostat -x -d 1 5

实战案例:某内容平台的静态资源服务器,用户反馈图片加载缓慢。通过iostat发现sda的await达到120ms,%util为95%。使用pidstat定位到nginx进程IO很高。进一步分析发现是大量小文件的随机读取导致磁盘IO瓶颈。解决方案是:1)将静态资源迁移到SSD;2)启用nginx的open_file_cache缓存文件句柄;3)使用CDN分流。优化后await降到15ms,页面加载速度提升5倍。


三、示例代码和配置

3.1 完整诊断脚本

3.1.1 一键性能诊断脚本

这个脚本可以快速收集系统的CPU、内存、磁盘IO等关键性能指标。

#!/bin/bash# 文件名:perf_check.sh# 功能:系统性能快速诊断工具echo"========================================="echo"系统性能诊断报告"echo"时间:$(date '+%Y-%m-%d %H:%M:%S')"echo"========================================="echo""# 1. 系统基本信息echo"【系统信息】"echo"主机名:$(hostname)"echo"内核版本:$(uname -r)"echo"运行时间:$(uptime | awk -F'up ' '{print $2}' | awk -F',' '{print $1}')"echo""# 2. CPU信息echo"【CPU信息】"echo"CPU核心数:$(nproc)"echo"系统负载:$(uptime | awk -F'load average:' '{print $2}')"echo""echo"CPU使用率(最近5秒平均):"mpstat 1 5 | tail -1echo""# 3. 内存信息echo"【内存信息】"free -hecho""echo"Swap使用情况:"swapon --showecho""# 4. 磁盘IO信息echo"【磁盘IO信息】"iostat -x 1 3 | grep -E "Device|sd"echo""# 5. TOP进程echo"【CPU占用TOP5进程】"ps aux --sort=-%cpu | head -6echo""echo"【内存占用TOP5进程】"ps aux --sort=-%mem | head -6echo""echo"========================================="echo"诊断完成"echo"========================================="

使用方法

chmod +x perf_check.sh./perf_check.sh

3.2 实际应用案例

案例一:电商平台高峰期CPU瓶颈

场景描述:某电商平台在双11促销期间,下午2点开始用户反馈页面响应极慢,订单提交失败率激增。监控显示应用服务器响应时间从平时的200ms飙升到2000ms以上。

诊断过程

  1. 快速查看系统负载
uptime# 输出:load average: 12.5, 10.8, 8.3# 服务器是8核CPU,负载超过12说明有问题
  1. 查看CPU使用情况
top# 发现CPU使用率达到95%,其中us占85%,sy占10%
  1. 定位高CPU进程
pidstat -u 1 5# 发现tomcat进程(PID 1234)占用CPU 780%(多线程累加)
  1. 分析上下文切换
vmstat 1 5# cs值达到85000次/秒,远超正常水平
  1. 查看线程数
ps -eLf | grep java | wc -l# 输出:512个线程

问题根因:应用配置的线程池过大(maxThreads=500),在高并发下导致大量线程竞争CPU,频繁的上下文切换反而降低了吞吐量。

解决方案

# 1. 调整Tomcat配置vim /opt/tomcat/conf/server.xml# 修改:maxThreads="500" -> maxThreads="200"# 修改:acceptCount="100" -> acceptCount="200"# 2. 重启应用systemctl restart tomcat# 3. 验证效果vmstat 1 10# cs值降到25000次/秒# CPU使用率降到70%,但响应时间恢复到300ms

优化效果

  • 上下文切换从85000次/秒降到25000次/秒
  • CPU使用率从95%降到70%
  • 响应时间从2000ms恢复到300ms
  • 订单成功率从60%提升到98%

案例二:社交平台内存泄漏导致OOM

场景描述:某社交平台的API服务器,每隔2-3天就会自动重启一次,查看日志发现是Java进程OOM(Out of Memory)。用户在高峰期经常遇到503错误。

诊断过程

  1. 查看内存使用情况
free -h# 发现可用内存只有200MB,swap使用了1.8G
  1. 监控进程内存变化
# 每小时记录一次内存使用whiletruedoecho"$(date) - $(ps aux | grep java | grep -v grep | awk '{print $6}')" >> mem_track.log    sleep 3600done
  1. 分析内存增长趋势
cat mem_track.log# 发现RSS从启动时的2G,12小时后增长到14G
  1. 检查swap使用
vmstat 1 10# si和so值持续不为0,说明在频繁swap

问题根因:应用存在内存泄漏,长时间运行后内存持续增长,最终触发OOM。同时JVM堆内存配置过大(-Xmx12G),在16G内存的服务器上留给系统的空间太少。

解决方案

# 1. 调整JVM参数vim /opt/app/bin/startup.sh# 修改:-Xmx12G -Xms12G -> -Xmx8G -Xms8G# 添加:-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/# 2. 禁用swap(临时措施)sudo swapoff -a# 3. 重启应用并持续监控systemctl restart appwatch -n 300 "free -h && ps aux | grep java"

后续优化:通过分析heap dump文件,发现是缓存对象没有正确释放导致的内存泄漏。修复代码后,内存使用稳定在6G左右,不再增长。


四、最佳实践和注意事项

4.1 最佳实践

4.1.1 性能优化建议

CPU优化

  • 合理配置线程池大小,一般设置为CPU核心数的1-2倍
  • 避免在高并发场景使用synchronized,考虑使用Lock或无锁数据结构
  • 使用CPU亲和性绑定关键进程到特定核心
# 将进程绑定到CPU 0-3taskset -cp 0-3 <PID>

内存优化

  • JVM堆内存不要超过物理内存的75%,留足够空间给操作系统
  • 监控内存使用趋势,及时发现内存泄漏
  • 合理配置swappiness参数
# 降低swap倾向(推荐值10)echo 10 | sudo tee /proc/sys/vm/swappiness# 永久生效echo"vm.swappiness=10" | sudo tee -a /etc/sysctl.confsudo sysctl -p

磁盘IO优化

  • 优先使用SSD,性能提升10倍以上
  • 调整IO调度器,SSD使用noop或none,HDD使用deadline
# 查看当前调度器cat /sys/block/sda/queue/scheduler# 修改为deadlineecho deadline | sudo tee /sys/block/sda/queue/scheduler
  • 启用文件系统缓存,减少磁盘访问
  • 对于数据库,考虑将数据文件和日志文件放在不同磁盘

4.2 注意事项

4.2.1 诊断工具使用注意事项

采样频率不宜过高

  • iostat、vmstat等工具的采样间隔建议不低于1秒
  • 过于频繁的采样会增加系统开销,影响诊断结果的准确性
  • 生产环境建议使用1-5秒的采样间隔

正确理解指标含义

  • CPU使用率高不一定是问题,要结合业务负载判断
  • 内存used高是正常的,Linux会充分利用内存做缓存
  • 关注available而不是free
  • swap使用不为0不一定有问题,但si/so持续不为0就需要关注

避免过度优化

  • 不要为了优化而优化,要有明确的性能目标
  • 优化前后要有数据对比,证明优化有效
  • 有些"优化"可能会降低系统稳定性

4.2.2 常见错误

错误现象
原因分析
解决方案
iostat命令不存在
sysstat包未安装
sudo apt install sysstat 或 yum install sysstat
pidstat显示权限不足
需要root权限查看其他用户进程
使用sudo执行命令
top显示内存使用超100%
包含了共享内存的重复计算
查看RES列而不是VIRT列
vmstat的si/so一直为0
采样间隔过长或系统确实没有swap
减少采样间隔或检查swap是否启用
mpstat显示CPU使用率之和超100%
多核CPU的累加值
查看单个CPU的使用率或平均值

五、故障排查和监控

5.1 快速排查流程

当接到性能告警时,按照以下流程快速定位问题:

第一步:确认问题现象

# 查看系统负载和运行时间uptime# 快速查看资源使用情况top

第二步:判断瓶颈类型

# 如果CPU iowait高(>20%),是IO问题# 如果CPU使用率高(>80%),是CPU问题# 如果有swap活动,是内存问题vmstat 1 5

第三步:定位问题进程

# CPU问题pidstat -u 1 5# 内存问题pidstat -r 1 5# IO问题pidstat -d 1 5

第四步:深入分析

  • CPU问题:检查线程数、上下文切换、是否有死循环
  • 内存问题:检查是否内存泄漏、配置是否合理
  • IO问题:检查IO模式、磁盘类型、是否需要优化

5.2 性能监控指标

建议监控的关键指标及告警阈值:

指标类别
指标名称
正常范围
告警阈值
说明
CPU
使用率
30-70%
>85%
持续高于85%需要优化
CPU
负载
<核心数
>核心数*1.5
1分钟负载超过核心数1.5倍
CPU
上下文切换
<20000/s
>50000/s
过高说明线程竞争激烈
内存
可用内存
>20%
<10%
available低于总内存10%
内存
Swap使用
0
>0且持续增长
任何swap活动都需要关注
磁盘
IO等待
<10ms
>50ms
超过50ms说明IO瓶颈
磁盘
使用率
<80%
>90%
磁盘空间不足
磁盘
%util
<60%
>85%
磁盘接近饱和

六、总结

6.1 技术要点回顾

  • 系统化诊断方法:从整体到局部,先看top/uptime了解全局,再用mpstat/pidstat定位具体问题,最后深入分析
  • CPU诊断核心:关注使用率、负载、iowait、上下文切换四个维度,不要只看使用率
  • 内存诊断核心:重点看available而不是free,监控swap活动,及时发现内存泄漏
  • 磁盘IO诊断核心:await和%util是关键指标,区分顺序IO和随机IO,SSD和HDD的优化策略不同

6.2 进阶学习方向

  1. 深入学习性能分析工具

    • 学习perf、strace、ltrace等高级工具
    • 掌握火焰图(Flame Graph)的使用
    • 了解eBPF技术在性能分析中的应用
  2. 应用层性能优化

    • Java应用的JVM调优
    • 数据库查询优化和索引设计
    • 缓存策略和CDN使用
  3. 系统架构优化

    • 负载均衡和水平扩展
    • 微服务架构下的性能优化
    • 容器化环境的性能监控

6.3 参考资料

  • Linux Performance - Brendan Gregg的性能分析资源
  • sysstat官方文档 - iostat、mpstat等工具的详细说明
  • Linux内核文档 - /proc文件系统和性能相关接口
  • 性能之巅 - 系统性能优化经典书籍

附录

A. 命令速查表

# CPU相关top                          # 实时查看进程资源占用uptime                       # 查看系统负载mpstat -P ALL 1 5           # 查看每个CPU核心使用率pidstat -u 1 5              # 查看进程CPU使用情况vmstat 1 5                  # 查看系统整体性能和上下文切换# 内存相关free -h                     # 查看内存使用情况vmstat 1 5                  # 查看内存和swap活动pidstat -r 1 5              # 查看进程内存使用ps aux --sort=-%mem | head  # 按内存排序查看进程# 磁盘IO相关iostat -x 1 5               # 查看磁盘IO统计pidstat -d 1 5              # 查看进程IO情况df -h                       # 查看磁盘空间使用lsblk                       # 查看磁盘分区信息# 综合诊断dmesg | tail                # 查看内核日志lsof -p <PID>               # 查看进程打开的文件strace -p <PID>             # 跟踪进程系统调用

B. 性能基线参考值

8核16G内存服务器(Web应用)

  • CPU使用率:40-60%
  • 系统负载:4-6
  • 可用内存:4-6G
  • 磁盘IO await:<20ms(SSD)
  • 上下文切换:10000-20000/s

16核32G内存服务器(数据库)

  • CPU使用率:50-70%
  • 系统负载:8-12
  • 可用内存:8-12G
  • 磁盘IO await:<10ms(SSD)
  • 上下文切换:15000-30000/s

C. 术语表

术语
英文
解释
负载
Load Average
系统在一段时间内的平均活跃进程数
上下文切换
Context Switch
CPU从一个进程切换到另一个进程
缺页错误
Page Fault
访问的内存页不在物理内存中
IO等待
IO Wait
CPU等待IO操作完成的时间
吞吐量
Throughput
单位时间内处理的请求数或数据量
延迟
Latency
从请求发出到收到响应的时间
IOPS
IO Operations Per Second
每秒IO操作次数
RSS
Resident Set Size
进程实际占用的物理内存
VSZ
Virtual Size
进程申请的虚拟内存大小

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-02-08 04:35:58 HTTP/2.0 GET : https://f.mffb.com.cn/a/467896.html
  2. 运行时间 : 0.387778s [ 吞吐率:2.58req/s ] 内存消耗:4,902.37kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=66701552dcbd094ab800dcc2d5388cf4
  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.000572s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000624s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.040804s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.015605s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000732s ]
  6. SELECT * FROM `set` [ RunTime:0.012299s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000693s ]
  8. SELECT * FROM `article` WHERE `id` = 467896 LIMIT 1 [ RunTime:0.050770s ]
  9. UPDATE `article` SET `lasttime` = 1770496558 WHERE `id` = 467896 [ RunTime:0.010450s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.006946s ]
  11. SELECT * FROM `article` WHERE `id` < 467896 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.007578s ]
  12. SELECT * FROM `article` WHERE `id` > 467896 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.034681s ]
  13. SELECT * FROM `article` WHERE `id` < 467896 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.019625s ]
  14. SELECT * FROM `article` WHERE `id` < 467896 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.073103s ]
  15. SELECT * FROM `article` WHERE `id` < 467896 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.041689s ]
0.389318s