结语:
这个是小问题,没有swap,咱们能够自行建立。但我见过禁用mkswap命令的厂商,在只有512M甚至更少内存的虚拟机中,真是欲哭无泪,编译一个软件都不行。
建立swap分区很简单,首先得建立一个文件,而后将这个文件设置为交换分区,最后给系统使用这个交换分区。vim
网络上不少文章所使用的命令,会在设置交换分区的时候出现错误,这是由于建立文件的时候使用了错误的方式。centos
# 建立文件 [root@VM_171_54_centos ~]# fallocate -l 4G /swapfile # 检查文件信息 [root@VM_171_54_centos ~]# ll -h /swapfile -rw-r--r-- 1 root root 4.0G Jan 30 23:05 /swapfile # 修改文件权限 [root@VM_171_54_centos ~]# chmod 600 /swapfile # 再次检查文件信息 [root@VM_171_54_centos ~]# ll -h /swapfile -rw------- 1 root root 4.0G Jan 30 23:05 /swapfile # 将文件设置为交换分区 [root@VM_171_54_centos ~]# swapon /swapfile swapon: /swapfile: read swap header failed: Invalid argument
从上面能够看出,在设置交换分区的时候,系统抛出了错误信息。网络
问题其实很简单,设置交换分区所使用的命令swapon须要使用物理分配的文件空间,但建立交换文件时使用的fallocate倒是使用ioctls来快速划分一块区域,由于不是物理分配的空间,因此在设置交换分区的时候会出现错误。post
此时咱们能够使用dd命令建立一个文件:spa
[root@VM_171_54_centos ~]# dd if=/dev/zero of=/swapfile bs=1024 count=2048k 2097152+0 records in 2097152+0 records out 2147483648 bytes (2.1 GB) copied, 6.51212 s, 330 MB/s
接下来再进行其余步骤:code
# 修改文件权限 [root@VM_171_54_centos ~]# chmod 600 /swapfile # 将文件设置为交换分区 [root@VM_171_54_centos ~]# mkswap /swapfile Setting up swapspace version 1, size = 2097148 KiB no label, UUID=27eea5f0-d60d-494c-9b37-7db855d9ea0f # 使用交换分区 [root@VM_171_54_centos ~]# swapon /swapfile
最后还得将分区信息写入文件,以便下次启动系统的时候自动加挂载:blog
# 打开文件 [root@VM_171_54_centos ~]# vim /etc/fstab # 将配置信息写入文件的最后一行 /swapfile swap swap sw 0 0
至此,完成全部工做。内存
最后还得进行检查:虚拟机
[root@VM_171_54_centos ~]# free -m total used free shared buff/cache available Mem: 991 55 74 0 861 782 Swap: 2047 0 2047 0
能够看到,目前拥有2G的swap空间,还能够经过swapon进行检查:it
[root@VM_171_54_centos ~]# swapon -s Filename Type Size Used Priority /swapfile file 2097148 0 -1
结语:
这个是小问题,没有swap,咱们能够自行建立。但我见过禁用mkswap命令的厂商,在只有512M甚至更少内存的虚拟机中,真是欲哭无泪,编译一个软件都不行。