I am LAZY bones? AN ancient AND boring SITE

2007年 12月 11日 的归档

临时增加swap的方法

我的机子物理内存是1G,当时装系统的时候,以为也不会运行很多程序,于是只分了500M左右的swap.
但是后来,因为种种原因,导致系统缓存不够(主要是因为开了VBox和eclipse两大东东,加上ff和compiz之类的),又不想去动分区结构,怎么办呢?办法当然是有的:

  1. lily@LLY:/home$ sudo dd if=/dev/zero of=swapfile bs=1024 count=655360
  2. 记录了 655360+0 的读入
  3. 记录了 655360+0 的写出
  4. 671088640 字节 (671 MB) 已复制,18.6445 秒,36.0 MB/秒
  5. lily@LLY:/home$ file swapfile
  6. swapfile: data
  7. lily@LLY:/home$ sudo mkswap swapfile
  8. Setting up swapspace version 1, size = 671084 kB
  9. no label, UUID=789730ee-9dcb-4143-8a5c-bbdff938c5a6
  10. lily@LLY:/home$ file swapfile
  11. swapfile: Linux/i386 swap file (new style) 1 (4K pages) size 163839 pages
  12. lily@LLY:/home$ sudo swapon swapfile
  13. lily@LLY:/home$ free -m
  14.              total       used       free     shared    buffers     cached
  15. Mem:          1002        982         19          0          3        250
  16. -/+ buffers/cache:        728        273
  17. Swap:         1126        486        639

解释一下,dd那命令其实就是新建一个约640M的空白文件,注意这里不推荐用其他方法建立文件,因为作为swap的文件不能有空洞(应该就是所谓的碎片吧).
mkswap是在那个空白文件的基础上,建立swap的文件系统,可以看到之后的file命令输出就不一样了.
然后在用swapon命令激活,一切都是那么简单.
另外,如果想让更改永久有效的话,还需要修改一下 /etc/fstab 文件,否则重启后就要再执行swapon命令激活一次.