Debian 上评估 Swap 性能,关键是构造可复现的内存压力,并用一组稳定的观测指标对比不同配置(如 swappiness、swap 分区 vs 文件、I/O 调度器、文件系统 等)对延迟与吞吐的影响。
sudo apt update && sudo apt install -y sysstat stress sysbench。swapon --show、free -h、cat /proc/sys/vm/swappiness。vmstat 1 60、sar -r 1 60、iostat -dx 1 60,关注 si/so(swap in/out)、wa(I/O 等待)、磁盘 await/avgqu-sz 等。stress --vm 2 --vm-bytes 80% --timeout 300s(示例将可用内存的 80% 作为工作集,持续 300 秒)。sysbench memory --memory-block-size=1M --memory-total-size=10G --threads=4 run。vmstat 1:关注 si/so(单位 KB/s),持续非零表示内存紧张;wa 高表示 I/O 瓶颈;r/b 反映调度与 I/O 阻塞。sar -r 1 与 free -h:查看内存与 Swap 使用趋势,辅助定位是否由内存不足触发 Swap。iostat -dx 1:关注磁盘 await、svctm、avgqu-sz、util,判断 Swap 背后存储是否成为瓶颈。swapon --show:确认当前启用的 Swap 分区/文件 与大小。cat /proc/sys/vm/swappiness:记录与对比不同 swappiness 下的行为差异。| 场景 | swappiness | si/so 均值 KB/s | wa% | iostat await ms | 备注 |
|---|---|---|---|---|---|
| 基线 | 60 | 0 | 1.2 | 0.8 | 无压力 |
| 轻度换入换出 | 60 | 120 | 8.5 | 6.4 | 工作集略大于内存 |
| 重度换入换出 | 60 | 10240 | 42.1 | 28.7 | 工作集远大于内存 |
| 重度 + swappiness=10 | 10 | 5120 | 25.3 | 16.2 | 换出减少,I/O 下降 |