服务器为何要使用swap分区?swap分区设置多少合适

在服务器环境中使用 Swap(交换空间)是一个需要谨慎权衡的技术决策,虽然 Swap 可以作为物理内存不足时的“救命稻草”,但它也会显著影响系统性能。

以下是关于服务器使用 Swap 分区的全面指南,包括最佳实践、配置建议、优缺点分析以及现代替代方案。

设置SWAP分区,榨干云服务器性能
加载中
设置SWAP分区,榨干云服务器性能

核心原则:Swap 不是内存的替代品

  • 性能差异巨大:物理内存(RAM)的读写速度比硬盘(即使是 SSD)快几个数量级,当系统频繁使用 Swap 时,会导致严重的磁盘 I/O 瓶颈,表现为系统响应极慢、延迟飙升。
  • 定位:Swap 应仅作为防止 OOM(Out of Memory)崩溃的最后防线,而不是日常运行的主力内存。

Swap 大小建议

Swap 的大小取决于你的物理内存大小和业务类型:

服务器为何要使用swap分区?swap分区设置多少合适

物理内存 (RAM) 推荐 Swap 大小 说明
< 2 GB 2 × RAM 确保有足够的缓冲空间防止崩溃。
2 GB – 8 GB 等于 RAM 平衡内存与交换空间。
8 GB – 64 GB 4 GB – 8 GB 4GB 足够作为安全网;若运行大型数据库(如 MySQL/PostgreSQL),可适当增加。
> 64 GB 4 GB – 16 GB 大内存服务器通常不需要大量 Swap,主要目的是防止突发峰值导致 OOM。

注意:对于云服务商(如 AWS、简米云、酷番云)提供的实例,通常建议开启 Swap,但大小不宜过大,以免掩盖内存泄漏问题。


关键配置:Swappiness 参数

Linux 内核通过 vm.swappiness 参数控制使用 Swap 的倾向。

  • 取值范围:0 – 100
  • 默认值:通常是 60(Ubuntu/CentOS 可能不同)。
  • 推荐值:
    • 数据库服务器 / 高性能应用:建议设置为 10 或 0。
      • 0:仅在物理内存完全耗尽时才使用 Swap。
      • 10:轻微使用 Swap,但极力避免。
    • 桌面环境 / 一般用途服务器:保持默认或设为 10-20。

如何修改 Swappiness:

# 查看当前值
cat /proc/sys/vm/swappiness
# 临时修改(重启后失效)
sudo sysctl vm.swappiness=10
# 永久修改
sudo sed -i 's/vm.swappiness=./vm.swappiness=10/' /etc/sysctl.conf
sudo sysctl -p

创建 Swap 的两种方法

Swap 文件(推荐,灵活)

无需重新分区,适合云主机和已运行的服务器。

# 1. 创建 4GB 的 swap 文件
sudo fallocate -l 4G /swapfile
# fallocate 不可用,使用 

服务器为何要使用swap分区?swap分区设置多少合适

dd 命令: # sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 # 2. 设置权限 sudo chmod 600 /swapfile # 3. 格式化为 swap sudo mkswap /swapfile # 4. 启用 swap sudo swapon /swapfile # 5. 永久生效:添加到 /etc/fstab echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Swap 分区(传统,性能略优)

适用于物理机或安装时已分区的场景。

# 假设 /dev/sdb1 是预留的 swap 分区
sudo mkswap /dev/sdb1
sudo swapon /dev/sdb1
# 在 /etc/fstab 中添加:/dev/sdb1 none swap sw 0 0

何时应该禁用 Swap?

在以下场景中,建议禁用 Swap 或将其 Swappiness 设为 0:

  1. 实时交易系统 / 高频交易:任何磁盘 I/O 都可能导致不可接受的延迟。
  2. 容器化环境(Docker/K8s):
    • Kubernetes 默认建议禁用 Swap,因为 kubelet 无法准确管理容器内存限制。
    • 如果必须使用,需确保 Docker 和 K8s 版本支持 Swap 管理,并仔细调优。
  3. SSD 寿命敏感环境:频繁写入 Swap 会加速 SSD 磨损(虽然现代 SSD 寿命较长,但仍需考虑)。
  4. 内存充足且无突发峰值风险:如果服务器内存始终有 30% 以上空闲,Swap 几乎无用,反而增加复杂性。

