当前位置: 首页 > news >正文

服务器卡顿元凶:你真的搞懂 Linux 交换分区了吗?

文章目录

    • 一、计算机存储器层次结构
      • 1. CPU 寄存器
      • 2. CPU 高速缓存(CPU Cache)
      • 3. 主存储器(内存)
      • 4. 辅助存储器
    • 二、计算机存储器工作原理
    • 三、物理内存与虚拟内存核心机制
      • 1. 物理内存分页机制
      • 2. 虚拟内存的核心价值
    • 四、Linux 交换空间(Swap)详解
      • 1. Swap 空间定义与核心功能
      • 2. 内存与 Swap 空间查看
        • 输出参数说明:
      • 3. Swap 空间规划建议
    • 五、Swap 空间实战部署
      • 1. 创建 Swap 分区
      • 2. 格式化 Swap 空间
      • 3. 激活与管理 Swap 空间
        • 临时激活(重启后失效)
        • Swap 优先级配置
        • 取消 Swap 激活
      • 4. 持久化配置(重启后自动激活)
    • 六、总结

一、计算机存储器层次结构

计算机存储介质遵循核心规律:访问速度越快,硬件成本越高。为实现性能与成本的最优平衡,现代计算机采用分层塔式存储架构,各级存储协同工作、取长补短,构建高效的存储体系。

1. CPU 寄存器

CPU 内部集成的小型高速存储区域,用于临时存放运算数据、运算结果及 CPU 运行所需的关键信息,是存储体系中访问速度最快的层级,容量极小但响应延迟极低。

2. CPU 高速缓存(CPU Cache)

由 SRAM 芯片构成,直接集成于 CPU 芯片内部,访问速度接近 CPU 主频,容量远小于主存但性能优势显著。在存储金字塔中位列第二层,仅次于 CPU 寄存器,用于缓存高频访问数据,减少 CPU 对主存的访问频次。

3. 主存储器(内存)

主存储器(Main memory)简称主存或内存,是 CPU 可直接随机存取的核心存储介质,用于存放运行指令与数据。其访问速度慢于 CPU 高速缓存,但存储容量大幅提升,是系统运行的核心数据载体。

主存性能核心指标为存取时间(单位:纳秒 ns),主流 SDRAM 芯片存取时间多为5-10ns;带宽计算公式为:带宽=频率×位宽/8。以 DDR4-3600内存为例:

  • 单通道:3600MHz × 64bit / 8 = 28800MB/S

  • 双通道:3600MHz × 64bit × 2 / 8 = 57600MB/S

4. 辅助存储器

以机械磁盘、光盘、U 盘等为代表,访问速度远低于主存,但具备容量大、数据可持久化存储的优势,用于长期保存系统数据与用户文件。

二、计算机存储器工作原理

CPU 运行程序时,遵循“层级就近访问”原则,逐级查找所需数据,确保访问效率最大化:

  1. 优先从 CPU 寄存器读取数据,命中则直接使用;

  2. 寄存器未命中时,从 CPU 高速缓存读取数据,并缓存至高速缓存;

  3. 高速缓存未命中时,从主存读取数据,并缓存至主存;

  4. 主存未命中时,从辅助存储器读取数据,并缓存至主存,供后续访问使用。

三、物理内存与虚拟内存核心机制

1. 物理内存分页机制

Linux 系统将物理内存划分为固定大小的块(标准大小为4KiB),称为页(Page)。进程不直接寻址物理内存,而是拥有独立的虚拟地址空间(Virtual Address Space),通过内存管理单元(MMU)实现虚拟地址(VA)到物理地址(PA)的映射。

MMU(Memory Management Unit)是 CPU 内置的控制线路,负责虚拟内存与物理内存的管理,完成地址映射并提供内存访问授权,是保障内存高效、安全使用的核心组件。

2. 虚拟内存的核心价值

虚拟内存容量为物理内存与交换空间的总和,通过虚拟地址映射实现两大核心优势:

  • 解决内存碎片化问题:进程所需的虚拟地址空间是连续的,MMU 可将其映射到分散的物理内存地址,避免进程频繁创建与退出导致的内存碎片;

  • 突破物理内存限制:通过交换空间扩展可用内存容量,满足进程运行的内存需求。

