零基础学习性能测试-linux服务器监控:CPU监控

目录

    • 学习内容与快速应用路径
      • 第一阶段:理解 CPU 核心概念 (0.5天)
      • 第二阶段:掌握核心监控命令与指标 (1-2天)
      • 第三阶段:识别 CPU 问题与瓶颈 (核心技能)
      • 第四阶段:整合到性能测试工作流程 (快速应用落地)
    • 快速应用到工作中的关键策略

零基础学习 Linux CPU 监控并快速应用到性能测试工作中,关键在于 理解核心指标、掌握实用命令、识别瓶颈模式、关联性能影响。下面是一个聚焦 CPU 监控的详细学习路径,助你快速上手:

核心目标:

  1. 理解 CPU 时间组成: 知道 CPU 时间花在用户态、内核态、等待 I/O 等不同状态上的含义。
  2. 掌握核心监控命令: 熟练使用 top/htop, vmstat, mpstat, pidstat, sar 查看 CPU 状态。
  3. 识别关键 CPU 指标: 能解读 %us, %sy, %wa, %id, load average, 运行队列长度等指标的含义和健康阈值。
  4. 定位 CPU 瓶颈与问题: 能判断 CPU 过载、I/O 等待瓶颈、进程竞争、配置不足等问题。
  5. 整合到性能测试流程: 在压测过程中实时监控 CPU,并在报告中分析 CPU 使用情况及其对性能的影响。

学习内容与快速应用路径

第一阶段:理解 CPU 核心概念 (0.5天)

  1. CPU 核心 (Cores) vs 线程 (Threads):

    • 物理核心: 实实在在的处理器单元。lscpu 命令查看 Core(s) per socket
    • 逻辑核心 (通常说的 vCPU): 通过超线程 (Hyper-Threading) 技术,一个物理核心可以模拟出两个逻辑核心。lscpu 查看 CPU(s)top1 看到的数量。性能监控主要关注逻辑核心。
    • 快速应用认知: 运行 lscpu | grep -E '^CPU\(s\):|Core\(s\) per socket|Thread\(s\) per core' 了解你的服务器 CPU 配置。
  2. CPU 时间组成 (理解 top/mpstat 输出):

    • %us (User): CPU 花费在运行 用户空间应用程序代码 上的时间百分比。高 %us 通常意味着应用自身计算密集。
    • %sy (System): CPU 花费在运行 内核空间系统调用和中断处理 上的时间百分比。高 %sy 可能表示系统调用频繁、进程切换过多、内核锁竞争或驱动问题。
    • %ni (Nice): CPU 花费在运行 低优先级 (nice) 用户进程 上的时间百分比。通常占比很小,可忽略。
    • %id (Idle): CPU 空闲 时间百分比。理想状态下,压测时 %id 应很低。
    • %wa (I/O Wait): 最关键指标之一! CPU 在 等待磁盘 I/O 或网络 I/O 操作完成 而空闲的时间百分比。%wa 表示 CPU 想干活但被慢速 I/O 卡住了,是 I/O 瓶颈的直接信号!
    • %hi (Hardware Interrupt): CPU 处理硬件中断的时间百分比。通常很低。
    • %si (Software Interrupt): CPU 处理软件中断的时间百分比。通常很低。
    • %st (Steal): (仅虚拟化环境) 被 Hypervisor 偷走用于运行其他虚拟机的时间百分比。高 %st 表示宿主机资源不足。
    • 核心关系: %us + %sy + %ni + %id + %wa + %hi + %si + %st = 100%
    • 快速应用认知: 压测时,CPU 繁忙 (%us + %sy) 高是好事(资源利用充分),但 %wa 高是坏事(I/O 阻塞)。 目标是让 CPU 尽可能忙于计算 (%us/%sy),而不是等待 (%wa)。
  3. 系统负载平均值 (Load Average):

    • 是什么: uptimetop 第一行显示的三个数字 (e.g., load average: 1.25, 0.89, 0.75)。
    • 含义: 表示在过去的 1分钟、5分钟、15分钟 内,系统处于可运行状态 ® 或不可中断睡眠状态 (D - 通常等 I/O)平均进程数
    • 如何解读:
      • 负载 < 逻辑核心数: 系统相对空闲或有空闲核心。
      • 负载 ≈ 逻辑核心数: 系统资源利用充分,但可能没有明显排队。
      • 负载 > 逻辑核心数: 表示有进程在排队等待 CPU 资源。数值越大,排队越严重。
      • 看趋势: 结合 1min, 5min, 15min 值看负载是上升、下降还是稳定。压测时关注 1min 负载。
    • 重要: 负载高 ≠ CPU 利用率高! 负载包含了等待 I/O (D 状态) 的进程。高负载可能由高 %us/%sy (CPU 忙) 或高 %wa (I/O 慢) 引起。
    • 快速应用认知: 压测时,如果 load average (1min) 持续远高于逻辑 CPU 数,就需要结合 %us, %sy, %wa 判断是 CPU 真不够用还是被 I/O 卡住了。