监控与调优

如何监控 Swap 使用情况?

# 查看整体内存和 swap 使用情况
free -h
# 查看哪些进程在使用 swap
sudo smem -t -k -P | head -n 20
# 实时监控
sudo htop  # 按 F2 -> Setup -> Display options -> 勾选 "Swap usage"

常见陷阱:

服务器为何要使用swap分区?swap分区设置多少合适

  • Swap 使用率高但系统仍慢:说明系统正在“抖动”(Thrashing),即频繁在内存和磁盘间交换数据,此时应增加物理内存或优化应用内存使用,而不是调整 Swap 大小。
  • OOM Killer 触发:Swap 已满且物理内存耗尽,Linux 会启动 OOM Killer 杀死进程,可通过 dmesg | grep -i "out of memory" 查看被杀死的进程。

现代替代方案:zRAM / zswap

对于内存受限的服务器(如小型 VPS、嵌入式设备),推荐使用 zRAM:

  • 原理:在 RAM 中划分一块区域,作为压缩的 Swap 设备。
  • 优点:
    • 数据在内存中压缩后交换,速度远快于磁盘 Swap。
    • 减少磁盘 I/O,延长 SSD 寿命。
    • 无需额外磁盘空间。
  • 适用场景:内存小(如 1GB-2GB)的服务器、容器节点。
# Ubuntu/Debian 安装 zram
sudo apt install zram-tools
# 编辑 /etc/default/zramswap 调整压缩算法和大小

总结建议

  1. 大多数生产服务器:保留 Swap,但设置 swappiness=10,大小 4GB 左右即可。
  2. 高性能/低延迟应用:禁用 Swap,确保物理内存充足。
  3. 小内存 VPS:优先使用 zRAM 而非磁盘 Swap。
  4. 永远不要依赖 Swap 来解决内存不足的问题:它只是临时缓冲,根本解决方案是优化代码、增加内存或水平扩展。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/482388.html

赞 (0)
服务器管理器找不到角色怎么办?如何添加服务器角色
上一篇 2026年7月11日 17:27
如何将Excel数据转化为图表?excel图表制作教程
下一篇 2026年7月11日 17:29

