centos虚拟内存添加与删除
2018-09-14 本文已影响0人
愚木非鱼
在云服务器编译php时,编译失败,提示内存不足,采用扩展虚拟内存的方法来解决问题。
swap是linux中的虚拟内存,用于扩充物理内存不足而用来存储临时数据。linux可以使用文件和分区来做为虚拟内存。
使用free命令查看当前系统内存和swap空间大小
#free -m // 默认k为单位,-m单位为M
查看swap信息,包括文件和分区的详细信息
#swapon -s
或
#cat /proc/swaps
如果都没有swap信息,则需要手动添加交换分区。注意:OPENVZ架构的VPS是不支持手动添加交换分区的。
添加交换空间有两种选择:添加一个交换分区或者添加一个交换文件。推荐添加交换分区;若没有多余的空闲空间可用,则添加交换文件。
一,使用交换文件来做swap
1. 增加swap交换文件
a. 使用dd命令创建一个swap交换文件
#dd if=/dev/zero of=/tmp/swap bs=1024 count=1024000 // 创建swap文件,大小1G,文件越大,创建时间越长,文件路径可自定义(/tmp/swap)
#du -h /tmp/swap // 查看创建的swap文件大小
b. 将文件转换为swap格式
#mkswap /tmp/swap
c. 使用swapon命令将这个文件挂在到swap分区
#swapon /tmp/swap
此时使用命令 free -m就能发现有交换分区了,但是系统重启之后,swap分区又回变为0
d. 使交换文件swap分区在系统重启依旧有效
#vi /etc/fstab
在文件末尾(最后一行)加上
/tmp/swap swap swap default 0 0
这样,即使重启,交换文件swap分区依旧有效
2. 删除swap交换文件
a. 停止swap分区
# swapoff /tmp/swap
b. 删除swap分区文件
# rm -rf /tmp/swap
c. 删除自动挂载配置命令
# vi /etc/fstab
这行删除
/tmp/swap swap swap default 0 0
这样就能把手动添加的交换文件删除了
注意:
- 增加删除swap命令只能使用root用户操作
- 装系统时分配的swap分区貌似删不了
- swap分区一般为内存的2倍,最大不超过2G
二,使用分区来做swap(虚拟内存)
1. 添加交换分区
a. 使用fdisk来创建交换分区
(创建过程略,假设/dev/sdb2是创建的交换分区)
b. 使用mkswap来设置交换分区
mkswap /dev/sdb2
c. 启用交换分区
swapon /dev/sdb2
d.写入/etc/fstab,以便引导时启用
#vi /etc/fstab
在文件末尾(最后一行)加上
/tmp/sdb2 swap swap default 0 0
这样,即使重启,交换文件swap分区依旧有效
2. 删除交换分区
a. 停止swap分区
# swapoff /dev/sdb2
b. 删除自动挂载配置命令
# vi /etc/fstab
这行删除
/dev/sdb2 swap swap default 0 0
这样就能把手动添加的交换分区删除了