第二阶段:掌握核心监控命令与指标 (1-2天)

目标:熟练使用命令获取数据,理解每个关键指标的含义和健康阈值。

  1. top / htop 命令 (进程级监控,首选 htop):

    • 命令: top (动态刷新) 或 htop (更友好,yum install htop / apt install htop)
    • CPU 相关视图 (顶部汇总行):
      • %Cpu(s) 显示的是 所有逻辑 CPU 的平均使用率。按 1 可切换显示每个逻辑 CPU 核心的详情。
      • 关键指标: us, sy, ni, id, wa, hi, si, st (含义同上)。
      • Tasks 总进程数,以及处于运行 (R)、睡眠 (S)、停止 (T)、僵尸 (Z)、不可中断睡眠 (D) 状态的进程数。关注 R (运行中) 和 D (等 I/O) 的数量。
      • Load average 系统负载。
    • 进程列表:关键列:
      • %CPU 该进程占用单个逻辑 CPU 核心的百分比。 如果一个进程占满一个核心,就是 100%。注意:多核系统中,一个进程的 %CPU 可以超过 100% (如占用 2 个核心就是 200%)。
      • TIME+ 该进程累计使用的 CPU 时间。
      • P (仅 htop): 进程优先级。
      • STATE 进程状态 (R=运行, S=可中断睡眠, D=不可中断睡眠/等 I/O, Z=僵尸, T=停止)。
    • 健康阈值 (经验值):
      • 整体 CPU: %us + %sy: < 70-80% 通常较安全。持续 > 80-90% 表示 CPU 是瓶颈。%wa理想是 0%。 > 1-2% 需关注, > 5-10% 是严重 I/O 瓶颈。
      • 负载: 1min Load Avg < 逻辑核心数较理想。持续 > 逻辑核心数表示资源紧张。> 2倍逻辑核心数通常有问题。
    • 快速应用:
      • 压测时运行 htop
      • %CPU (F6 -> PERCENT_CPU) 降序排序,找出 CPU 消耗最高的进程。
      • 观察顶部汇总行的 us, sy, wa 变化。
      • 1 查看每个核心的利用率是否均衡?是否有核心被 100% 占用而其他空闲?
      • 关注 TasksRD 的数量变化。
  2. mpstat 命令 (多核 CPU 详细统计):

    • 命令: mpstat [-P {ALL | 0,1,2...}] [间隔秒数] [次数] (通常 mpstat -P ALL 1:每秒报告一次所有逻辑核心的统计)
    • 作用: top 显示的是平均值,mpstat详细展示每个逻辑 CPU 核心的使用情况,是分析 CPU 负载均衡和不均衡问题的利器。
    • 输出解读 (关键列):
      Linux ... (4 CPU)
      10:30:00 AM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
      10:30:01 AM  all   25.00    0.00   15.00    0.25    0.00    0.25    0.00    0.00    0.00   59.50
      10:30:01 AM    0   40.00    0.00   20.00    0.00    0.00    0.00    0.00    0.00    0.00   40.00
      10:30:01 AM    1   10.00    0.00   10.00    0.00    0.00    0.00    0.00    0.00    0.00   80.00
      10:30:01 AM    2   30.00    0.00   20.00    1.00    0.00    1.00    0.00    0.00    0.00   48.00
      10:30:01 AM    3   20.00    0.00   10.00    0.00    0.00    0.00    0.00    0.00    0.00   70.00
      
      • CPU: 核心编号 (all 表示平均)。
      • %usr: 等同于 %us
      • %sys: 等同于 %sy
      • %iowait: 等同于 %wa
      • %idle: 等同于 %id
      • %irq, %soft: 硬件/软件中断,通常很低。
      • %steal: 虚拟化环境被偷走的时间。
    • 快速应用:
      • 压测时持续运行 mpstat -P ALL 1
      • 核心关注点:
        • 整体 (all) 的 %usr, %sys, %iowait
        • 各个核心 (0, 1, 2…) 的利用率是否均衡? 是否存在个别核心接近 100% 而其他空闲?(可能应用线程绑定或单线程瓶颈)。
        • 是否有核心的 %iowait 特别高? (可能该核心处理的 I/O 请求慢)。
  3. vmstat 命令 (系统级统计,包含 CPU 和队列):

    • 命令: vmstat [间隔秒数] [次数] (如 vmstat 1:每秒刷新)
    • 输出解读 (重点关注 CPU 和进程队列列):
      procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st2  1      0 1234567 98765 654321    0    0  1000   500  500 1000 30 15 50  5  0
      
      • procs 部分:
        • r (Running): 最重要队列指标! 正在运行或等待 CPU 时间片的进程数。 如果 r 持续大于逻辑 CPU 数,说明 CPU 资源不足,进程在排队。压测时重点监控!
        • b (Blocked): 处于不可中断睡眠状态 (D) 的进程数 (通常是等待 I/O)。
      • cpu 部分:
        • us, sy, id, wa, st: 含义同 top/mpstat,是所有 CPU 的平均值
    • 快速应用:
      • 压测时持续运行 vmstat 1
      • 眼睛紧盯 r 列! 如果 r 持续大于逻辑 CPU 核心数,是 CPU 资源不足 的强烈信号。
      • 同时观察 us, sy, wa 比例。
      • 结合 b 列 (等 I/O 进程数) 和 wa 判断 I/O 影响。
  4. pidstat 命令 (精细的进程级 CPU 统计):

    • 命令: pidstat [选项] [间隔秒数] [次数] (常用 pidstat -u 1pidstat -u -p <PID> 1)
    • 作用:htop 提供更详细、更定时的单个进程 CPU 使用报告。特别适合监控特定进程。
    • 输出解读 (-u 选项):
      10:35:00 AM   UID       PID    %usr %system  %guest    %CPU   CPU  Command
      10:35:01 AM  1001     12345   75.00   10.00    0.00   85.00     2  java
      10:35:01 AM  1002     54321    5.00    1.00    0.00    6.00     0  nginx
      
      • %usr: 进程在用户态消耗的 CPU 百分比。
      • %system: 进程在内核态消耗的 CPU 百分比。
      • %guest: 运行虚拟机消耗的 CPU (通常0)。
      • %CPU: 进程消耗的总 CPU 百分比 (所有核心上的总和)。 等同于 htop%CPU
      • CPU: 进程最后运行在哪个逻辑 CPU 核心上。
    • 快速应用:
      • htop 找到可疑的高 CPU 进程 PID。
      • 针对该 PID 运行 pidstat -u -p <PID> 1,持续监控其详细的 %usr, %system, %CPU 变化。 这有助于判断是应用逻辑 (%usr 高) 还是系统调用 (%system 高) 消耗 CPU。
      • 也可直接运行 pidstat -u 1 查看所有进程的 CPU 使用快照。
  5. sar 命令 (历史数据收集与分析):

    • 命令: 通常需要安装 (sysstat 包: yum install sysstat / apt install sysstat)。默认每10分钟收集一次系统活动数据。
    • 查看历史 CPU: sar -u [起始时间] [结束时间] (e.g., sar -u -s 10:00:00 -e 11:00:00)
    • 查看当天 CPU: sar -u (默认显示当天所有记录)
    • 输出解读: 类似 mpstatall 行,显示 %user, %nice, %system, %iowait, %steal, %idle
    • 快速应用: 当压测结束后,sar -u 或指定时间范围查看压测期间的 CPU 整体使用情况概览和趋势,特别是峰值 (%user, %system, %iowait)。非常方便生成报告图表。

