Z次元
文章 笔记 日志
专题
专栏分类 文章归档
友链
友情链接 朋友圈
留言
头像
系列文章
服务器内存不够?如何将储存空间转换为虚拟内存
系列文章
记录分享
最后更新:2024/12/15|创建时间:2024/5/14
文章摘要
Linux可通过创建Swap交换空间扩展内存,使用磁盘作为虚拟内存。创建Swap需分配空间、设置权限、格式化并启用。Swap虽能缓解内存不足,但读写速度慢,可能影响性能。删除Swap需先禁用再删除文件,并更新配置文件。

前言

在之前的文章中提到过,我们可以通过释放缓存的方式来腾出内存。但是当你的程序占用内存就是过高时,还是会出现内存不足,这时就需要通过其它途径来扩展内存了,将磁盘转为临时内存就是其中一种方式。

需要注意的是,Linux使用磁盘做内存并不是直接把磁盘改成内存,而是使用磁盘开辟出一个交换区( Swap)作为虚拟内存使用。

由于Swap是读写磁盘。而众所周知,磁盘的读写速度是远不及直接读取内存来的快的,所以这便是使用Swap的缺陷。

创建交换空间(Swap)

使用下面命令创建交换空间(Swap):

# dd if=/dev/zero of=[path] bs=[bytes] count=[blocks]

if=/dev/zero:输入文件,/dev/zero表示空文件,即以null字符写入文件中路径。

of=path:输出文件,即指定(需要设为交换空间的)路径。

bs=bytes:同时设置读入/输出的块大小为bytes个字节(可以理解为读写速度)。

count=blocks:仅拷贝blocks个块,块大小等于bs指定的字节数。

示例:创建一个4G的Swap

# dd if=/dev/zero of=/swapfile bs=4M count=1K

4M*1K=4G,这里可以理解为用4M大小的块拷贝文件,最大拷贝1024次,在拷贝的同时完成转换。

设置路径权限:

# chmod 600 /swapfile

将路径设置为Swap:

# mkswap /swapfile

启用Swap:

# swapon /swapfile

设置为永久Swap:

如果不执行此步骤,则每次重启时Swap都将失效

# vim /etc/fstab

在文件的最后添加Swap信息

# /分区文件路径 swap swap defaults 0 0
# 注意与前文格式对齐
/swapfile swap swap defaults 0 0

示例:开启5G的Swap:

图片

删除交换空间(Swap)

如果不想要这些交换空间如何删除呢?

禁用Swap:

# swapoff /swapfile

删除Swap:

# rm /path/to/swapfile

如果之前有在 /etc/fstab 文件中添加Swap信息的,记得删除掉

后记

当系统的物理内存不足以满足当前运行的任务时,Linux内核会将部分不常用的数据移动到交换空间中,以释放物理内存供更紧急的用途。这个过程被称为页面交换(paging)。

在Linux系统中,内核会根据系统的内存管理策略来决定何时使用交换空间和何时使用物理内存。通常情况下,物理内存(RAM)是首选,而交换空间则被用作备用。因为物理内存的访问速度远远快于交换空间(硬盘或 SSD),正因如此,使用交换空间进行交换操作可能导致性能下降。

版权声明
本文依据 CC-BY-NC-SA 4.0 许可协议授权,请您在转载时注明文章来源为 Z次元 ,若本文涉及转载第三方内容,请您一同注明。
更多专栏文章推荐
记录分享
Git提示密码过期(Your password has expired),取消Linux系统Git密码过期限制
2023/6/17
必应搜索不建立索引的解决记录
2022/8/3
Sunshine+Moonlight近乎0延迟的远程控制电脑/游戏串流
2025/4/8
博客历程归档——Astro篇
2024/10/1
评论区

删除确认

评论删除后无法恢复,请确认是否继续?
发表评论
删除 编辑 回复
菊

1

菊座2024年5月24日

感谢分享!

删除 编辑 回复
菊

2

菊座@菊座2024年5月24日

为什么我地址在江西

前言
创建交换空间(Swap)
删除交换空间(Swap)
后记
目录
前言
创建交换空间(Swap)
删除交换空间(Swap)
后记
博客
文章 笔记 日志
专题
专栏分类 文章归档
友链
友情链接 朋友圈
交流
留言 关于我
主页
菜单
置顶
主题
我的
十玖八柒
每天进步多一点
欢迎到访φ(゜▽゜*)♪
最新评论
个人占星:
DeepSeek没有想象中的好用
个人占星:
想给自己的网站弄个统计功能,但不会弄,头疼
永恒末匕:
好哇塞,这个厉害
十玖八柒:
测试图片发送
我的
关于我
个人主页
站点地图
RSS订阅
导航
十年之约
虫洞穿梭
开源博客
前端开源仓库
后端开源仓库
©2020 - 2025 By 十玖八柒 版权所有
豫ICP备20021466号