Linux下如何添加虚拟内存

Linux fireling 20488℃

今天我在服务器上编译YouCompleteMe的时,遇到内存不足导致进程被杀掉。服务器的内存只有1个G,明显不满足日常需求,要么花钱加内存,要么,就采用虚拟内存的办法,将硬盘空间划过来一部分当内存。

以前安装Linux的时候,就遇到分配交换空间的问题,其实这个交换空间就是所谓的虚拟内存。虚拟内存是硬盘中划出来的一段虚拟内存空间,用于扩展操作系统的物理内存。当系统的物理内存不够用的时候,操作系统把内存中最不常用的数据“交换”到虚拟内存,从而将物理内存中的一部分空间释放出来供其他程序使用。当程序需要用到虚拟内存内的数据的时候,操作系统再将数据从交换分区恢复到物理内存中。

Linux操作系统有两种实现虚拟内存的方法:交换分区(swap分区)交换文件(swap文件)

采用交换分区的办法其实就是新建一个分区,然后将该分区挂载作为交换空间,方法步骤与传统的新建分区一样。只不过格式化分区和挂载分区分别采用mkswapswapon命令。在创建分区之前,我们常常要用过fdisk -ldf -Th命令来查看硬盘信息和挂载信息,来确定分区的大小。

1

这里就给大家简单介绍一下采用交换文件的方法吧。

查看内存可以用命令


free -h

原有内存如图所示,为1G大小。

2

使用dd命令,来创建大小为2G的文件swapfile:


dd if=/dev/zero of=/mnt/swapfile bs=1M count=2048

其中,if表示input_file输入文件,of表示output_file输出文件,bs表示block_size块大小,count表示计数。这里,我采用了数据块大小为1M,数据块数目为2048,这样分配的空间就是2G大小。

然后,格式化交换文件:


mkswap /mnt/swapfile

之后,挂载交换文件:


swapon /mnt/swapfile

这样,可以看到添加了2G虚拟内存之后的内存大小,如图所示,总共为3G。

3

为了保证开机自动加载虚拟内存,还需要在/etc/fstab文件中加入如下命令:


/mnt/swapfile swap swap defaults 0 0

这样,就可以顺利执行一些比较消耗内存的操作了。不用花钱加内存了,是不是很爽?哈哈~

 

转载请注明:宁哥的小站 » Linux下如何添加虚拟内存

喜欢 (29)