Linux系统性能监控:top命令详解与实战运维指南
1. 项目概述为什么top命令是运维的“听诊器”如果你在Linux服务器上工作无论是管理一台个人VPS还是维护一个庞大的生产集群有一个命令你几乎每天都会用到甚至可能已经形成了肌肉记忆——那就是top。它不像ls或cd那样简单直接也不像awk或sed那样需要复杂的脚本组合但它的地位无可替代。我干了十几年运维处理过无数次线上告警排查过数不清的性能瓶颈top永远是我打开终端后敲下的第一个或者至少是前三个命令之一。它就像医生的听诊器不需要开膛破肚就能让你快速感知到系统这颗“心脏”的跳动是否健康、有力以及哪个“器官”可能正在闹情绪。简单来说top是一个动态的、实时的系统性能监控工具。它能持续显示系统中进程的资源占用情况包括CPU、内存、交换空间Swap的使用率以及每个进程的详细状态。这听起来似乎和ps命令有点像但top的核心优势在于“动态”和“交互”。ps给你的是一个静态的快照而top提供的是一个实时直播的仪表盘。当服务器突然卡顿、应用响应变慢、或者监控系统发出CPU告警时你不可能靠一次次手动执行ps aux来捕捉那个瞬间的异常进程。top的持续刷新机制让你能亲眼看到资源消耗的波动曲线快速定位到是哪个“坏小子”进程在疯狂吞噬CPU或者是谁在悄无声息地吃光所有内存。对于新手而言初次面对top那满屏跳动的数字和缩写可能会感到一阵眩晕。但别担心这正是我们这篇详解要解决的问题。我们将从最基础的界面解读开始拆解每一行、每一列的含义然后深入到交互式操作的每一个技巧最后结合真实的运维场景告诉你如何用top这把“瑞士军刀”解决实际问题。无论你是刚入行的桌面运维还是负责大数据集群的资深工程师熟练掌握top都是你Linux运维工具箱里最基础、也最核心的一课。2. top命令界面全解析读懂系统的“生命体征”运行top命令后整个界面可以分为两个主要部分汇总信息区前5-7行和进程信息区下方的表格。我们先来逐行拆解这个信息面板理解每一个数字背后的故事。2.1 汇总信息区系统的宏观健康报告汇总信息区提供了系统整体资源使用情况的概览这是判断系统是否负载过重的第一眼依据。第一行系统运行时间与负载top - ... up ... load average这一行包含了几个关键信息top - 15:30:45当前系统时间。up 20 days, 3:15系统已经连续运行了20天3小时15分钟。这个时间越长通常意味着系统越稳定但也要结合后续负载来看。1 user当前有1个用户登录到系统包括SSH连接。load average: 0.05, 0.10, 0.15系统平均负载这是最重要的指标之一。这三个数字分别代表过去1分钟、5分钟、15分钟的系统平均负载。对于单核CPU来说负载1.0意味着CPU刚好被完全利用。如果长期高于1.0说明进程需要排队等待CPU资源。在多核系统中需要将负载值除以CPU核心数来评估。例如一个4核CPU如果负载是4.0意味着所有核心都处于满负荷状态。通常如果15分钟负载持续高于CPU核心数 * 0.7就需要警惕了。第二行任务概览Tasks这一行显示了进程的整体状态统计total进程总数。running正在运行占用CPU或等待运行的进程数。sleeping处于休眠等待事件如I/O的进程数。这是正常状态下最多的进程。stopped被暂停例如用CtrlZ的进程数。zombie僵尸进程数。这是一个需要重点关注的指标。僵尸进程是已经终止但其父进程尚未对其进行善后读取退出状态码的进程。少量的僵尸进程个位数可能无需立即处理但如果数量持续增长则表明有程序存在缺陷可能导致进程表被占满的风险。第三行CPU使用率百分比%Cpu(s)这是top命令的灵魂所在它详细拆解了CPU时间的去向。注意这里的百分比是所有CPU核心的平均值。ususer运行在用户空间的进程所占用CPU时间的百分比。例如你的Java应用、Python脚本的计算开销就在这里。sysystem运行在内核空间的进程所占用CPU时间的百分比。例如执行系统调用读写文件、网络通信的开销。ninice被调整过优先级nice值的用户进程所占用的CPU时间百分比。ididleCPU空闲时间的百分比。这是你希望看到的数字越高越好。waI/O waitCPU等待磁盘I/O完成所花费时间的百分比。这是一个非常关键的指标如果这个值持续很高例如超过5%-10%通常意味着磁盘速度跟不上或者有进程在进行大量的磁盘读写这会导致系统整体响应变慢。hihardware IRQ处理硬件中断所花费的时间百分比。sisoftware IRQ处理软件中断所花费的时间百分比。ststeal在虚拟化环境中如云服务器被宿主机“偷走”的CPU时间百分比。如果你的虚拟机感觉性能不佳而st值很高那可能是宿主机资源竞争激烈。实操心得看CPU状态不要只看总的ussy。一次性能问题排查中应用响应很慢但us和sy都不高。最后发现wa高达40%顺藤摸瓜找到一个失控的日志写入进程在疯狂写磁盘。所以wa是诊断系统“卡顿”而非“繁忙”的重要线索。第四行和第五行内存与交换空间使用MiB Mem, MiB Swap这里显示了物理内存和交换空间的使用情况。注意Linux的内存管理策略会尽可能利用内存进行缓存所以“已用”内存高不一定代表有问题关键看“可用”和“缓存/缓冲”。total总量。free完全未被使用的内存量。这个值很小是正常的。used已使用的内存量。buff/cache被内核缓冲区buffer和页面缓存cache占用的内存。这部分内存可以被快速释放给应用程序使用因此通常被视为“可用资源”的一部分。avail Mem这是一个更直观的“可用内存”估计值并非所有top版本都有它估算的是在不进行交换的情况下可以分配给新应用程序的内存。对于交换空间Swap理想情况下Swap used应该为0或非常小。一旦开始使用Swap由于磁盘速度远慢于内存系统性能会急剧下降。如果used值持续增长说明物理内存严重不足。2.2 进程信息区微观视角下的资源争夺战进程信息区默认按CPU使用率降序排列列出了每个进程的详细信息。各列含义如下PID进程ID操作进程的唯一标识。USER进程所有者的用户名。PRPriority NINice进程的优先级。PR是内核看到的动态优先级NI是用户可调整的静态优先级范围-20到19值越小优先级越高。可以通过renice命令调整NI值。VIRT、RES、SHR、%MEM内存相关指标极易混淆。VIRTVirtual Memory进程使用的虚拟内存总量。它包括所有代码、数据、共享库加上已交换出的和已申请但未使用的内存。这个数字可能很大不代表实际物理消耗。RESResident Memory常驻内存即进程当前实际使用的、未被换出的物理内存大小。这是判断进程消耗多少物理内存的关键指标。SHRShared Memory共享内存大小即可能被其他进程共享的内存部分如共享库。%MEM进程使用的物理内存RES占总物理内存的百分比。SStatus进程状态。常见的有RRunning运行中或可运行在运行队列中。SSleeping休眠中通常在等待事件完成。DUninterruptible Sleep不可中断的休眠。进程通常在等待磁盘I/O。此时进程无法被杀死kill -9也不行这是判断I/O瓶颈的另一个佐证。ZZombie僵尸进程。TStopped进程被信号暂停如CtrlZ。%CPU进程自上一次刷新以来占用CPU时间的百分比。注意对于多核系统这个百分比可以超过100%。例如一个进程完全占满两个核心其%CPU会显示为200%。TIME进程自启动以来使用的总CPU时间格式为分:秒.百分秒。COMMAND启动该进程的命令行。注意事项不要被VIRT的巨大数值吓到。一个Java应用启动后VIRT可能显示好几个G但RES可能只有几百M这才是它实际占用的物理内存。监控内存时应重点关注RES和%MEM。3. 交互式操作秘籍让top成为你的定制化仪表盘top的强大之处在于其丰富的交互式命令。你可以在top运行界面中通过快捷键完成排序、筛选、管理进程等操作而无需退出。3.1 进程排序快速定位资源消耗者默认按%CPU排序但你随时可以切换P大写按%CPU使用率排序默认。M按%MEM内存使用率排序。当怀疑内存泄漏时这是第一个要按的键。T按TIME累计CPU时间排序。有助于发现那些长期占用CPU但瞬时占用不高的“慢性子”进程。N按PID进程ID排序。R反转当前的排序顺序。3.2 进程管理不离开top的运维操作在top界面中可以直接对进程进行操作这在紧急排查时非常高效k终止kill一个进程。按下k后会提示你输入要终止的进程PID然后提示输入发送的信号默认为15SIGTERM输入9则为强制终止 SIGKILL。r调整进程的优先级renice。按下r后输入PID然后输入新的nice值-20到19。可以临时降低一个非关键进程的优先级为关键任务让路。3.3 界面显示定制只关注你想看的l、t、m切换顶部汇总信息区的显示。l切换负载行t切换任务和CPU行m切换内存行。如果觉得顶部信息太多可以关掉几行让屏幕显示更多进程。f进入字段管理界面。这是高级功能你可以自定义进程信息区显示哪些列以及它们的顺序。用方向键选择按d或空格键切换显示/隐藏按s设置排序列然后按q返回。o小写 /O大写交互式地设置筛选条件。例如输入COMMANDjava可以只显示命令名包含“java”的进程。这对于在大量进程中聚焦特定应用非常有用。u按用户筛选进程。输入用户名后只显示该用户的进程。c切换COMMAND列的显示模式是在“命令名”和“完整命令行”之间切换。查看完整命令行有助于识别具体的程序实例和参数。V切换进程的树状图显示模式。可以直观地看到父进程和子进程的层级关系对于理解进程组非常有用。i忽略闲置idle和僵尸zombie进程。让列表更简洁只显示活跃进程。3.4 全局显示控制s改变刷新间隔默认3秒。输入新的秒数可以加快或减慢刷新频率。在问题复现时可以设为1秒甚至更短来捕捉瞬间峰值。W大写将当前的top配置包括排序方式、显示列等写入~/.toprc文件。这样下次启动top时就会加载你的个性化设置。q退出top。实操心得我习惯的“开箱即用”配置是先按1展开所有CPU核心的单独统计对于多核服务器然后按m切换内存显示为更简洁的进度条模式。在排查问题时先按M看内存再按P看CPU用u筛选应用所属用户基本能快速圈定嫌疑范围。把这些操作养成习惯效率提升不止一倍。4. 实战场景与高级技巧从看懂到精通理解了界面和操作我们来看看top在真实运维场景中如何大显身手。4.1 场景一CPU使用率100%告警如何快速定位元凶登录服务器运行top。看汇总区确认%Cpu(s)行us或sy是否接近100%。如果us高通常是应用问题如果sy高可能是系统调用频繁或上下文切换过多。看进程区默认已按%CPU降序排列排在第一位的进程就是最大的CPU消费者。记录其PID和COMMAND。深入分析如果是一个已知的应用如java、python结合日志和业务监控判断是否正常。如果是一个陌生进程按c查看完整命令路径按V查看进程树判断其来源。使用strace -p PID跟踪其系统调用或使用perf top -p PID进行性能剖析找到具体的函数或代码热点。临时处理如果确定是异常进程在top界面中直接按k输入该PID发送信号9强制终止。4.2 场景二系统响应缓慢但CPU和内存都不高这种现象通常指向I/O 瓶颈或系统负载过高。运行top。紧盯wa值如果%Cpu(s)行的waI/O wait值持续很高比如20%说明磁盘是瓶颈。检查进程状态在进程信息区查看是否有大量进程处于DUninterruptible Sleep状态。这是等待I/O的典型标志。使用iostat命令验证另开一个终端运行iostat -x 2查看%util设备利用率和await平均等待时间。如果%util接近100%await很高则证实磁盘I/O饱和。定位I/O大户虽然top不直接显示进程I/O但可以借助iotop命令需安装来查看每个进程的磁盘读写速率。4.3 场景三怀疑内存泄漏如何观察内存泄漏的特点是进程的RES内存占用会随时间持续增长即使其活跃度下降。运行top按M让进程按内存使用率排序。锁定嫌疑进程找到%MEM或RES较高的进程记录其PID。长期观察不要马上退出top。让top持续运行每隔一段时间比如半小时观察一次该进程的RES和%MEM值。如果呈现稳定的上升趋势而业务量并未同比增加则内存泄漏的可能性很大。结合其他工具使用ps aux --sort-rss查看瞬时内存快照或使用smem、pmap等工具分析进程内存的详细分布。4.4 场景四一键生成进程快照用于事后分析有时问题转瞬即逝你需要保存top在某个时刻的状态。批处理模式使用top -b -n 1命令。-b表示批处理模式-n 1表示只更新一次。这样top的输出会直接打印到标准输出而不是交互界面。你可以将其重定向到文件top -b -n 1 system_snapshot.txt。这个文件包含了运行那一刻完整的top信息非常适合嵌入到监控脚本中或用于事后分析报告。结合head/grep你可以进一步过滤输出例如只获取前10个CPU消耗进程top -b -n 1 | head -20因为前几行是汇总信息。4.5 高级技巧使用htop和glances虽然top是经典和标配但知道一些更强大的“增强版”工具能让工作更轻松。htop可以看作是top的现代化、彩色增强版。它默认支持鼠标操作纵向横向滚动更直观树状视图、进程杀灭、筛选等功能都更易用。很多运维人员安装后的第一件事就是apt install htop或yum install htop。glances一个跨平台的、更全面的系统监控工具基于top的理念但信息更丰富。它在一个屏幕上集成了CPU、内存、磁盘I/O、网络、文件系统、传感器温度等信息并且支持客户端/服务器模式可以通过Web界面远程监控。在需要一眼看尽系统全局状态时非常有用。注意事项在生产环境中尤其是通过跳板机登录时htop和glances可能没有预装。top是任何标准Linux发行版都自带的工具可靠性最高。因此熟练掌握原生top是核心能力其他工具作为效率补充。5. 常见问题排查与避坑指南即使熟悉了命令在实际使用中还是会遇到一些令人困惑的情况。这里记录了一些典型问题和我的处理思路。5.1 为什么top里看到的CPU使用率总和超过100%这是新手最常见的问题。top中%CPU这一列计算的是单个CPU核心的占用百分比。对于多核或多线程CPU系统一个进程如果使用了多个核心其%CPU可以超过100%。例如一个进程完全占满了4个核心它的%CPU就会显示为400%。同样顶部的%Cpu(s)行显示的是所有核心的平均值其us、sy等指标的百分比上限也是100% * 核心数。按1键可以展开查看每个逻辑核心的单独使用情况。5.2top显示的内存使用率很高但应用似乎没用到那么多这通常是因为Linux的内存缓存Cache机制。Linux会利用空闲内存来缓存磁盘数据buff/cache这可以极大提升系统性能。当应用程序需要更多内存时这部分缓存内存会被快速释放。因此判断内存是否紧张关键看available可用内存或free buff/cache的值以及Swap的使用情况。如果available内存充足即使used很高也属于正常且高效的状态。5.3 僵尸进程Zombie很多怎么办僵尸进程本身不消耗资源除进程表项外但其父进程存在问题。处理僵尸进程的关键是结束其父进程。在top中按c显示完整命令找到僵尸进程状态为Z的PID例如123。使用ps -ef | grep 123或pstree -p找到其父进程PPID例如456。检查父进程是否正常。如果父进程已经无法管理子进程比如程序有bug可以尝试向父进程发送SIGCHLD信号kill -CHLD 456提醒它清理子进程。如果无效且父进程并非关键系统进程可以考虑重启父进程。切勿直接kill -9僵尸进程本身这没用因为僵尸进程已经死了。5.4top刷新太慢或太快如何调整调整刷新频率在top交互界面中按s键然后输入新的刷新间隔秒数如1或5。批处理模式定时间隔在脚本中可以使用top -b -d 5 -n 12表示以批处理模式运行每隔5秒刷新一次总共刷新12次即运行一分钟。这常用于定时采集性能数据。5.5 如何让top启动时就显示我想要的视图利用~/.toprc配置文件。首先在top界面中设置好你喜欢的视图比如按M排序、按1展开CPU、隐藏某些汇总行然后按大写W键将配置保存到用户家目录下的.toprc文件。下次启动top时就会自动加载这个配置。你也可以手动编辑这个文件但通过交互命令生成更可靠。掌握top命令不是一个一蹴而就的过程而是在无数次排查、疑惑和验证中逐渐积累的经验。它没有炫酷的图形界面但正是这种简洁和直接赋予了它在任何Linux环境下的可靠性和强大威力。我的习惯是无论服务器上安装了多么华丽的监控工具在需要第一时间定性问题时依然会信任top给出的第一手信息。把它用熟、用透你的运维直觉和问题定位速度自然会提升一个档次。

