Linux内存管理

相信大家如果要在VM上装大型软件的时候,有时候会有内存不够的问题,可能会报 out of memory的错误。 明明已经分了2G(一般的32bitXP电脑即便有4G内存也只能识别3G,分2G给VM已经很大方了)给VM,它还认为不够。 这个问题让笔者烦恼了一阵子,经过多次的实验,有一个解决的办法。
首先在linux命令行中 打进 free -m(以M为单位显示内存状况),会出现
total used free shared buffers cached
Mem: 2172 2163 9 0 5 187
-/+ buffers/cache: 1969 203
Swap: 3999 2076 1923

笔者在网上找了很多关于释放内存的资料,但是效果不明显。后来重装了个系统,一看,发现swap的值变大了,也没报out of memory错了。原来这个问题有另一种解决的办法,希望高手看到不要见笑,毕竟笔者刚接触linux不久,呵呵。
反正我们的物理内存Mem是固定了,就可以想办法增加Swap的值。

以下的操作都要在root用户下进行,首先先建立一个分区,采用dd命令比如
dd if=/dev/zero of=/home/swap bs=1024 count=1024000
这样就会创建/home/swap这么一个分区文件。文件的大小是1024000个block,一般情况下1个block为1K,所以这里空间是1024M。
2.2 指定分区类型为swap
把分区变成swap分区,使用mkswap命令如下
/sbin/mkswap /home/swap
再接着使用这个swap分区,使其成为有效状态。
/sbin/swapon /home/swap
现在再用free -m命令查看一下内存和swap分区大小,就发现增加了512M的空间了。
2.3 设置扩展的swap分区为自动挂载
不过当计算机重启了以后,发现swap还是原来那么大,新的swap没有自动启动,还要手动启动。
那我们需要修改/etc/fstab文件,增加如下一行如下自动挂载命令行
/home/swap swap swap defaults 0 0
就可以在机器启动以后swap空间也增大了

已有1条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>