Chinaunix首页 | 论坛 | 博客
  • 博客访问: 242335
  • 博文数量: 88
  • 博客积分: 1429
  • 博客等级:
  • 技术积分: 523
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-18 15:31
文章分类

全部博文(88)

文章存档

2017年(2)

2016年(24)

2013年(1)

2012年(24)

2011年(15)

2010年(22)

我的朋友

分类: LINUX

2012-12-26 21:47:21

    SWAP就是LINUX下的虚拟内存分区它的作用是在物理内存使用完之后,将磁盘空间(也就是SWAP分区)虚拟成内存来使用

  它和Windows系统的交换文件作用类似,但是它是一段连续的磁盘空间,并且对用户不可见。 

  需要注意的是,虽然这个SWAP分区能够作为"虚拟"的内存,但它的速度比物理内存可是慢多了,因此如果需要更快的速度的话,并不能寄厚望于SWAP,最好的办法仍然是加大物理内存SWAP分区只是临时的解决办法. 

    交换分区(swap)的合理值一般在内存的2倍左右?

    一种流行的、以讹传讹的说法是,安装Linux系统时,交换分区swap的大小应该是内存的两倍。也就是说,如果内存是2G,那么就应该分出4G的硬盘空间作为交换空间。其实这是严重的浪费。真实的情况是:可以根据你系统内存的大小,以及所使用的程序,自行决定交换分区的大小,甚至可以完全不用交换分区!

----------------------------------------------------------------------------------------------

1、查看swap的空间大小

[jonny@localhost ~]$ free -m

             total       used       free     shared    buffers     cached

Mem:           998        977         20          0          0         53

-/+ buffers/cache:        922         75

Swap:         2015          7       2008

Mem行显示了从系统角度看来内存使用的情况, total是系统可用的内存大小,数量上等于系统物理内存减去内核保留的内存
buffers和cached是系统用做缓冲的内存buffers与某个块设备关联,包含了文件系统元数据,并且跟踪了块的变化cache只包含了文件本身

-/+ buffers/cache行则从用户角度显示内存信息,可用内存从数量上等于mem行used列值减去buffers和cached内存的大小

因为buffers和cached是操作系统为加快系统运行而设置的当用户需要时, 可以只接为用户使用

Swap行便是系统的swap信息。

在日常应用中,通过上述命令看到交换空间的使用情况为0,那么你就不需要很大的虚拟内存,甚至可以完全不需要另辟硬盘空间作为虚拟内存。那么,万一有一天你需要了呢,难道要重装系统?大可不必,在Linux下虚拟内存不单可以放在单独的交换分区,也可以是一个在正常分区下的交换文件。

2、查看swap 空间(file(s)/partition(s)):

包括文件和分区的详细信息

# swapon -s
等价于
# cat /proc/swap

[jonny@localhost ~]$ cat /proc/swaps 

Filename Type            Size    Used    Priority

/dev/sda3 partition       2064344 126768  -1

[jonny@localhost ~]$ swapon -s

Filename Type            Size    Used    Priority

/dev/sda3 partition       2064344 126768  -1

3、添加交换空间
两种选择:添加一个交换分区或添加一个交换文件。推荐你添加一个交换分区;不过,若你没有多少空闲空间可用,则添加交换文件。

3.1 添加一个交换分区
步骤如下:
  a 使用fdisk来创建交换分区(假设 /dev/sdb2 是创建的交换分区)
  b 使用 mkswap 命令来设置交换分区:
    # mkswap /dev/sdb2
  c 启用交换分区:
    # swapon /dev/sdb2
  d 写入/etc/fstab,以便在引导时启用:
    /dev/sdb2 swap swap defaults 0 0

3.2 添加一个交换文件
  a 创建大小为512M的交换文件:
    # dd if=/dev/zero of=/swapfile1 bs=1024k count=512
  b 使用 mkswap 命令来设置交换文件:
    # mkswap /swapfile1
  c 启用交换分区:
    # swapon /swapfile1
  d 写入/etc/fstab,以便在引导时启用:
    /swapfile1 swap swap defaults 0 0

新添了交换分区并启用它之后,请查看 cat /proc/swaps 或 free 命令的输出来确保交换分区已被启用了。

4删除交换空间:
  a 禁用交换分区:
     # swapoff /dev/sdb2
  b 从 /etc/fstab 中删除项目;
  c 使用fdisk或yast工具删除分区。

删除交换文件步骤同上。

 

http://blog.sina.com.cn/s/blog_4cc16fc50100dwur.html

第一种方法:新建分区

1、fdisk /dev/sda

2、n  新建一个分区,新建分区要求硬盘上还有空闲空间可用。

注意:分出一个区做为交换分区,分区类型应为primary,extend不能做为交换分区。

3、t  修改该分区的类型为交换分区(交换分区id为82)

4、w 保存分区表

5、使更改后的分区表立即生效 partprobe

6、将sda5分区格式化为交换分区 mkswap /dev/sda5

7、查看交换分区大小 free

8、挂载交换分区 swapon /dev/sda5

9、用free命令查看新的交换分区大小,发现交换分区已经增加了。

10、卸载交换分区:swapoff /dev/sda5

第二种方法:建立虚拟内存文件

1、创建512M的空文件 dd if=/dev/zero of=/tmp/swap1 bs=1M count=512

2、格式化为交换分区 mkswap /tmp/swap1

3、查看交换分区大小 free

4、挂载交换分区 swapon /tmp/swap1

如果要去掉新增加的swap文件,使用 swapoff /tmp/swap1即可。

阅读(1214) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~