网站地图
3936.net
学霸百科 没有你查不到的
SWaP(Linux系统中的交换分区)

「官网地址0365.tv」-「永久地址0365.tv」

Linux中Swap(即:交换分区),类似于Windows的虚拟内存,就是当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况。Android是基于Linux的操作系统,所以也可以使用Swap分区来提升系统运行效率 。

交换分区,英文的说法是swap,意思是“交换”、“实物交易”。它的功能就是在内存不够的情况下,操作系统先把内存中暂时不用的数据,存到硬盘的交换空间,腾出内存来让别的程序运行,和Windows的虚拟内存(pagefile.sys)的作用是一样的。

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

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

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

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

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

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

[jonny@localhost~]$free-m

totalusedfreesharedbufferscached

Mem:998977200053

-/+buffers/cache:92275

Swap:201572008

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

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

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

Swap行便是系统的swap信息。

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

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

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

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

FilenameTypeSizeUsedPriority

/dev/sda3partition2064344126768-1

[jonny@localhost~]$swapon-s

FilenameTypeSizeUsedPriority

/dev/sda3partition2064344126768-1


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

1.添加一个交换分区

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

2.添加一个交换文件
  a创建大小为512M的交换文件:
  #ddif=/dev/zeroof=/swapfile1bs=1024kcount=512
  b使用mkswap命令来设置交换文件:
  #mkswap/swapfile1
  c启用交换分区:
  #swapon/swapfile1
  d写入/etc/fstab,以便在引导时启用:
  /swapfile1swapswapdefaults00

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

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