相关新闻

游戏AI行为树实战:从状态机到雷霆QT的灵活角色行为管理

游戏AI行为树实战:从状态机到雷霆QT的灵活角色行为管理

最近在游戏开发社区里,一个名为“雷霆QT”的项目突然火了。但如果你以为它只是一个普通的游戏引擎或框架,那就错过了它最核心的价值。很多开发者第一眼看到“原地蹦迪”、“腐化天使”这类充满网络梗的标题时,可能会觉得这只是又一个博眼球的…

2026/10/15 22:18:35 阅读更多 →
天气丹包材定制的水有多深?代工厂老师傅只讲这四句大实话

天气丹包材定制的水有多深?代工厂老师傅只讲这四句大实话

拿着一张“天气丹”风格的贵妇瓶设计图跑来问代工的老板,每个月我至少要见十个。其中九个上来就问能不能用普通PETG料做,瓶壁能不能减薄到1.8毫米,说这样能把单瓶成本压到三块以内。我通常直接回一句:那你还不如不印logo&#xff…

2026/9/28 2:21:12 阅读更多 →
UE5游戏开发:AsyncTask多线程实战与性能优化指南

UE5游戏开发:AsyncTask多线程实战与性能优化指南

1. 项目概述:为什么UE5游戏开发必须拥抱多线程在UE5项目里摸爬滚打几年,尤其是项目规模从Demo级膨胀到开放世界级别后,有一个问题会像幽灵一样反复出现:卡顿。这种卡顿不是那种模型面数太高导致的渲染卡顿,而是那种“明…

