建立虚拟内存装置
第一种正规的方法是『直接再加一棵硬盘,并且将其中某个扇区规划为 swap 的 filesystem 』, 呵呵,说的容易,做起来更容易!实际的动作为:
1. 以『 fdisk /dev/hd[a-d] 』先建立一个 partition ,还记得 fdisk 怎么做吗?回去复习一下吧!简单的来说,就是先 (1)建立一个 partition,然后 (2)将该 partition 的 ID 改为 82 这一个 swap 的磁盘档案格式代号就对 啦!这样这一步骤就 OK.
2. 以『 mkswap /dev/hd[a-d][1-16] 』的方式来将您刚刚建置出来的 partition 『格式化为 swap 的档案格式』,很简单吧!这样就格式化 OK.
3. 再来则是将 swap 启动,启动的指令为『 swapon /dev/hd[a-d][1-16] 』,这样就能启动了!很简单吧!这样 swap 就自动加入到内存容量里头去了!
那么如何将 swap 关掉呢?呵呵!很简单呀!就是直接给他 swapoff 就对了!
建立虚拟内存档案
那么万一我不想新增加一个扇区呢?可不可以使用 swap file 的方式来新增硬盘呀!当然可以,而且步骤还蛮简单的呢!基本的流程就是:
1. 以 dd 指令来建立 swapfile ;
2. 以 mkswap 来将 swapfile 格式化为 swap 的档案格式;
3. 以 swapon 来启动该档案,使成为 swap ;
4. 以 swapoff 来关闭该档案!
嗯!多说无益!我们来实际的将您的主机系统上面新增 64MB 的虚拟内存吧!如果可能的话, 请您在您的系统上面实际的操作一次底下的步骤,我想,您应该马上会了解实际的操作流程的! (底下的步骤是可以复原的!!别担心,不过 mkswap 这个指令的下达要小心一点就是了!)
1. 使用 dd 这个指令来新增一个 64MB 的档案在 /tmp 底下:
[root@linux ~]# dd if=/dev/zero of=/tmp/swap bs=4k count=16382
16382+0 records in
16382+0 records out
# dd 这个指令是用来转换档案并且 copy 用的;
# if 指的是要被转换的输入档案格式 /dev/zero 可以由 man zero 来查看内容;
# of 指的是输出的档案,我们将之输出到 /tmp/swap 这个档案;
# bs 指的是一个扇区占用几个 kb ;
# count 指的是要使用多少个 bs ,所以最后的容量为 bs*count = 4k * 16382 ~ 64MB
如上所述,我们将建立一个档名为 /tmp/swap 的档案,且其内容共有 64MB 左右大小的档案;
2. 使用 mkswap 将 /tmp/swap 这个档案格式化为 swap 的档案格式:
[root@linux ~]# mkswap /tmp/swap
Setting up swapspace version 1, size = 67096576 bytes
# 请注意,这个指令在下达的时候请『特别小心』,因为下错字元控制,
# 将可能使您的 filesystem 挂掉!
3. 使用 swapon 来将 /tmp/swap 启动
[root@linux ~]# free
total used free shared buffers cached
Mem: 62524 60200 2324 0 716 19492
-/+ buffers/cache: 39992 22532
Swap: 127004 2620 124384
[root@linux ~]# swapon /tmp/swap
# 不要怀疑!这样就已经将虚拟内存增加 64 MB了,如果你每次都要启动该档案,那么将 swapon /tmp/swap 写入 /etc/rc.d/rc.local 当中即可!
[root@linux ~]# free
total used free shared buffers cached
Mem: 62524 60240 2284 0 724 19492
-/+ buffers/cache: 40024 22500
Swap: 192524 2620 189904
4. 使用 swapoff 关掉 swap file
[root@linux ~]# swapoff /tmp/swap
没错,就这么简单的将虚拟内存给他新增了。
虚拟内存的限制
说实话,虚拟内存在目前的桌上型计算机来讲,存在的意义已经不大了!这是因为目前的 x86 主机所含的内存实在都太大了 (一般入门级至少也都有 256MB 了),所以,我们的 Linux 系统大概都用不到虚拟内存 (swap) 这个玩意儿的。不过, 如果是针对服务器或者是工作站这些常年上线的系统来说的话,那么,无论如何,swap 还是需要建立的。 因为 swap 主要的功能是当物理内存不够时,则某些在内存当中所占的程序会暂时被移动到 swap 当中,让物理内存可以被需要的程序来使用。另外,如果您的主机支持电源管理模式, 也就是说,您的 Linux 主机系统可以进入『休眠』模式的话,那么, 运作当中的程序状态泽会被纪录到 swap 去,以作为『唤醒』主机的状态依据!。 另外,有某些程序在运作时,本来就会利用 swap 的特性来存放一些数据段, 所以, swap 来是需要建立的!只是不需要太大! 不过, swap 在被建立时,是有限制的喔!
在核心 2.4.10 版本以后,单一 swap 量已经没有 2GB 的限制了,
但是,最多还是仅能建立到 32 个 swap 的数量!而且,由于目前 x86_64 (64位) 最大内存寻址到 64GB, 因此, swap 总量最大也是仅能达 64GB 就是了!
阅读(2719) | 评论(0) | 转发(0) |