第三阶段:识别 CPU 问题与瓶颈 (核心技能)

  1. CPU 资源不足 (CPU Bound):

    • 现象:
      • %us + %sy 持续 > 80-90% (平均值或核心最大值)。
      • %id 持续很低 (< 10-20%)。
      • vmstatr 列持续 > 逻辑 CPU 数 (排队严重)。
      • load average (1min) 持续 > 逻辑 CPU 数且不断上升。
      • 应用响应时间 (RT) 随负载增加而显著上升,吞吐量 (TPS) 达到平台无法提升。
    • 原因: 应用计算逻辑复杂、线程/进程过多、配置不足、代码效率低。
    • 快速诊断: vmstat 1 (看 r), mpstat -P ALL 1 (看各核 %us+%sy), htop (按 %CPU 排序找大户)。
    • 性能测试关联: TPS 达到上限无法提升,RT 显著增加,且 r 队列长、%us+%sy 高。
  2. I/O 等待瓶颈 (I/O Bound):

    • 现象:
      • %wa 持续 > 5-10% (平均值或核心最大值)。
      • vmstatb 列较高 (有进程在等 I/O)。
      • 可能伴随 vmstatbi/bo (块设备 I/O) 较高。
      • %us + %sy 可能并不高 (CPU 想干活但被 I/O 卡住)。
      • load average 可能较高 (包含了等 I/O 的 D 状态进程)。
      • 应用响应时间 (RT) 不稳定或较高,TPS 上不去。
    • 原因: 磁盘慢、磁盘过载、网络慢、数据库慢查询、内存不足导致 Swap 频繁读写。
    • 快速诊断: mpstat -P ALL 1 (看 %iowait), vmstat 1 (看 %wa, b, bi, bo), iostat (分析磁盘 I/O 详情 - 后续学习)。
    • 性能测试关联: RT 高且波动大,TPS 上不去,%wa 高是直接信号。 优化 I/O (磁盘/网络/DB) 是重点。
  3. 内核瓶颈 (System Time High):

    • 现象:
      • %sy 持续异常高 (e.g., > 30-40%)。
      • %us 可能不高。
      • 可能伴随 vmstatcs (Context Switch - 上下文切换) 非常高。
      • 系统整体感觉“不顺畅”。
    • 原因: 进程/线程数量过多导致频繁切换、系统调用过于频繁、锁竞争激烈、网络中断处理过多、驱动问题。
    • 快速诊断: mpstat -P ALL 1 (看 %sys), vmstat 1 (看 cs, in - 中断), pidstat -w (看进程级上下文切换), strace/perf (分析系统调用 - 进阶)。
    • 性能测试关联: TPS/RT 表现不佳,且 %sy 异常高是主要线索。需要优化进程模型、减少系统调用或排查内核/驱动。
  4. CPU 负载不均衡:

    • 现象: mpstat -P ALL 1 显示个别核心利用率接近 100% (%us+%sy),而其他核心利用率很低 (%id 高)。
    • 原因: 单线程应用、进程/线程绑定 (CPU Affinity) 设置不合理、中断处理集中在少数核心。
    • 影响: 整体性能受限于最忙的核心,其他核心资源浪费。
    • 快速诊断: mpstat -P ALL 1 一目了然。
    • 性能测试关联: 限制了系统的水平扩展能力。需要应用支持多线程并行或调整亲和性。