四、Linux 交换空间(Swap)详解

1. Swap 空间定义与核心功能

Linux Swap 空间是内核内存子系统管理的磁盘区域,作为虚拟内存的重要组成部分,核心作用是在物理内存不足时,临时存储数据以释放内存资源,与 Windows 系统的虚拟内存(pagefile.sys)功能一致。其核心功能分为三点:

  1. 内存过载调度:当物理内存使用率超过阈值时,内核将进程的空闲内存页写入 Swap 空间,释放物理内存供其他进程使用;

  2. 数据按需调度:进程需访问磁盘上的页面时,内核将空闲内存页写入 Swap,再从 Swap 中调取所需页面至内存;

  3. 加速数据访问:若进程所需数据已存储在 Swap 空间,可直接从 Swap 读取,无需访问原始磁盘位置,提升访问效率。

需注意:Swap 空间仅为临时兜底方案,其访问速度远低于物理内存,若需提升系统性能,优先扩容物理内存。

2. 内存与 Swap 空间查看

通过 free 命令可查看系统内存与 Swap 空间使用情况,默认单位为 KiB,-m 选项可切换为 MiB 单位:

[root@centos7 ~]# freetotal usedfreeshared buff/cache available Mem:40261563304603528844121361668523485576Swap:406322804063228
输出参数说明:

Mem(物理内存)

  • total 为总容量
  • used 为已用容量
  • free 为完全空闲容量
  • shared 为进程共享内存
  • buff/cache 为缓冲区与缓存占用容量
  • available 为可用内存容量;

Swap(交换空间)

  • total 为总容量
  • used 为已用容量
  • free 为空闲容量。

3. Swap 空间规划建议

Swap 空间大小需根据系统物理内存容量与业务负载规划,以下为通用参考标准(适用于多数生产环境):

物理内存(RAM)常规 Swap 空间大小支持休眠(Hibernate)时的 Swap 空间大小
2GiB 及以下2倍 RAM3倍 RAM
2GiB - 8GiB等于 RAM2倍 RAM
8GiB - 64GiB至少4GiB1.5倍 RAM
64GiB 以上至少4GiB不建议开启休眠

注:笔记本与台式机的休眠功能需依赖 Swap 空间保存内存数据,此类设备需确保 Swap 空间容量大于物理内存。

五、Swap 空间实战部署

1. 创建 Swap 分区

通过 parted 工具创建专用 Swap 分区,步骤如下:

# 1. 初始化磁盘分区表(GPT 格式)[root@centos7 ~]# parted /dev/sdb mklabel gpt# 2. 创建 Swap 分区(示例:2GiB 大小,分区类型为 linux-swap)[root@centos7 ~]# parted /dev/sdb unit MiB mkpart swap01 linux-swap 1 2049# 3. 查看分区创建结果[root@centos7 ~]# parted /dev/sdb unit MiB print

2. 格式化 Swap 空间

使用 mkswap 命令对创建的分区进行格式化,生成 Swap 文件系统:

[root@centos7 ~]# mkswap /dev/sdb1Setting up swapspace version1, size=2097148KiB no label,UUID=2bf4e179-3648-4412-9495-3b278df4acd6

3. 激活与管理 Swap 空间

临时激活(重启后失效)
# 激活 Swap 分区[root@centos7 ~]# swapon /dev/sdb1# 查看已激活的 Swap 设备列表[root@centos7 ~]# swapon -sFilename Type Size Used Priority /dev/dm-1 partition40632280-2/dev/sdb1 partition20971480-3
Swap 优先级配置

多 Swap 空间场景下,可通过 -p 选项设置优先级(范围-1~32767,值越大优先级越高),系统优先使用高优先级 Swap 空间:

# 激活并设置优先级为4[root@centos7 ~]# swapon -p 4 /dev/sdb1
取消 Swap 激活
# 取消单个 Swap 分区激活[root@centos7 ~]# swapoff /dev/sdb1# 查看取消后状态[root@centos7 ~]# swapon -sFilename Type Size Used Priority /dev/dm-1 partition40632280-2

