因为租的服务器只有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服务器了。
等服务器搞定了之后,就是全心全意的写客户端代码了。
看来离我的个人开发者独立开发网络游戏又近了一步。