CentOS7 配置交换分区SWAP

Stella981
• 阅读 603

安装系统时,我们往往会在磁盘分区时,为交换分区单独分出一块儿位置,但当系统安装完成后,我们通过固定的文件位置在配置交换分区。

在配置交换分区前,请确定你放置交换分区的磁盘有足够的空间。

本篇文章将交换分区文件放在 /var 下,/var/ 挂载点下,所以我们检查 / 挂载磁盘的空间:

[dingdayu@gitlab-repo var]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        40G   17G   21G  46% /
devtmpfs        3.9G     0  3.9G   0% /dev
tmpfs           3.9G     0  3.9G   0% /dev/shm
tmpfs           3.9G  556K  3.9G   1% /run
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup

一定要确保 / 挂载点下有足够的空间(_剩余的空间远大于你要设置的交换空间大小_)才可以配置交换空间。

查看交换分区

free –h 或 swapon –s

会得到下面的输出:

[dingdayu@gitlab-repo var]$ free -h
              total        used        free      shared  buff/cache   available
Mem:           7.6G        4.4G        132M         17M        3.1G        2.9G
Swap:          8.0G          0B        8.0G

设置交换分区

生成交换分区文件

dd  if=/dev/zero  of=/var/swapfile  bs=1024  count=2048k

会得到下面的输出:

[dingdayu@gitlab-repo var]$ sudo dd  if=/dev/zero  of=/var/swapfile  bs=1024  count=8192k
8388608+0 records in
8388608+0 records out
8589934592 bytes (8.6 GB) copied, 71.1132 s, 121 MB/s

if(即输入文件,input file),of(即输出文件,output file)。dev/zero是Linux的一种特殊字符设备(输入设备),可以用来创建一个指定长度用于初始化的空文件,如临时交换文件,该设备无穷尽地提供0,可以提供任何你需要的数目。 bs=1024 :单位数据块(block)同时读入/输出的块字节大小为1024 个字节即1KB,bs(即block size)。count=2048000 :数据块(block)数量为2048000 ,即2048000个1KB。可以计算swap分区的容量为:1KB 2097152=1KB 1024(k)10242=2097152=2G。(dd命令里的单位M表示1024*1024,k表示1024)。

也可以通过 fallocate 命令创建分区文件:

sudo fallocate -l 8G /var/swapfile

最后检查分区文件大小:

[dingdayu@gitlab-repo var]$ ls -lh /var/swapfile
-rw------- 1 root root 8.0G Oct 10 19:59 /var/swapfile

转换分区格式

mkswap  /var/swapfile

会得到以下输出:

 sudo mkswap  /var/swapfile
Setting up swapspace version 1, size = 8388604 KiB
no label, UUID=abfe4e6c-4474-4a6b-bd96-80292e0e676c

修改分区文件权限

sudo  chmod -R 0600 /var/swapfile

挂载交换分区

swapon   /var/swapfile

上面的挂载会在系统重启后失效,可通过编辑 /etc/fstab 避免。

将下面的内容,添加到 /etc/fstab 文件中;

/var/swapfile   swap  swap  defaults  0  0

或:

sudo sh -c "echo  '/var/swapfile   swap  swap  defaults  0  0' >>  /etc/fstab"

设置交换分区使用比例

通过下面的命令,查看 swappiness 值:

cat   /proc/sys/vm/swappiness

swappiness值(0-100),系统对swap分区的依赖程度,越高则越倾向于使用swap分区。 当然,高度依赖swap会造成物理内存远未使用完,就使用swap分区,我们知道swap分区性能远不如物理内存,这反而降低了系统性能,违背了我们创建swap分区的初衷。 我们希望在物理内存即将满荷时再使用swap,这就决定了swappiness值一般为10-60为宜,固态硬盘可以偏高些。

修改 swappiness

可以通过 sysctl 命令直接修改 vm.swappiness 的值:

sysctl vm.swappiness=50

但是在系统重启后,依然会丢失设置,所以可以通过编辑 /etc/sysctl.conf 文件实现:

sudo sh -c "echo 'vm.swappiness = 50'  >>  /etc/sysctl.conf"

扩缩容分区大小

扩大或缩小分区大小,采用创建新的分区文件,后挂载到新的分区位置的方式设置,参考 设置交换分区 章节即可。

# 生成新的分区文件
dd if=/dev/zero of=/var/swapfile1 bs=1024 count=2097152
# 格式化分区文件
mkswap /var/swapfile1
# 挂载新的分区文件
swapon /var/swapfile1

删除SWAP分区

需要先解除分区挂载:

swapoff  /var/swapfile

然后删除分区文件即可

rm -rf   /var/swapfile

最后记得将 /etc/fstab文件里的交换分区挂载移除掉

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Easter79 Easter79
3年前
swap空间的增减方法
(1)增大swap空间去激活swap交换区:swapoff v /dev/vg00/lvswap扩展交换lv:lvextend L 10G /dev/vg00/lvswap重新生成swap交换区:mkswap /dev/vg00/lvswap激活新生成的交换区:swapon v /dev/vg00/lvswap
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Stella981 Stella981
3年前
Linux系统安装完成后创建交换空间
有时候我们安装系统时候忘记分swap交换分区或者感觉内存够使用而没有划分SWAP分区,系统安装完成了我们改如何划分交换分区呢?本文是实践系统安装完成后创建交换区的一种方式。!(https://static.oschina.net/uploads/space/2017/1213/134422_MemC_2846946.png)一、主要步骤
Stella981 Stella981
3年前
Linux系统盘扩容
\Linux系统盘扩容\了解磁盘分区情况\\blkid\查看分区情况\\fdiskl\分区表\系统挂载分区\\/etc/fstab\启动挂载分区情况\双系统下分区释放空间\在windows系统下使用分区工具,减小分区的空间
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
3年前
Linux设置Swap虚拟内存方法
linux可以文件或者分区来当作虚拟内存。首先查看当前的内存和swap空间大小(默认单位为k,m单位为M):freem查看swap信息,包括文件和分区的详细信息swapons或者cat/proc/swaps如果都没有,我们就需要手动添加交换分区。注意,OPENVZ架构的VPS是不支持手动添
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这