4. 持久化配置(重启后自动激活)

修改 /etc/fstab 文件,添加 Swap 分区配置,实现开机自动激活:

# 编辑 /etc/fstab 文件,添加以下内容(替换为实际 UUID)UUID=2bf4e179-3648-4412-9495-3b278df4acd6 swap swappri=400# 激活 /etc/fstab 中所有 Swap 设备[root@centos7 ~]# swapon -a# 验证激活结果[root@centos7 ~]# swapon -sFilename Type Size Used Priority /dev/dm-1 partition40632280-2/dev/sdb1 partition20971480-3

如需临时关闭所有 Swap 设备,可执行swapoff -a命令。

六、总结

Linux Swap 空间是虚拟内存体系的核心组成部分,通过磁盘空间扩展物理内存容量,有效缓解系统内存不足的问题。本文从计算机存储层级、虚拟内存原理切入,详细讲解了 Swap 空间的规划、创建、激活与持久化配置,覆盖生产环境全流程实操要点。

核心要点回顾:Swap 空间仅为兜底方案,无法替代物理内存性能;需根据系统内存容量合理规划 Swap 大小,多 Swap 场景可通过优先级优化调度效率;生产环境务必配置持久化激活,确保系统重启后 Swap 空间正常生效。掌握 Swap 管理技能,是保障 Linux 系统稳定运行的关键环节。

http://www.cnnetsun.cn/news/3825027.html

相关文章:

  • 基于Spring Boot+Vue的精品课程网站的设计与开发(毕业设计源码+开题报告+论文+系统部署讲解+答辩指导)
  • Windows服务器SSL/TLS安全加固实战:修复CVE-2016-2183漏洞
  • TCP协议详解:可靠传输机制与性能优化实践
  • OpenClaw大模型自由切换指南:从架构原理到实战配置
  • AI一键生成PPT:WorkBuddy如何重塑技术内容创作流程
  • 【C++】022、深拷贝浅拷贝
  • STM32F407 USB Custom HID免驱通信:从CubeMX配置到Python上位机实战
  • 基于MATLAB SISO Tool的PID控制器交互式设计与仿真实践
  • C++代码冗余消除与性能优化实战
  • 医学大模型深度研究报告(2026年8月版第二部分)
  • Java实现智能集群仿真:Boids模型与并发优化实践
  • 【2026热端攻防系列 11/12】前端AI风控攻防实战:验证码缺陷、人机验证绕过、智能爬虫对抗与企业智能风控加固方案
  • 利用废旧电脑搭建个人服务器:Ubuntu与frp内网穿透实战
  • 十字军之王II双字节补丁:终极中文显示解决方案
  • ncmdumpGUI:3步解锁网易云音乐NCM文件,让音乐真正属于你
  • SpringBoot+Vue构建体育商品智能推荐系统实践
  • 作业2222
  • 数论核心:从算术基本定理到约数个数、和与最大公约数的计算与应用
  • 技术人如何构建可持续的个人系统:从精力管理到职业复利
  • 告别格式烦恼:5分钟搞定国家自然科学基金LaTeX模板终极指南
  • 【AI客服系统搭建终极指南】:20年架构师亲授5大避坑法则与3套高转化落地模板
  • Unity离线语音识别实战:基于Whisper.unity的集成、优化与多平台部署指南
  • Synapse Term:让 AI 直接操作你已经连好的 SSH、容器和 WSL 终端
  • 2025届最火的十大AI科研方案解析与推荐
  • CTF无数字字母命令执行:绕过字符集限制的底层原理与实战
  • 文献综述方法论:高效检索与批判性分析技巧
  • 几何题配图 API 怎么选?从文本生成到可编辑源文件的接入指南
  • 客户沟通音视频纪要生成工具功能分析——基于商务场景的实证比较
  • SpringBoot在线考试系统开发实战与架构设计
  • 串行与并行、同步与异步:嵌入式通信核心概念全解析