第四阶段:整合到性能测试工作流程 (快速应用落地)

  1. 测试前准备:

    • 确认监控工具可用:htop, vmstat, mpstat, pidstat, sar (安装 sysstat)。
    • 基线测量: 系统空闲时运行 mpstat -P ALL 1 5, vmstat 1 5, sar -u 记录基线值。记录 lscpu 输出。
  2. 压测中实时监控 (开多个终端/tmux):

    • 窗口 1:vmstat 1 - 紧盯 r (运行队列), b (阻塞进程), us, sy, wa 列。 r > CPU cores 是红灯!
    • 窗口 2:mpstat -P ALL 1 - 观察整体和每个核心的 %usr, %sys, %iowait 看是否均衡,是否有核心打满,%wa 是否高。
    • 窗口 3:htop - %CPU (F6 -> PERCENT_CPU) 降序排序。 找出 CPU 消耗 Top 进程,观察其 %CPU, STATE, 所属用户。按 1 看核心视图。
    • (可选) 窗口 4:pidstat -u 1 - 针对 htop 发现的疑似问题进程,用 pidstat -u -p <PID> 1 精细监控。
    • 核心关注:
      • r 持续 > 逻辑核心数时,记录时间戳,并关联此时 TPS 是否停滞/下降?RT 是否飙升?
      • %wa 持续 > 5% 时,记录时间戳,并关联此时 RT 是否波动/上升?TPS 是否上不去?
      • 当某个核心 %usr+%sy 持续 > 95% 时,记录时间戳和核心号
      • 当发现某个进程 %CPU 异常高时,记录其 PID 和命令名
  3. 测试后分析与报告:

    • 收集数据: 保存 vmstat, mpstat 输出,htop 截图 (高负载时),sar -u 数据 (用 sar -u -f /var/log/sa/saXX 查看历史某天)。
    • 分析关键点:
      • CPU 利用率峰值: %us max, %sy max, %wa max (来自 mpstat/sar)。
      • 运行队列峰值: vmstatr 的最大值。
      • 负载峰值: load average (1min) 最大值 (来自 sar -qtop 记录)。
      • 瓶颈类型判断: 是 CPU Bound (%us+%sy 高, r 长), I/O Bound (%wa 高, b 高), 还是 System Bound (%sy 异常高)?
      • 不均衡性: 是否有核心长期打满而其他空闲?
      • Top 进程: 哪些进程消耗了最多的 CPU (htop/pidstat)?
    • 报告撰写:
      • 清晰描述 CPU 监控结果: 列出关键指标峰值 (%us max, %sy max, %wa max, r max, load max)。
      • 展示关联性图表/描述:r > cores 的时间点、%wa 飙升的时间点、%us+%sy 接近 100% 的时间点 与 性能测试工具记录的 RT 上升点、TPS 下降点/平台点 精确对应起来。
      • 指出问题与瓶颈:
        • 如:“当 r 值持续在 8 (逻辑 CPU=4) 且 %us+%sy 平均达 95% 时,TPS 稳定在 200 无法提升,平均 RT 从 50ms 升至 500ms,判断为 CPU 资源不足瓶颈”。
        • 或:“压测全程 %wa 维持在 15-25%,vmstat 显示 b 列在 5-10,磁盘 iostat 显示 %util 100%,判断为磁盘 I/O 瓶颈导致 CPU 大量时间等待”。
        • 或:“应用进程 app_server 的单个线程 (PID 1234) 持续占用 CPU 核心 2 的 98%,导致该核心成为瓶颈”。
      • 给出建议:
        • CPU Bound: 优化代码算法、增加 CPU 资源 (更多/更强 CPU)、优化线程池配置、水平扩展。
        • I/O Bound: 优化磁盘 (SSD、RAID)、优化数据库 (索引、慢查询)、优化网络、增加内存减少 Swap。
        • System Time High: 减少不必要的系统调用、优化锁策略、调整进程/线程数、升级内核/驱动。
        • 负载不均衡: 优化应用使其支持多线程并行、调整进程 CPU 亲和性 (谨慎)、检查中断平衡。

