解决linux虚拟内存不够用的方法

虚拟内存 (swap)  

虚拟内存就是将硬盘规划出一个区 间,让内存的数据可以经由硬盘来读取。 建立和扩大swap:

建立虚拟内存设备

第一种正规的方法是『直接再加一硬盘,并且将其中某个分区规 划为 swap 的 filesystem 』:思路是:用fdisk建立后,再格式化为swap。再将 swap 启动,启动的指令为 『 swapon /dev/hd[a-d][1-16] 』!   直接 swapoff 就能关掉。

建立虚拟内存文件

使用 swap file 的方 式来新增硬盘!

以 dd 指令来建 立 swapfile ;

# dd if=/dev/zero of=/tmp/swap bs=4k count=16382

16382+0 records in

16382+0 records out

# dd 这个指令是用来转换文 件并且 copy 用的;if 指的是要被转换的输入文件格式 /dev/zero ,of 指的是输出的文件,输出到 /tmp/swap 这个文 件;bs 指的是一个扇区占用几个 kb ;count 指的是要使用多少个 bs 。相乘就是容量。

mkswap /tmp/swap        (格式 化,务必注意书写正确,否则后果很严重)

Setting up swapspace version 1, size = 67096576 bytes

# swapon /tmp /swap        (启动他)这样就已经将虚拟内存增加64 MB了 !如果每次都想启动该文件,那么将 swapon /tmp/swap 写 入/etc/rc.d/rc.local 中。

# free        (查看下swap)

。。。。中间省略

Swap:       192524       2620     189904

# swapoff /tmp/swap          (关掉他)


此外,如果当初建系统的时候,没有完全划分硬盘空间,可以新建个分区,格式化 为swap,然后挂载到/tmp/swap目录上,达到扩容目的。

 

swap工作原理是 :当物理内存不够时,则某些在内存当中所占的程序会暂时被 移动到 swap 中,让物理内存可以被更需要的程序来优先使用。因此,虚拟内存只是缓解作用,速度肯定没法和物理内存比,优化的最好办法就是买内存。另 外, 系统可以进入『休眠』模式,运作当中的程序状态会被纪录到swap去,以作为『唤醒』主机所用!最后有某些程序在运行时,本来就会利 用 swap 的特性来存放一些数据段,所以swap 是需要建立的!只是不需要太大。

swap 在被建立 时,是有限制的:

·  S wap有数量和大小限制,不过不同版本系统限制不一样。

·  目前 x86_64 (64位) 最大内存支持到 64GB, 因此swap总量最大也是仅能达 64GB!

你可能感兴趣的:(linux)