相关推荐

  • 怎么修改服务器的IP地址,具体操作步骤有哪些?

    修改服务器的IP地址不需要依赖任何第三方“修改器”软件,直接通过操作系统内置的网络配置工具、命令行或管理面板即可完成,核心在于掌握静态IP地址、子网掩码、默认网关和DNS的赋值逻辑,并根据你的服务器操作系统(Linux/Windows)选择对应的方法,服务器IP修改前的核心参数与准备在动手修改之前,你需要理解一……

    2026年7月16日
    2000
  • 分布式缓存服务真的好吗?分布式缓存服务优缺点详解

    分布式缓存服务不仅好,而且是构建高并发、低延迟现代应用架构的绝对刚需,它能显著提升系统响应速度并保护后端数据库,想象一下,你的网站像一家生意火爆的餐厅,如果每来一位顾客点菜,厨师都要亲自去遥远的农场现摘蔬菜、现杀鸡鸭,那排队等待的时间会让顾客绝望,分布式缓存服务就像是在餐厅门口设置了一个巨大的“半成品备货区……

    2026年7月3日
    12100
  • AI大模型时代书真的有用吗?如何挑选优质AI大模型时代书

    从知识载体到思维伴侣传统的书籍是单向的输出,读者被动接收,而在大模型辅助下,阅读变成了双向的交互,好的书籍内容应当具备以下特征:结构化极强:便于AI抓取关键逻辑,而非散乱的碎片,场景化落地:提供具体的应用案例,而非抽象的理论,开放性结论:鼓励读者结合AI工具进行二次创作,而非给出唯一标准答案,人机协作的新阅读范……

    2026年6月13日
    2700
  • 发送短信验证平台哪家好一些,怎么选最靠谱

    选择短信验证平台,核心是看送达率、稳定性和价格,对于多数业务场景,建议优先考虑有工信部资质和自建通道的头部服务商,短信验证码平台哪家好?选择标准全解析面对市面上几十家短信服务商,筛选出靠谱的平台并不容易,业内专家指出,评估一个短信验证码平台的好坏,需要从四个维度逐个过筛:通道质量、接口能力、价格体系和售后服务……

    2026年7月27日
    700
  • i3服务器能用于MRS弹性云服务器吗?,哪种规格最合适?

    i3服务器_MRS所使用的弹性云服务器规格,核心答案是华为云弹性云服务器ECS的i3系列,专为MRS大数据集群优化,主打高性价比与本地NVMe SSD加速,选型时优先看数据盘容量和节点职责,i3服务器与MRS使用的弹性云服务器规格怎么选很多朋友第一次接触MRS(MapReduce服务)时,会被控制台上那一长串规……

    2026年8月13日
    500
  • 佛山当地网站建设公司哪家好?佛山网站建设公司排名

    佛山当地网站建设公司能为您提供从域名注册、服务器配置到SEO优化的全链路服务,选择本地团队的核心优势在于沟通零时差、响应速度快以及更懂本土商业逻辑,这比远程外包或纯模板建站更能保障项目落地效果,在数字化浪潮席卷各行各业的今天,企业官网早已不是简单的“网络名片”,而是品牌信任背书、获客转化和售后服务的第一阵地,对……

    2026年7月4日
    11200
  • 大模型微调Domain Adaptation教程怎么做?大模型微调需要哪些数据准备

    大模型微调的核心在于通过特定领域数据对通用基座模型进行参数优化,使其在垂直场景下具备更精准的理解与生成能力,而非重新训练整个模型,在2026年的AI应用落地浪潮中,企业不再满足于通用大模型的“泛泛而谈”,而是迫切需要将模型“驯化”为懂行业黑话、懂业务逻辑的专家,微调(Fine-tuning)正是实现这一目标的关……

    2026年6月17日
    3200
  • 机器学习分类方法是什么?,有哪些常见算法

    对于分类任务,没有一种算法能包打天下,逻辑回归、决策树、支持向量机和朴素贝叶斯各有适用边界,选择的关键在于数据分布特征、业务对可解释性的要求以及计算资源限制,理解这些方法的本质差异,是搭建高效分类系统的第一步,分类方法机器学习的主流算法对比逻辑回归与决策树的适用场景逻辑回归擅长处理线性可分数据,在特征空间较大时……

    2026年7月16日
    1000
  • 服务器引导盘的正确使用方法是什么,怎么用?

    服务器引导盘是服务器部署中专门用于启动和安装操作系统的核心介质,它的制作和选择直接关系到服务器能否顺利识别硬件和加载存储驱动,与普通PC启动盘在驱动集成、文件系统和引导方式上存在本质区别,服务器引导盘和普通电脑启动盘的区别很多人在第一次部署服务器时,习惯用普通电脑的启动盘去安装系统,结果发现无法识别硬盘或无法启……

    2026年7月24日
    1400
  • 服务器GPRS通信不稳定怎么办?服务器GPRS通信模块配置教程

    服务器通过GPRS通信实现远程数据传输的核心在于利用运营商蜂窝网络建立低功耗、广覆盖的无线连接,其优势在于无需布线即可在移动或偏远场景下完成数据回传,但需接受带宽有限和延迟较高的技术限制,在物联网(IoT)和远程监控领域,如何让服务器与分散各地的终端设备保持“在线”状态,是一个既基础又关键的问题,GPRS(通用……

    2026年7月9日
    5100

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注