centos 设置虚拟内存SWAP

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos 设置虚拟内存SWAP相关的知识,希望对你有一定的参考价值。

参考技术A 转自 ( https://www.cnblogs.com/chenminklutz/p/7218496.html?utm_source=itdadao&utm_medium=referral )

SWAP是Linux中的虚拟内存,用于扩充物理内存不足而用来存储临时数据存在的。它类似于Windows中的虚拟内存。在Windows中,只可以使用文件来当作虚拟内存。而linux可以文件或者分区来当作虚拟内存。
首先查看当前的内存和swap 空间大小(默认单位为k, -m 单位为M):
free -m

此处可以看到总内存是503M,SWAP不存在。
查看swap信息,包括文件和分区的详细信息
swapon -s
或者
cat /proc/swaps
如果都没有,我们就需要手动添加交换分区。注意,OPENVZ架构的VPS是不支持手动添加交换分区的。
添加交换空间有两种选择:添加一个交换分区或添加一个交换文件。推荐你添加一个交换分区;不过,若你没有多少空闲空间可用, 则添加交换文件。

-增加swap交换文件
1、使用dd命令创建一个swap交换文件
dd if=/dev/zero of=/home/swap bs=1024 count=1024000
这样就建立一个/home/swap的分区文件,大小为1G,可以自行倍增。
2、制作为swap格式文件:
mkswap /home/swap
3、设置文件权限
chmod 600 /home/swap
4、再用swapon命令把这个文件分区挂载swap分区
swapon /home/swap
我们用free -m命令看一下,发现已经有交换分区了。

但是重启系统后,swap分区又变成0了。
5、为防止重启后swap分区变成0,要修改/etc/fstab文件
vi /etc/fstab
在文件末尾(最后一行)加上
/home/swap swap swap default 0 0
这样就算重启系统,swap分区还是有值。

-删除swap交换文件
1、先停止swap分区
swapoff /home/swap
2、删除swap分区文件
rm -rf /home/swap
3、删除自动挂载配置命令
vi /etc/fstab
这行删除
/home/swap swap swap default 0 0
这样就能把手动增加的交换文件删除了。

-注意:
1、增加删除swap的操作只能使用root用户来操作。
2、装系统时分配的swap分区貌似删除不了。
3、swap分区一般为内存的2倍,但最大不超过2G

-使用分区来做SWAP(虚拟内存).
1 使用fdisk来创建交换分区(假设 /dev/sdb2 是创建的交换分区)
2 使用 mkswap 命令来设置交换分区:

3 启用交换分区:

4 写入/etc/fstab,以便在引导时启用:
/dev/sdb2 swap swap defaults 0 0

-删除交换分区
步骤如下:
1、先停止swap分区
swapoff /dev/sdb2
2、删除自动挂载配置命令
vi /etc/fstab
这行删除
/dev/sdb2 swap swap defaults 0 0
这样就能把手动增加的交换分区删除了。

[CentOS 7系列]swap空间扩容

    记得安装操作系统的时候,在分配磁盘空间环节,我们分配了swap空间。默认设置swap空间是物理内存的2倍大小。那什么是swap呢?所谓的swap,类似于Windows的虚拟内存,就是当内存不足的时候,把一部分硬盘空间虚拟成内存使用,将内存中暂时不用的数据存到硬盘的交换空间,腾出内存来让别的程序运行,从而解决内存容量不足的情况。

    当我们的服务器资源不够的时候,我们会增加内存扩展性能。那swap空间是否也能扩容呢?当然是可以的。下面将给出扩容的方法。

1、创建空间

[[email protected] ~]# dd if=/dev/zero of=/tmp/newdisk bs=1M count=100
记录了100+0 的读入
记录了100+0 的写出
104857600字节(105 MB)已复制,1.56131 秒,67.2 MB/秒
[[email protected] ~]# du -sh /tmp/newdisk
100M	/tmp/newdisk

2、格式化

[[email protected] ~]# mkswap -f /tmp/newdisk
正在设置交换空间版本 1,大小 = 102396 KiB
无标签,UUID=d97d85bc-5665-4f7d-a721-cc305b9425d3
[[email protected] ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:            984         113         619           6         251         701
Swap:          2047           0        2047

3、启动

[[email protected] ~]# swapon /tmp/newdisk
swapon: /tmp/newdisk:不安全的权限 0644,建议使用 0600。
[[email protected] ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:            984         113         619           6         252         701
Swap:          2147           0        2147
[[email protected] ~]# chmod 0600 /tmp/newdisk


如果不需要这个swap空间了,也可以解除。

[[email protected] ~]# swapoff /tmp/newdisk
[[email protected] ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:            984         113         619           6         252         701
Swap:          2047           0        2047
[[email protected] ~]# rm -f /tmp/newdisk


本文出自 “乱码时代” 博客,请务必保留此出处http://juispan.blog.51cto.com/943137/1939168

以上是关于centos 设置虚拟内存SWAP的主要内容,如果未能解决你的问题,请参考以下文章

[CentOS 7系列]swap空间扩容

oracle安装时需要的虚拟内存大小

linux设置开启swap交换分区基本命令(虚拟内存)

Linux下设置Swap后, 重启后设置失效 怎么处理?

linux设置虚拟内存(swap)解决mysql因内存不足挂掉的故障

Linux(ubuntu)虚拟内存的设置