Debian From Scratch性能如何测试
导读:Debian From Scratch性能测试方案 一 测试目标与环境准备 明确目标:评估CPU计算、内存带宽/延迟、存储I/O吞吐与延迟、网络吞吐与并发、以及应用/内核编译等真实工作负载下的性能表现。 基线对比:准备一台配置相近的标准D...
Debian From Scratch性能测试方案
一 测试目标与环境准备
- 明确目标:评估CPU计算、内存带宽/延迟、存储I/O吞吐与延迟、网络吞吐与并发、以及应用/内核编译等真实工作负载下的性能表现。
- 基线对比:准备一台配置相近的标准Debian环境作为对照,便于量化差异(如容器镜像、内核配置、调度策略、文件系统、挂载选项等)。
- 环境隔离:测试前停止无关服务,尽量在单用户/控制台下运行;确保电源策略为性能模式、CPU 频率固定(避免降频影响),磁盘挂载为noatime/nobarrier(如业务允许),并记录内核版本、CPU型号、内存与磁盘型号。
- 监控与记录:统一使用同一套监控命令采集数据,便于复现与对比(见下文各节命令示例)。
二 CPU与内存性能测试
- 基线计算与内存带宽
- sysbench CPU:测试多线程纯计算吞吐
- 命令:
sysbench cpu --threads=$(nproc) --time=60 run
- 命令:
- sysbench 内存:测试顺序内存访问带宽
- 命令:
sysbench memory --threads=$(nproc) --time=60 run
- 命令:
- sysbench CPU:测试多线程纯计算吞吐
- 压力与调度稳定性
- stress/ stress-ng:多维度并发压力,观察系统稳定性与调度
- 命令:
stress --cpu $(nproc) --io 2 --vm 2 --vm-bytes 128M --timeout 60s
- 命令:
- stress/ stress-ng:多维度并发压力,观察系统稳定性与调度
- 热点与瓶颈定位
- perf:采样热点函数、调用栈与硬件事件
- 采样:
sudo perf record -a -g -o perf.data sleep 30 - 报告:
sudo perf report -g graph
- 采样:
- perf:采样热点函数、调用栈与硬件事件
- 实时监控
- top/htop:观察整体CPU占用与负载
- mpstat/vmstat:每核CPU与系统级资源统计
- 命令:
mpstat -P ALL 1、vmstat 1
以上工具与命令均为Debian常用组合,适合对CPU与内存进行基准与压力测试,并配合perf做深入热点分析。
- 命令:
三 存储与文件系统性能测试
- 顺序与随机I/O(裸设备或挂载点)
- fio:覆盖顺序/随机、不同块大小、并发与直达I/O
- 顺序写:
fio --name=seqwrite --ioengine=libaio --rw=write --bs=1M --size=1G --numjobs=1 --direct=1 --filename=/dev/sdX --runtime=60 - 顺序读:
fio --name=seqread --ioengine=libaio --rw=read --bs=1M --size=1G --numjobs=1 --direct=1 --filename=/dev/sdX --runtime=60 - 4K随机写:
fio --name=randwrite --ioengine=libaio --rw=randwrite --bs=4k --size=1G --numjobs=1 --direct=1 --filename=/dev/sdX --runtime=60 - 4K随机读:
fio --name=randread --ioengine=libaio --rw=randread --bs=4k --size=1G --numjobs=1 --direct=1 --filename=/dev/sdX --runtime=60
- 顺序写:
- dd(快速校验,仅顺序)
- 写:
dd if=/dev/zero of=/mnt/testfile bs=1M count=1024 oflag=direct - 读:
dd if=/mnt/testfile of=/dev/null bs=1M count=1024 iflag=direct
- 写:
- fio:覆盖顺序/随机、不同块大小、并发与直达I/O
- 运行时监控
- iostat:查看吞吐、IOPS、延迟与队列
- 命令:
iostat -x 1
- 命令:
- iostat:查看吞吐、IOPS、延迟与队列
- 关键指标
- 带宽(MB/s)、IOPS、延迟(ms)、平均队列长度(avgqu-sz)、利用率(%util)
以上方法覆盖分卷/裸设备的顺序与随机I/O基准测试,并通过iostat辅助分析存储子系统表现。
- 带宽(MB/s)、IOPS、延迟(ms)、平均队列长度(avgqu-sz)、利用率(%util)
四 网络与应用层性能测试
- 网络吞吐与并发
- iperf3:点对点吞吐测试
- 服务端:
iperf3 -s - 客户端:
iperf3 -c 192.0.2.10 -t 30 -P 4
- 服务端:
- iperf3:点对点吞吐测试
- HTTP服务压测
- ab(Apache Bench):短连接并发
- 命令:
ab -n 10000 -c 200 http://localhost/
- 命令:
- wrk:高并发长连接
- 命令:
wrk -t12 -c400 -d30s http://localhost:3000
- 命令:
- ab(Apache Bench):短连接并发
- 应用微基准
- Node.js:内置高精度计时与基准库
- 代码计时:
performance.now()测量函数执行时间 - 基准套件:
benchmark.js对比代码片段性能
- 代码计时:
- Node.js:内置高精度计时与基准库
- 说明
- 若采用极简环境(如Docker 的 scratch 镜像仅添加 Debian rootfs),需自行在镜像内安装所需工具(如 iperf3、wrk、ab、nodejs 等)后再执行测试。
五 构建与综合场景测试
- 内核编译基准
- 命令:
time make -j$(nproc) - 建议:在相同源码树、相同.config、相同挂载选项下,分别在DFS与对照系统各编译2–3次取中位数,对比总耗时与系统负载曲线(用
vmstat 1/iostat -x 1记录)。
- 命令:
- 结果记录与对比
- 统一记录:测试命令、参数、环境信息(内核/CPU/内存/磁盘/挂载选项)、监控日志与关键指标;使用表格或图表对比DFS与对照系统的差异,定位是内核配置、C库/编译器、文件系统/挂载还是调度/电源策略导致的性能变化。
内核编译是评估系统综合性能(CPU、I/O、内存、调度)的有效工作负载;配合time与系统监控可直观量化差异。
- 统一记录:测试命令、参数、环境信息(内核/CPU/内存/磁盘/挂载选项)、监控日志与关键指标;使用表格或图表对比DFS与对照系统的差异,定位是内核配置、C库/编译器、文件系统/挂载还是调度/电源策略导致的性能变化。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian From Scratch性能如何测试
本文地址: https://pptw.com/jishu/749289.html