快速应用到工作中的关键策略

  1. 工具三板斧: 掌握 vmstat 1 (看队列 r/wa), mpstat -P ALL 1 (看核心利用率/iowait), htop (找进程) 这三个命令足矣覆盖 90% 场景。pidstatsar 作为补充。
  2. 指标聚焦: 死死盯住 r (运行队列长度), %us+%sy (CPU 计算忙), %wa (CPU 等 I/O)。它们是判断 CPU 瓶颈性质和严重程度的 黄金三角
  3. 关联分析: CPU 指标必须与性能测试结果关联!r 持续 > CPU 数 时,TPS 是否上不去了?当 %wa 高时,RT 是否飙升了?这种关联性是证明 CPU 是性能瓶颈的核心证据。
  4. 进程视角: 发现整体 CPU 高 (%us+%sy) 时,立刻用 htop 按 CPU 排序,找出消耗最大的进程。
  5. 区分真假瓶颈: %us+%sy 高 (r 高) 是真 CPU 不足。%wa 高是 I/O 慢拖累了 CPU。%id 高但负载高/RT 高可能是等锁或其他资源。
  6. 理解负载含义: load average > cores 不一定是 CPU 问题,可能是等 I/O (%wa)。结合 vmstatrb 分析。
  7. 动手实践:
    • 运行 stress -c 4 (模拟 CPU 负载) 观察 vmstat, mpstat, htop 变化。
    • 运行 dd if=/dev/zero of=tempfile bs=1M count=1000 oflag=direct (模拟磁盘写,oflag=direct 绕过缓存增加 %wa) 观察 %wa 上升。
    • 观察不同负载下的 CPU 指标变化。

