首页
运维教程
Linux基础
系统服务
系统架构
数据库
shell脚本
虚拟化
大数据
DevOps
企业案例
运维开发
python
go语言
运维安全
行业资讯
网络基础
系统安全
运维面试
学习路线
学习方法
面试题库
职场解惑
软件
运维软件
办公软件
书籍资源
技术陪跑营
重要信息
首页 运维教程Linux基础【linux】循序渐进学运维-基础篇-扩展swap分区

【linux】循序渐进学运维-基础篇-扩展swap分区

文章目录
1. swap分区是干嘛的?
2. swap的工作机制?
3. 如何查看swap 分区
4. 什么时候会用到swap扩容
5. swap扩展实战
方案一: 使用硬盘做swap分区
1) 分区
2) 格式化成swap格式
3) 开启与关闭swap
方法二: 通过文件增加swap空间
1) 使用dd命令生成1G大小的文件
2)查看生成的文件并给权限
总结

1. swap分区是干嘛的?

在Linux下,SWAP的作用类似Windows系统下的“虚拟内存”。当物理内存不足时,拿出部分硬盘空间当SWAP分区(虚拟成内存)使用,从而解决内存容量不足的情况。

比如我们的手机内存是2G,当出现看电影比较卡顿的时候,我们可以获取手机root权限,把硬盘里的某个文件扩展成swap分区,这样当手机内存不足的时候,就可以直接使用swap内存。

当然了,我们的swap空间一旦用完,操作系统就会干掉消耗内存最多的进程来释放部分内存。

就是这么霸道的操作系统!

2. swap的工作机制?

Linux对于内存的回收有两种情况,一种是分配内存的时候发现没有足够的空间内存可以分配,这时候会触发回收内存
第二种情况是,开启了一个守护进程,周期性的对系统内存进行检查,在可用内存降低到一定的阈值之后会主动触发内存回收。

这就跟我们老家设计的自动上水装置是一样的,在大缸里放上一个悬浮球,悬浮球对应这上水总闸, 当水位持续降低到大缸的1/4的时候,悬浮球牵引的线,达到了最紧状态,牵动了上水总闸的开关,自动通电上水,当水位达到了大缸的上限阈值之后,自动停止上水。

那么既然说得到内存回收,Linux的内存回收,究竟回收的是什么?

其实回收也分两种情况:
1. 文件缓存。我们的文件都是要读取到内存当中的,所以这部分缓存如果只是读取文件,可以收回,下次读取再从硬盘读取即可。
2. 匿名内存, 这部分内存没有实际的载体,比如堆,栈数据等。 这部分数据回收的时候不能直接释放,随意我们用swap将这类内存换出到硬盘中,需要的时候在加载出来。

我之前的文章中有提到过swappiness, 这个值是用来定义内核使用swap的积极程度。值越高说明内核会积极的使用swappiness. 而Linux也是根据swappiness来决定回收哪类内存的。

3. 如何查看swap 分区

在这里插入图片描述
我这里有个1GB的swap,是我之间建的,你的应该没有这个。

4. 什么时候会用到swap扩容

之前有学员买了个阿里云,在上面安装了zabbix,但zabbix一直告警: swap空间不足。 事实上现在的云服务器都没有swap空间,所以这个时候你需要用到扩容。

当然凡是涉及到环境检查的时候,发现swap空间检查不通过,我们就要第一时间对swap分区进行扩容。

5. swap扩展实战

方案一: 使用硬盘做swap分区
1) 分区

在这里插入图片描述

2) 格式化成swap格式

在这里插入图片描述

3) 开启与关闭swap

在这里插入图片描述
关闭来测试下:
在这里插入图片描述

方法二: 通过文件增加swap空间
1) 使用dd命令生成1G大小的文件
[root@gaosh-1 ~]# dd if=/dev/zero of=swap_file bs=1M count=1000
记录了1000+0 的读入
记录了1000+0 的写出
1048576000字节(1.0 GB)已复制,22.4257 秒,46.8 MB/秒
[root@gaosh-1 ~]# 

2)查看生成的文件并给权限

在这里插入图片描述

[root@gaosh-1 ~]# chmod 0600 /root/swap_file 
[root@gaosh-1 ~]# mkswap -f /root/swap_file    #格式化
Setting up swapspace version 1, size = 1023996 KiB
no label, UUID=678f0d13-3105-4930-a89a-21e7a30a5d26
[root@gaosh-1 ~]# swapon /root/swap_file    #加入swap
[root@gaosh-1 ~]# free -m
             total       used       free     shared    buffers     cached
Mem:          3547       2604        943          3         76       2064
-/+ buffers/cache:        462       3084
Swap:         3255          0       3255
[root@gaosh-1 ~]# 

可以看到在方法一的时候,swap是2255, 方法二又加了1G内存,现在是3547

总结

swap分区中,使用分区添加,只要你会使用fdisk添加分区了,就很容易学会。 而使用dd这种方法也比较常见,而且dd 可以做很多事情,比如备份,恢复,销毁磁盘等,我们后面会单独拿出时间来说dd的使用。

本文链接:http://www.geekyunwei.com/656.html

网友评论comments

发表评论

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

暂无评论

Copyright © 2021 极客运维 公众号《极客运维之家》
扫二维码
扫二维码
返回顶部