1.原因
今天在编译程序的时候,提示虚拟内存较小,导致编译失败。
虚拟内存大小,我没有在安装系统的时候,进行设置,采取默认的大小。今天通过查看,发现只有984M左右。远远小于所需,根据相关博客介绍swap空间应该是物理内存的大小的两倍左右。目前我的电脑配置4G内存,所以需要8G左右的swap空间。
2.建立Swap文件
- 查看swap空间大小
free //输出的单位是字节
free -m//输出单位是M
free -g //输出单位是G
//以下输出是修改swap大小之后所截取的图片
- 关闭原来的swap空间(大小984M)
swapoff -a//关闭所有交换空间
- 建立swap文件
为防止误操作,导致swap文件被删除。特意将swap文件建立在一下路径中
cd /opt/myswap
sudo mkdir swapfile
cd swapfile
sudo dd if=/dev/zero of=swap bs=1G count=10 //此命令会在swapfile文件夹下生成swap文件,用来配置swap空间大小;bs是块的大小,count是块的多少;bs*count=swap空间大小(我分配的是10G)
//注意 dd if=/dev/zero of=swap bs=1G count=10;可以根据所需,修改bs 与count,其余不需修改;
4.将生成的文件转换成Swap文件
sudo mkswap -f swap
5.激活swap文件
sudo swapon swap
6.增加开机启动
当前生成的Swap文件,只对当前系统有效,如果系统重新启动,则swap将变为默认大小,如果希望此swap空间大小在下次重启系统保持有效,需要对/etc/fstab文件进行修改;
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda1 during installation
UUID=2160e81f-3817-40c2-bf9f-34c49733bcb5 / ext4 errors=remount-ro 0 1
# swap was on /dev/sda5 during installation
UUID=66562a68-f20d-4903-af38-04f12559a6a0 none swap sw 0 0
/opt/myswap/swapfile/swap swap swap defaults 0 0 //此处为添加部分
///opt/myswap/swapfile/swap 为swap文件所在路径