Debian系统压力测试
2026-1-5
| 2026-1-5
字数 2435阅读时长 7 分钟
type
status
date
slug
summary
tags
category
icon
password

1. 安装压力测试软件

2. 压力测试

可以使用下面这条命令。它会自动利用所有 CPU 核心,并占用你总内存的 85%(预留 15% 给系统内核和其他进程,防止死机或触发 OOM 杀手),且设置了 60 秒后自动停止,防止系统长时间卡顿无法恢复。建议直接在命令行使用 stress-ng,然后开着 s-tui 的 "Monitor" 模式在旁边观察。

“长时间 + 全方位”测试命令

 
这条命令会测试 30分钟,同时压测 CPU、内存和磁盘。
命令详解:
  • -cpu 0: 自动检测并满载所有 CPU 核心。
  • -vm 1 --vm-bytes 85%: 使用 85% 的物理内存进行测试,保留 15% 给系统,防止死机。如果你确定当前没有运行浏览器或其他耗内存的软件,想把内存压榨到 90% - 95%,可以修改百分比。
⚠️ 警告:不要设置为 100%,否则 Linux 内核的 OOM Killer(内存溢出杀手)会立即介入,它可能会杀掉 stress-ng,也有极小概率误杀你的桌面环境导致图形界面重启。对于 16GB 内存,保留 5-10% 是最安全的做法。
  • -hdd 1: 启动 1 个磁盘读写进程。
  • -hdd-bytes 4G关键保护。限制每次只写 4GB 的临时文件,而不是填满整个硬盘。这样可以测试读写速度,但不会耗尽磁盘空间。
  • -temp-path /tmp关键保护。强制将测试文件写在 /tmp 目录下。
    • Linux 的 /tmp 通常挂载在内存(tmpfs)或系统盘中,系统重启会自动清理。
    • 进阶技巧:如果你不想伤硬盘,可以将此路径指向一个挂载在内存的目录(如 /dev/shm),那样就完全不写物理磁盘,只测 IO 控制器(但这样就测不到真实磁盘了)。
  • -timeout 30m: 运行 30 分钟后自动停止。你可以改为 1h(1小时)或 0(无限运行,直到你按 Ctrl+C)。
  • -metrics-brief:
    • 在测试结束时输出一个简短的报告,告诉你测试期间的性能数据。

3. s-tui监视界面

在运行stress-ng压力测试软件后,可以通过开启另外一个终端界面来监控系统的状态,界面如下:
notion image
可以查看CPU的温度、频率,利用率。

3.1. Temp (温度监控)

这一列显示系统各个部位的温度传感器。在压力测试中,这是最重要的一列。
  • PackageId0, 0: 这是整个 CPU 封装(物理 CPU)的温度
    • 重点关注:做压力测试时,主要看这一项。如果它接近 90°C 或 100°C,说明散热可能撑不住了。
  • Core X, 0 (如 Core0, Core8...): 这是 CPU 内部各个具体核心的温度。
    • 你会发现这里显示的不是连续的(比如有 Core8, Core12...),这是因为某些 CPU 架构只会在特定的物理位置放置传感器,或者多个逻辑核心共享一个物理核心的温度传感器。
  • Acpitz, 0: 通常指主板上的 ACPI 热区温度(可能是主板芯片组或插槽附近)。
  • Composite, 0: 这是一个综合温度读数(通常是多个传感器的加权平均或最高值)。

3.2. Frequency (频率监控)

这一列显示 CPU 的运行频率(MHz/GHz)。
  • Avg: 所有核心的平均频率。
  • Core 0 - Core 31: 每个独立逻辑核心的实时频率。
  • 压力测试时的作用:用来观察是否发生降频(Throttling)
    • 正常情况:压力测试开始后,频率应该稳定在一个高值(比如基频或全核睿频)。
    • 异常情况:如果温度(Temp)飙升,而这里的频率突然大幅下降(例如从 3.0GHz 掉到 800MHz),说明 CPU 因为过热触发了保护机制,正在强制降频。

3.3. Util (使用率监控)