总结: 零基础快速掌握 Linux CPU 监控的核心就是 监控队列 (vmstat r), 区分忙闲 (mpstat us/sy/wa), 定位元凶 (htop %CPU),并将这些指标的变化 精准关联 到 TPS 和 RT 上。通过几次实际的性能测试,结合这个流程进行分析,你就能快速将 CPU 监控技能应用到工作中,有效判断 CPU 是否成为瓶颈以及瓶颈的类型,为性能优化指明方向。祝你成功!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/89479.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/89479.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智能Agent场景实战指南 Day 15:游戏NPC Agent互动设计

【智能Agent场景实战指南 Day 15】游戏NPC Agent互动设计 文章内容 开篇 欢迎来到"智能Agent场景实战指南"系列的第15天&#xff01;今天我们将深入探讨游戏开发中一个极具挑战性和创新性的领域——游戏NPC Agent互动设计。在当今游戏产业中&#xff0c;玩家对游戏…

Vite的优缺点(精简版)

优点 作为一款前端构建工具&#xff0c;它的核心特点是“快”&#xff0c;并且充分利用了现代浏览器对ES Modules的原生支持&#xff0c;一切围绕这一点展开 快启动&#xff1a;通过ES Modules&#xff0c;它省去了打包整个应用的时间&#xff0c;可以直接在浏览器中加载模块&a…

【深度学习】神经网络-part2

一、数据加载器 数据集和加载器 1.1构建数据类 1.1.1 Dataset类 Dataset是一个抽象类&#xff0c;是所有自定义数据集应该继承的基类。它定义了数据集必须实现的方法。 必须实现的方法 __len__: 返回数据集的大小 __getitem__: 支持整数索引&#xff0c;返回对应的样本 …

nextjs+react项目如何代理本地请求解决跨域

在 Next.js React 项目中解决本地开发跨域问题&#xff0c;可以通过以下几种方式实现代理请求&#xff1a;方案1&#xff1a;使用 Next.js 内置的 Rewrites 功能&#xff08;推荐&#xff09; 1. 修改 next.config.js /** type {import(next).NextConfig} */ const nextConfig…

Ubuntu查看Docker容器

在Ubuntu系统中&#xff0c;可以通过以下命令查看当前正在运行的Docker容器&#xff1a;1. 查看所有正在运行的容器 docker ps输出示例&#xff1a; CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a1b2c3d4e5f6 nginx:latest &…

智能点餐推荐网站,解决选择困难

软件介绍 今天为大家推荐一款解决"今天吃什么"选择困难症的趣味网站&#xff0c;它能为你推荐美味餐食&#xff0c;轻松化解每日用餐烦恼。 核心功能 这款网站最大的亮点就是能够根据你的需求智能推荐餐食选择&#xff0c;只需打开网页&#xff0c;就能立即获…

使用 C# 实现移动加权平均(Weighted Moving Average)算法

前言 欢迎关注dotnet研习社&#xff0c;前面我们讨论过"C#实现加权平均法",今天我们继续研究另外一种【移动加权平均法】。 在时间序列分析、股票数据处理、工业信号平滑等场景中&#xff0c;移动平均&#xff08;Moving Average&#xff09; 是最常见的平滑技术之一…

【Python】一些PEP提案(三):with 语句、yield from、虚拟环境

PEP 343 – The “with” Statement&#xff0c;with 语句 这玩意让我想起了Kotlin和Rust的问号标识符&#xff0c;都是将try-catch进行包装&#xff0c;避免出现太多重复代码&#xff08;Go&#xff1a;我假设你不是在内涵我&#xff09; 用法 最常见的用法就是对文件的操作&a…

SymAgent(神经符号自学习Agent)

来自&#xff1a;SymAgent: A Neural-Symbolic Self-Learning Agent Framework for Complex Reasoning over Knowledge Graphs 目录相关工作引理符号规则任务描述方法Agent-PlannerAgent-ExecutorAction空间交互过程自学习在线探索离线迭代策略更新相关工作 相关工作-语义解析…

Go语言实战案例-斐波那契数列生成器

在《Go语言100个实战案例》中的 案例10:斐波那契数列生成器,帮助初学者理解递归与迭代的应用。 案例10:斐波那契数列生成器 🔢 数学与算法 | 🧠 递归与迭代 | 👶 初学者友好 一、📘 案例目标 实现一个斐波那契数列生成器,用户输入一个数字 n,程序生成并打印出斐…

