CentOS 下评估 Swap 性能的工具与用法
一、工具总览与适用场景
| 工具 | 作用 | 典型用途 |
|---|---|---|
| fio | 面向文件/设备的灵活 I/O 基准测试 | 直接对 Swap 设备或 Swap 文件做顺序/随机、读/写带宽与 IOPS 测试 |
| sysbench(内存场景) | 生成内存压力,触发系统使用 Swap | 通过内存分配与回收压力,观察 si/so 与整体延迟变化 |
| vmstat | 系统级资源与 Swap 活动监控 | 实时查看 si/so、内存与 CPU 等待,判断是否发生换页 |
| free | 内存与 Swap 使用概况 | 快速查看 Swap 总量/已用/空闲 |
| swapon / swapon -s | 查看与启用 Swap | 确认 Swap 设备/文件、优先级与大小 |
| iostat / sar(sysstat) | 磁盘 I/O 统计与历史回放 | 评估底层磁盘吞吐、IOPS、await,关联 Swap 性能瓶颈 |
| dstat | 综合资源监控 | 同时观察 Swap、CPU、磁盘、网络等 |
| top/htop | 进程级内存占用 | 定位占用内存/触发换页的进程 |
| 以上工具覆盖“产生压力—采集指标—定位进程”的完整链路,适合在 CentOS 7/8/9 环境进行 Swap 性能评估与诊断。 |
二、快速上手流程
sudo dd if=/dev/zero of=/swapfile bs=2G count=1
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile swap swap defaults 0 0' | sudo tee -a /etc/fstab
swapon -s
watch -n 1 'free -h'
vmstat -w 1
iostat -dx 1
fio --ioengine=libaio --bs=4k --direct=1 --thread --time-based \
--rw=write --filename=/swapfile --runtime=60 --numjobs=1 --iodepth=1 \
--group_reporting --name=swap-seq-write
sysbench memory --memory-block-size=1G --memory-total-size=1G --time=60 run
三、关键命令示例
fio --ioengine=libaio --bs=4k --direct=1 --thread --time-based \
--rw=randread --filename=/swapfile --runtime=60 --numjobs=1 --iodepth=1 \
--group_reporting --name=swap-randread
fio --ioengine=libaio --bs=4k --direct=1 --thread --time-based \
--rw=randwrite --filename=/swapfile --runtime=60 --numjobs=1 --iodepth=1 \
--group_reporting --name=swap-randwrite
fio --ioengine=libaio --bs=4k --direct=1 --thread --time-based \
--rw=read --filename=/swapfile --runtime=60 --numjobs=1 --iodepth=1 \
--group_reporting --name=swap-seq-read
fio --ioengine=libaio --bs=4k --direct=1 --thread --time-based \
--rw=write --filename=/swapfile --runtime=60 --numjobs=1 --iodepth=1 \
--group_reporting --name=swap-seq-write
free -h
vmstat -w 1
swapon -s
iostat -dx 1
dstat -ta 10
sar -S 1 60 # 需安装并启用 sysstat
cat /proc/sys/vm/swappiness
sudo sysctl vm.swappiness=10
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
上述命令覆盖从“压测—监控—参数”的完整闭环,便于量化 IOPS/带宽/延迟 并关联系统行为。
四、结果解读与优化建议