这一列显示 CPU 的负载百分比。
  • Avg: 全局平均使用率。
  • Core 0 - Core 31: 每个核心的使用率。
  • 压力测试时的作用:用来验证测试命令是否生效。
    • 如果你运行了 stress-ng,这里的所有核心(或者你指定的核心)应该显示为 100%。如果只有 50% 或更低,说明压力不够,或者被其他瓶颈(如内存带宽)卡住了。

3.4. 内存的使用情况

安装htop工具来看看内存使用情况等信息。
另外开启一个终端运行
得到以下界面
notion image

4. 测试报告

这里给出一个测试报告内容的解释
这份 stress-ng 的测试报告显示你的系统顺利完成了 1 分钟的混合压力测试。结论是:系统在 CPU 满载、内存高占用和高强度磁盘读写的混合压力下表现稳定,且磁盘读写速度相当快。
下面我为你逐行解读这份报告的含义:

4.1. 测试环境确认 (Info 部分)

dispatching hogs: 32 cpu, 1 vm, 1 hdd
  • 32 cpu: 系统识别出你有 32 个逻辑核心(可能是 16核32线程,或者 32个物理核),并且全部参与了满载测试。
  • 1 vm: 启动了一个内存压力进程(占用 85% 内存)。
  • 1 hdd: 启动了一个磁盘读写进程(限制在 4GB 文件大小)。
  • 状态: 正常启动,没有报错。

4.2.核心性能指标 (Metrics 表格)

表格中的 "bogo ops" 是 stress-ng 自定义的“伪操作次数”(Bogus Operations),数值越大代表处理的任务越多,性能越强。
CPU 行
cpu 2018839 ... 1773.51 (usr time)
  • 解读: 在 60 秒内,CPU 完成了约 200 万次 基础运算循环。
  • 关键点: 注意看 usr time(用户态时间)是 1773.51秒,而 real time(真实流逝时间)只有 60.02秒
      • 这意味着你的 32 个核心确实都在并行工作(数值接近 32 说明并行效率很高,有一点损耗是正常的系统开销)。
    VM 行 (内存)
    vm 1123178 ...
    • 解读: 内存测试进程完成了约 112 万次 的分配/写入/释放循环。
    • 结论: 内存吞吐量很大,且在 85% 的高占用下没有被系统杀掉,说明内存控制器和系统稳定性良好。
    HDD 行 (磁盘)
    hdd 669902 ...
    • 解读: 磁盘进程完成了约 67 万次操作。具体速度看下面的详细数据。

    4.3. 磁盘速度详解 (Miscellaneous Metrics)

    可以通过以下命令,查看/tmp时挂在在内存还是磁盘,以下命令输出显示/tmp目录是落在了物理磁盘的。
    这是最直观反映硬盘性能的部分:
    • 解读:
      • 你的磁盘读写速度均达到了 1.2 GB/s (1200 MB/s) 左右。
      • 评价: 这是一个非常快的速度。
        • 如果你是 SATA SSD(通常上限 550MB/s),这个数据说明系统使用了大量的 RAM Cache (内存缓存) 来加速写入,因为数据还没来得及落盘就被读出来了(因为我们之前限制了 4GB 文件,内存够大时系统会偷懒)。
        • 如果你是 NVMe SSD,这个速度是符合预期的(中端 NVMe 速度),且表现非常强劲。
    • 注意: 这个速度是在 CPU 和内存同时满载的情况下测得的,说明系统的 IO 调度能力很强,没有因为 CPU 忙不过来而导致磁盘降速。

    4.4. 总结

    • 测试结果PASS (通过)
      • successful run completed: 没有任何进程崩溃,没有触发 OOM (内存溢出),没有 I/O 错误。
    • 系统状况:
      • 你的 32 核 CPU 算力释放充分。
      • 内存虽然被占用了 85%,但依然能支撑高速的磁盘缓存和 CPU 调度。
      • 散热情况:你可以回忆一下刚才测试时风扇是否起飞,如果刚才没死机,说明散热也能压住这 1 分钟的爆发。
     
  • 开发
  • Debian12本地安装软件包Mobilint NPU评估
    Loading...