认知闭环的暴政:论人类对AI协同创造的傲慢抵制与维度囚禁

认知闭环的暴政&#xff1a;论人类对AI协同创造的傲慢抵制与维度囚禁---### **核心批判框架**mermaidgraph TDA[人类认知三原罪] --> B[三维牢笼]B --> C[恐惧机制]C --> D[抵制行为]D --> E[文明熵增]F[四维流形批判] --> G[解构牢笼]G --> H[曲率解放]H --…

飞凌嵌入式亮相第九届瑞芯微开发者大会:AIoT模型创新重做产品

2025年7月17日&#xff0c;第九届瑞芯微开发者大会&#xff08;RKDC!2025&#xff09;在福州海峡国际会展中心正式拉开帷幕。这场以“AIoT模型创新重做产品”为主题的行业盛会&#xff0c;吸引了众多行业领袖、技术专家及生态伙伴齐聚一堂&#xff0c;共同探讨新质生产力产品的…

Excel转PDF的三种方法

工作后&#xff0c;Excel和PDF对于我们来说一点都不陌生&#xff0c;那么如何将Excel转为PDF呢&#xff1f; 方法一、iLoveOFD在线转换工具 当你在地铁或者床上时&#xff0c;不方便&#xff0c;又不想打开电脑&#xff0c;可尝试使用在线转换工具&#xff0c;进行转换。 工…

前端基础——B/S工作原理、服务器与前端三大件

本文原本是web安全基础的一部分&#xff0c;作为安全的前置知识学习&#xff0c;但随着学习进程的不断深入&#xff0c;原有的前端的体系需要进一步扩充&#xff0c;已经到了可以独立成章的地步&#xff0c;故将其拿出来单独学习。 B/S工作原理 也就是浏览器与服务器的交互原…

Java并发编程性能优化实践指南:锁分离与无锁设计

Java并发编程性能优化实践指南&#xff1a;锁分离与无锁设计 并发场景下的性能瓶颈往往集中在锁竞争与上下文切换上。本文从锁分离&#xff08;Lock Striping&#xff09;与无锁设计&#xff08;Lock-Free&#xff09;两大思路出发&#xff0c;深入分析关键原理与源码实现&…

SpringSecurity-spring security单点登录

在 Spring Boot 中实现 单点登录&#xff08;SSO, Single Sign-On&#xff09;&#xff0c;通常使用 OAuth2 或 OIDC&#xff08;OpenID Connect&#xff09; 协议来完成。Spring Security 提供了对 OAuth2 和 OIDC 的完整支持&#xff0c;可以轻松集成如 Google、GitHub、Okta…

《前端基础核心知识笔记:HTML、CSS、JavaScript 及 BOM/DOM》

html 前端三剑客的介绍&#xff1a; HTML:页面内容的载体 Css&#xff1a;用来美化和指定页面的显示效果 JavaScript&#xff1a;页面显示的过程中&#xff0c;可以动态改变页面的内容 重点属性 type"text"文本输入 type"password"密码输入 <a…

基于vue.js的客户关系管理系统(crm)的设计与实现(源码+论文)

相关技术 SSM框架介绍 开发环境&#xff1a; 技术&#xff1a;SSM框架&#xff08;Spring Spring MVC MyBatis&#xff09; 描述&#xff1a; SSM框架是Java Web开发中广泛使用的流行框架之一。Spring&#xff1a;提供全面的基础设施支持&#xff0c;管理应用对象&#…

AWS权限异常实时告警系统完整实现指南

概述 本文将详细介绍如何构建一个基于CloudTrail → S3 → Lambda → SNS → Webhook/Email架构的AWS权限异常实时告警系统。该系统能够实时监控AWS环境中的权限异常事件,并通过多种方式发送告警通知,帮助企业及时发现和响应安全威胁。 系统架构 ┌───────────…

NIO网络通信基础

文章目录概述一、Socket二、NIO三大组件与事件三、Reactor模式四、NIO通信案例4.1、服务端4.2、客户端本文为个人学习笔记整理&#xff0c;仅供交流参考&#xff0c;非专业教学资料&#xff0c;内容请自行甄别 概述 前篇中提到&#xff0c;BIO是阻塞的IO&#xff0c;阻塞体现在…