运行程序时,老是提示out of memory,实在没有什么好方法,所以想通过添加swap缓冲空间,
方法一:使用swap文件,优点是操作比较简单,缺点是速度慢且容易产生磁盘碎片.
在SWAP空间不够用的情况下,如何手工添加SWAP空间
以下的操作都要在root用户下进行,首先先建立一个分区,采用dd命令比如
dd if=/dev/zero of=/home/swap bs=1024 count=512000
((注解:用dd命令创建一个swap文件(因为swap文件要求必须是连续的)
#dd if=/dev/zero of=<swap文件名> bs=1024 count=<分区大小>
分区大小=1024*n,如果大小为1000M,则n=1000)))
这样就会创建/home/swap这麽一个分区档。档的大小是512000个block,一般情况下1个block为1K,所以这里空间是512M.接着再把这个分区变成swap分区。
/sbin/mkswap /home/swap
再接着使用这个swap分区。使其成为有效状态。
/sbin/swapon /home/swap
?? 使用swapon -a 启用swap文件,使用swap -s查看swap文件是否启用。
现在再用free -m命令查看一下记忆体和swap分区大小,就发现增加了512M的空间了。不过当电脑重启了以后,发现swap还是原来那麽大,新的swap没有自动启动,还要手动启动。那我们需要修改/etc/fstab档,增加如下一行
/home/swap swap swap defaults 0 0
你就会发现你的机器自动启动以后swap空间也增大了。
?
方法二、使用swap分区。优点是速度快,缺点是需要磁盘有未分配空间且操作稍微复杂一些。
1、使用fdisk命令建立一个新的分区,分区类型为82
2、使用mkswap转化新分区对应的设备文件(如:/dev/hda6)
3、使用swapon -a 启用swap文件,使用swap -s查看swap文件是否启用。
4、最后加在/etc/fstab,使每次开机都会自动启用SWAP
?
修复休眠
1 确保安装了最新版本的initramfs-tools2 运行sudo blkid,查看swap分区的UUID (注:如果swap分区没有UUID,那么可以用gparted重新格式化swap分区,新产生的分区就会有UUID了)3 修改/etc/fstab中的swap分区的UUID与第2步中的UUID相同4 修改/etc/initramfs-tools/conf.d/resume中的UUID与第2步中的相同5 运行sudo update-initramfs -u更新 initrd.image6 重启OK了
resume
文件的内容相当简单,就一行,像这样RESUME=LABEL=swap
,RESUME=
后面的格式和 fstab 的第一栏一样。改了后还要sudo update-initramfs -u
更新 initrd。