什么是SWAP虚拟内存?使用服务器如何开启SWAP虚拟内存

devtools/2025/3/14 13:33:06/

一、SWAP 虚拟内存是什么?

定义
SWAP(交换分区)是磁盘上的一块空间,用于在物理内存(RAM)不足时,将部分不活跃的内存数据临时存储到磁盘中,避免系统因内存耗尽而崩溃。

核心作用

  1. 扩展可用内存:防止应用程序因内存不足(OOM)被强制终止12
  2. 提升系统稳定性:缓解突发高负载下的内存压力,降低宕机风险34
  3. 优化资源利用:允许系统将长期未使用的内存页移至 SWAP,释放物理内存供急需进程使用56

适用场景

  • 物理内存较小(如 1-2GB 的轻量级服务器)。
  • 运行内存密集型应用(如数据库、Java 服务)。

**二、莱卡云服务器开启 SWAP 的步骤

1. 创建 SWAP 文件

bashCopy Code

# 分配 1GB 的 SWAP 文件(根据需求调整大小) 

sudo fallocate -l 1G /swapfile 

# 若 fallocate 不可用,改用 dd 命令 

sudo dd if=/dev/zero of=/swapfile bs=1M count=1024 

# 设置权限 

sudo chmod 600 /swapfile 

2. 格式化为 SWAP 分区

bashCopy Code

sudo mkswap /swapfile 

3. 激活 SWAP

bashCopy Code

sudo swapon /swapfile 

4. 永久生效配置

bashCopy Code

# 编辑 /etc/fstab 

sudo nano /etc/fstab 

# 添加以下行 

/swapfile none swap sw 0 0 

5. 验证 SWAP 状态

bashCopy Code

free -h 

# 输出示例: 

#               total   used    free 

# Swap:         1.0G    0B      1.0G 


三、SWAP 配置优化建议

参数

推荐值

说明

SWAP 大小

1-2 倍物理内存(≤8GB)

内存≤4GB 时建议 2 倍;内存≥8GB 时 1 倍35

swappiness

10-30(默认 60)

控制内存换出频率,值越低越少使用 SWAP46

调整 swappiness

bashCopy Code

# 临时生效 

sudo sysctl vm.swappiness=10 

# 永久生效 

sudo nano /etc/sysctl.conf 

# 添加或修改: 

vm.swappiness=10 


四、注意事项

  1. 性能影响
    • SWAP 依赖磁盘 I/O,频繁读写可能降低性能(尤其是 HDD 磁盘)56
    • 莱卡云服务器建议搭配 SSD 云盘使用,减少延迟6
  2. 监控与维护
    • 使用 htop 或 vmstat 1 监控 SWAP 使用率。
    • 内存长期不足时,优先考虑升级莱卡云实例内存配置。
  3. 禁用 SWAP

bashCopy Code

sudo swapoff /swapfile 

sudo rm -f /swapfile 

# 删除 /etc/fstab 中相关行 


通过上述操作,您可以在莱卡云服务器上快速启用 SWAP 虚拟内存,平衡内存资源与成本,确保服务稳定运行。建议根据实际负载动态调整 SWAP 大小及 swappiness 参数
 


http://www.ppmy.cn/devtools/167036.html

相关文章

AI+Mermaid 制作流程图

一、引言 在软件开发的全生命周期里,文档编写扮演着举足轻重的角色。它犹如项目的“导航图”,为团队成员清晰呈现项目架构、功能流程和技术细节,是保障高效协作的关键。然而,传统的文字描述往往难以直观地展现复杂的系统架构、业…

怎样进行相关论文的调研——How to conduct research on relevant papers?

怎样进行相关论文的调研 写在前面1.打开Web of Science2.检索同类表达3.构建“检索式”什么是“检索式” 参考内容 写在前面 偶然间刷到一篇知乎文章,顺着文章的推荐看了钟澄老师的科研论和在B站上的教学视频,深入了解后发现读文章还有这么多讲究&#…

年龄与疾病(信息学奥赛一本通-1106)

【题目描述】 某医院想统计一下某项疾病的获得与否与年龄是否有关,需要对以前的诊断记录进行整理,按照0-18、19-35、36-60、61以上(含61)四个年龄段统计的患病人数占总患病人数的比例。 【输入】 共2行,第一行为过往病…

青年公寓服务平台的设计与实现(代码+数据库+LW)

摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理,然而,随着近些年信息技术的迅猛发展,让许多比较老套的信息管理模式进行了更新迭代,房屋信息因为其管理内容繁杂,管理数量繁多导致手工进行处理不能满足广…

AI + 游戏开发:如何用 DeepSeek 打造高性能开心消消乐游戏

随着人工智能(AI)技术的飞速发展,其在游戏开发领域的应用愈发广泛。那如何借助 DeepSeek(一款高性能 AI 框架)来打造一款高性能的开心消消乐游戏。我从游戏设计、AI 算法优化、性能调优等方面展开详细介绍,并通过实际代码示例来讲解具体实现方法。 1. 游戏设计 1.1 游戏…

Python数据类型进阶——详解

—— 小 峰 编 程 目录 1.整型 1.1 定义 1.2 独有功能 1.3 公共功能 1.4 转换 1.5 其他 1.5.1 长整型 1.5.2 地板除(除法) 2. 布尔类型 2.1 定义 2.2 独有功能 2.3 公共功能 2.4 转换 2.5 其他 做条件自动转换 3.字符串类型 3.1 定义 3.2 独有功能…

Matplotlib高阶技术全景解析

一、渲染引擎深度调优 后端渲染器选择策略 import matplotlib matplotlib.use(Agg) # 无界面渲染加速 matplotlib.use(WebAgg) # 浏览器交互模式 矢量/位图模式抉择:PDF输出时切换pgf后端,GUI应用使用TkAgg GPU加速方案:通过OpenGL后端实现…

LINUX 指令大全

Linux服务器上有许多常用的命令,可以帮助你管理文件、目录、进程、网络和系统配置等。以下是一些常用的Linux命令: 文件和目录管理 ls:列出当前目录中的文件和子目录 bash lspwd:显示当前工作目录的路径 bash pwdcd:切…