笔者最近在倒腾ORM-SLAMV2, 好不容易准备好了依赖包,编译的时候发现内存不足了。笔者使用的硬件平台是intel的UP Board,硬件自带4GDDR4,又配置了4G的swap,但还是不够了。一下是笔者从互联网找到并经过测试的方法,在这里分享给大家
· 查看当前系统内存的命令
free -m
返回
total used free shared buff/cache available
Mem: 3355 235 2660 71 459 2798
Swap: 3490 508 2982
· 创建Swap交换器文件
mkdir /swap
cd /swap
sudo dd if=/dev/zero of=swapfile bs=1024 count=4000000
上面命令中的 count 即代表swap文件大小,我设置的是4G,等会总共就会有8G的swap。
dd命令自己是不会输出进度的,这个时候我们要新开一个终端,并执行
sudo watch -n 5 killall -USR1 dd
在原窗口每隔5秒就会更新一次当前dd命令的执行情况
3607035+0 records in
3607034+0 records out
3693602816 bytes (3.7 GB, 3.4 GiB) copied, 112.34 s, 32.9 MB/s
3694117+0 records in
3694117+0 records out
3782775808 bytes (3.8 GB, 3.5 GiB) copied, 117.376 s, 32.2 MB/s
3816173+0 records in
3816173+0 records out
3907761152 bytes (3.9 GB, 3.6 GiB) copied, 123.195 s, 31.7 MB/s
3956993+0 records in
3956993+0 records out
4051960832 bytes (4.1 GB, 3.8 GiB) copied, 129.322 s, 31.3 MB/s
4000000+0 records in
4000000+0 records out
4096000000 bytes (4.1 GB, 3.8 GiB) copied, 129.867 s, 31.5 MB/s
我们还要把生成的文件转换成 Swap 文件
sudo mkswap -f swapfile
转换成功后终端会返回
Setting up swapspace version 1, size = 3.8 GiB (4095995904 bytes)
no label, UUID=8ff64161-5649-4ead-9b34-8c53552e6d97
· 激活 Swap 文件
执行以下命令
sudo swapon swap
执行完成后,查看当前内存
free -m
total used free shared buff/cache available
Mem: 3355 191 117 92 3046 2783
Swap: 7397 507 6890
如上,可以看到swap已经变成了8G
· TIPS
- 如果需要卸载这个 swap 文件,可以进入建立的 swap 文件目录,执行下列命令
sudo swapoff swap
- 如果需要一直保持这个 swap ,可以把它写入 /etc/fstab 文件,执行
/swap/swapfile /swap swap defaults 0 0
· 感谢:
本文参考自 mznewfacer 的博客http://blog.csdn.net/mznewfacer/article/details/7334592