IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 【Linux之轨迹】1核2G 内存不够怎么办?Swap 交换分区解决内存不足问题 -> 正文阅读

[系统运维]【Linux之轨迹】1核2G 内存不够怎么办?Swap 交换分区解决内存不足问题

需求

本人服务器买的是最便宜的 1核2G 服务器,最近在学新技术时,发现服务器经常死机,很纳闷
后来才注意到时内存问题,几个程序跑起来 2G 内存基本上拉满,这时候再启动其他程序时,就会导致服务器死机
但是又没钱买新服务器,也没钱升级,咋办呢
穷砸的我终于注意到 free 下边的 swap,一番查询后反复尝试后,终于掌握了 swap 的使用方法

首先看一下在没使用 swap 之前的内存状态:
在这里插入图片描述
空闲分区仅剩 78M,可供程序使用的仅剩 55M
这时候只需要再跑一个小小的程序,服务器立马就会死机(已经重启很多次啦)


正式使用 Swap

在此之前先简单了解以下 Swap:
在 Linux 系统中,SWAP(交换分区)类似于 Windows 系统的虚拟内存
系统会把一部分硬盘空间虚拟成内存使用,将系统内非活动内存换页到SWAP,以提高系统可用内存

所以我们要做的就是:在磁盘中指定一个文件,让系统将其当成虚拟内存使用
① 首先就是创建一块空间:

dd if=/dev/zero of=<文件路径> bs=<块的大小> count=<块的数量>

这里的文件路径可以任意,块的大小一般设置为 1M 也是任意,块的数量用于确认 swap 交换分区的大小

示例如下:指定了一块 512M 的交换分区(不过官方建议是:交换分区为物理内存的 1.5 倍较为合适,这里仅作演示)
dd if=/dev/zero of=/mnt/ice.swap bs=1M count=512

② 然后是将文件设置为交换分区文件,并启动

设置:	mkswap /mnt/ice.swap
启动:	swapon /mnt/ice.swap

③ 检查配置文件

如果在 /etc/rc.local 中有 swapoff -a 需要修改为 swapon -a
可以使用 cat /etc/rc.local 进行确认

④ 设置开机时自启动 Swap 分区

vim /etc/fstab

在最后面添加:
/mnt/ice.swap swap swap defaults 0 0

⑥ 设置 swappiness

该参数值用来确定系统对 Swap 分区的使用规则
当 swappiness 为 0 时,表示最大限度地使用物理内存,即在物理内存全部使用完之后,再使用 Swap 分区
当 swappiness 为 0-100 时,如为 20,则表示当物理内存剩下 20% 时,就使用 Swap
当 swappiness 为 100 时,表示积极使用 Swap 分区,系统会将内存中的数据及时置换到 Swap 分区

1)	临时设置(以 100 为例)
	echo 100 >/proc/sys/vm/swappiness

2)	永久设置(以 100 为例)
	vim /etc/sysctl.conf
	并在最后添加:vm.swappiness = 100

⑦ 效果查收
设置完毕后,在最开始第一张图的基础上,再启动一个程序,下边是效果图:
在这里插入图片描述
可以看到,Swap 分区用起来了!!!
服务器并没有崩掉,而是好好地跑着,空闲空间也维持在一个可以接受的值

虽说使用磁盘空间作为内存会影响程序运行的效率,但至少比服务器直接死机好太多了

⑧ 关闭分区

如果觉得内存又足够了不需要分区,可以将 swappiness 调低,又或者将该分区关闭,如下

1)	关闭分区
	swapoff <swap文件路径>

2)	取消自动挂载
	vim /etc/fstab
	将我们添加的自启动去掉

3)	free -m 确认分区已关闭

4)	设置 swappiness 参数
	echo 0 >/proc/sys/vm/swappiness(临时)
	vim /etc/sysctl.conf
	将我们设置的参数去掉(永久)

5)	最后删除不需要的分区文件
	rm -rf /mnt/ice.swap

⑨ 扩展分区

如果在使用的过程中,发现分区不够用了,可以对分区进行拓展
这也很简单,就是直接按步骤新建一个分区,启动就可以用了,下边是扩展了 1G 分区的状况:
在这里插入图片描述
可以看到分区变成了 1.5G(间接相当于我们有 3.5G 内存啦)
然后由于设置的 swappiness 参数是 100,所以系统很积极地使用这片分区(available 可供程序使用的腾出了三百多M)


汪洋不惧一泻,一泻可成汪洋(IceClean)

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-10-27 13:11:54  更:2021-10-27 13:14:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 22:34:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码