2026/10/13 0:15:48 阅读更多 →

最新新闻

QT串口通信实战:监控页面打开串口连接的状态机设计与设备枚举

QT串口通信实战:监控页面打开串口连接的状态机设计与设备枚举

监控页面做到第七篇,终于要碰串口了。前面把界面、数据表、曲线图都搭好之后,剩下最关键的一环就是让页面真正和设备通信——第一步就是打开一个串口连接。这个“打开”两个字看着简单,里面牵扯的东西其实不少:设备枚举、参数校验…

2026/10/16 8:46:45 阅读更多 →
项目交付为什么总是延期、超支?从进度、成本到质量的全过程管理分析

项目交付为什么总是延期、超支?从进度、成本到质量的全过程管理分析

项目数量不断增加,企业的交付管理压力也会随之上升。项目经理需要协调人员和任务,采购部门需要保障物料供应,现场团队负责具体实施,财务部门则需要核算人工和项目费用。如果这些业务缺乏统一的管理流程,就容易出现项目…

2026/10/16 8:46:45 阅读更多 →
SpringCloud微服务架构下的美食分享平台设计与实践

SpringCloud微服务架构下的美食分享平台设计与实践

拿下这个题目的时候,其实你已经比很多同学领先一步了。SpringCloud 美食分享交流平台,看起来像是一个“技术栈堆叠型”的毕设题目,但真正把它做成一个能过审、能答辩、能写进简历的项目,需要在开题阶段就把需求边界、服务划分、数…

