现代 linux 仍需 swap,但非越多越好;它防 oom、支撑休眠,大内存无休眠场景可小量配置或用 zram 替代,swappiness=1 更稳妥而非设 0。

swap 分区还能用吗?现代 Linux 还需要它
需要,但不是“越多越好”或“必须有”。swap 在内存吃紧时防止 OOM Killer 杀进程,也支撑休眠(hibernate),但 SSD 频繁写入 swap 会加速磨损,而大内存机器(≥32GB)若不休眠,swappiness=1 下几乎不触发 swap。
- 有休眠需求 → 必须有 swap,大小 ≥ RAM(推荐等于 RAM)
- 纯服务器、无休眠、内存充足 → 可设小 swap(如 2–4GB)或仅用
zram替代 -
swappiness=0不等于禁用 swap:仅在内存真正耗尽时才用,不是“完全不用” - 使用
zswap或zram可减少磁盘 I/O,适合 SSD 或嵌入式设备
怎么查 swap 当前状态和实际使用量
free -h 显示总量,但容易误判“没用”;真正要看的是内核是否在换页、是否有交换延迟。关键指标不在表面数字里。
- 看真实换入换出:
cat /proc/vmstat | grep -E "pgpgin|pgpgout|pswpin|pswpout"——pswpin/pswpout非零说明正在 swap - 查当前活跃 swap 设备:
swapon --show=NAME,TYPE,SIZE,USED,PRIORITY - 观察换页延迟:
vmstat 1中si/so列持续 > 0 表示频繁 swap,需干预 -
/proc/swaps显示挂载顺序,PRIORITY高的先用;同优先级按容量顺序
添加 swap 文件比分区更灵活,但要注意对齐和预分配
swap 文件免重启、易扩容,但若用 dd 创建且未禁用 COW(如 Btrfs/XFS 默认开启),会导致性能暴跌甚至 swap 失效。
Magento是一套专业开源的PHP电子商务系统。Magento设计得非常灵活,具有模块化架构体系和丰富的功能。易于与第三方应用系统无缝集成。Magento开源网店系统的特点主要分以下几大类,网站管理促销和工具国际化支持SEO搜索引擎优化结账方式运输快递支付方式客户服务用户帐户目录管理目录浏览产品展示分析和报表Magento 1.6 主要包含以下新特性:•持久性购物 - 为不同的
- 创建前关 COW:
chattr +C /swapfile(Btrfs)或xfs_io -c "extsize 1m" /swapfile(XFS) - 必须用
fallocate(非dd)预分配空间:fallocate -l 4G /swapfile,否则稀疏文件引发 write stall - 权限必须严格:
chmod 600 /swapfile && mkswap /swapfile && swapon -p 10 /swapfile -
swapon失败常见报错:swapon: /swapfile: swapon failed: Invalid argument→ 多因文件系统不支持或未关 COW
swappiness 设为 1 是保守选择,但别盲目调成 0
swappiness 控制内核倾向把匿名页换出的激进程度(0–100),设为 0 并不阻止 swap,只推迟到内存彻底耗尽——此时可能已来不及回收,OOM Killer 直接介入。
- 桌面环境建议
swappiness=60(默认),兼顾响应与缓存利用 - 数据库/Redis 等内存敏感服务 →
swappiness=1,让内核尽量保留匿名页,靠vmscan回收 pagecache - 临时修改:
sysctl vm.swappiness=1;永久写入/etc/sysctl.d/99-swap.conf - 注意:
swappiness不影响 tmpfs、shmem 或zram的行为,它们走独立路径
swap 文件路径、优先级、是否启用休眠,这些细节一旦配错,故障往往在高负载时才暴露,而且日志里没有直接提示。别只盯着 free 输出那行数字。









