因为租的服务器只有512M的内存。所以在编译erlang源码的时候出现了内存不够用的情况。耐之下只能想看能不能通过设置虚拟内存大小来解决问题。所以在网上找到了这个设置虚拟内存大小的东西。


Linux(ubuntu)虚拟内存的设置


 


swap空间就是虚拟内存,在物理内存不足时,有较大的用处。


 


查看内存空间大小:free -m // m表示显示的字节单位是m(megabytes)


 


下面我们就来增加系统的 Swap 大小。  www.2cto.com  


 


1.首先用命令free查看系统内 Swap 分区大小。


free -m


 


total used free shared buffers cached


Mem: 1002 964 38 0 21 410


-/+ buffers/cache: 532 470


Swap: 951 32 929


 


可以看到 Swap 只有951M,不符合  ​​Oracle​​-xe-client 的安装要求。


 


2.创建一个 Swap 文件。


mkdir swap


cd swap  www.2cto.com  


sudo dd if=/dev/zero of=swapfile bs=1024 count=100000


 


出现下列提示,上面命令中的 count 即代表swap文件大小。


 


记录了 100000+0 的读入


记录了 100000+0 的写出


102400000 字节 (102 MB) 已复制,0.74704 秒,137 MB/秒


 


把生成的文件转换成 Swap 文件


sudo mkswap swapfile


 


Setting up swapspace version 1, size = 102395 kB


no label, UUID=09fde987-5567-498a-a60b-477e302a988b


 


3.激活 Swap 文件。


sudo swapon swapfile


 


再次查看 free -m 的结果。


 


total used free shared buffers cached


Mem: 1002 967 34 0 22 410


-/+ buffers/cache: 534 467


Swap: 1053 32 1021  www.2cto.com  


 


添加成功。


 


扩展:


如果需要卸载这个 swap 文件,可以进入建立的 swap 文件目录。执行下列命令。


sudo swapoff swapfile


 


如果需要一直保持这个 swap ,可以sudo -s换到root


然后把它写入 /etc/fstab 文件。


 


swapfilepath swap swap defaults 0 0


虽然虚拟内存是设置好了,但是编译了两次还是内存不够用,我重起了一下服务器,希望这一次可以正常运行。还是不行,好像必须要有一个分区才行。


​http://www.91ri.org/1964.html​


又花了20大洋,挂了一个5G的数据硬盘,不过开机之后还是要手动使用命令swapon /mnt/swapfile来启动虚拟内存(linux下其实叫交换分区)。这一次把mysql也关了,又省出来50多M的内存,同时把交换分区设置成500多M,这一次编译erlang 16B03成功了。也成功安装上了erlMySQL的erlang访问库了,接下来就是解写服务器数据处理逻辑和创建socket服务器了。


等服务器搞定了之后,就是全心全意的写客户端代码了。


看来离我的个人开发者独立开发网络游戏又近了一步。