2026/10/16 8:46:45 阅读更多 →
基于组态王6.55的中央空调水系统组态仿真与逻辑验证

基于组态王6.55的中央空调水系统组态仿真与逻辑验证

做了个中央空调水系统的组态仿真项目,用组态王6.55把所有设备搬到了屏幕上,冷冻水泵、冷却水泵、冷却塔、冷水机组、各种阀门温度压力测点,全部能看能控,还能模拟温度波动、压差变化,自动跑启停逻辑。这篇文章把从工程…

2026/10/16 8:46:45 阅读更多 →
主从同步原理

主从同步原理

一、简单介绍读写分离和主从架构主库负责写,从库负责读;一主多从,读写分离,用多个从库分担读压力。二、原理MySQL 主从复制的核心是二进制日志 binlog。binlog 记录数据库中的所有变更操作,主要包含 DDL(数…

2026/10/16 8:46:45 阅读更多 →
毫米波雷达点云静态杂波滤除:Matlab完整链路与CFAR实践

毫米波雷达点云静态杂波滤除:Matlab完整链路与CFAR实践

简介:面向车载毫米波雷达信号处理与目标检测学习者,这份资源围绕静止目标(静态杂波)滤除这一关键问题,提供配套代码与实测ADC回波数据,适合正在研究动目标检测、杂波抑制或Matlab仿真实践的读者。压缩包共3…

2026/10/16 8:45:44 阅读更多 →

日新闻

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 0:00:05 阅读更多 →
信号与系统频域分析作业解题指南

信号与系统频域分析作业解题指南

1. 作业背景与核心要求解析信号与系统作为电子信息类专业的核心基础课,其作业设计往往直接关联课程的核心知识框架。2026年春季第六次作业的布置,通常对应着课程进展到频域分析的关键阶段。根据常规教学进度推测,本次作业可能涉及以下核心内容…

2026/10/16 0:00:05 阅读更多 →
Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

1. 从一个"四不像"的练手项目说起如果你已经看完了Django的官方教程前几章,跟着敲完了投票应用,大概会有一种"我好像会了,又好像什么都不会"的割裂感。教程里每个知识点都是拆开的——这一章讲模型,下一章讲视…

2026/10/16 0:00:05 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →