`
天空之城
  • 浏览: 402802 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Linux Swap交换分区设置

 
阅读更多
关于swap交换分区的设置:

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

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

做一个假设:如果你的内存足够大,极少出现内存不足的情况,那么你就不需要交换分区。事实上,这种可能性是完全存在的。现在的1G内存的电脑不算什么了。动辄4G内存的电脑也日益普遍。日常使用的话,很少能用完全部的内存。在用不完内存容量的情况下,还要划出它两倍的硬盘空间用于内存交换,这不是浪费吗?

可以说,在你内存基本够用的情况下,完全可以不要交换空间。在Windows下也是一样,在系统属性中,把虚拟内存设置为0,系统依然运行的很好。当然,如果你用的是服务器,还是要有专门的虚拟内存,有备无患。但是虚拟内存的大小不一定非要内存的两倍。

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

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

1 查看swap 空间大小(总计):
     # free -m          默认单

位为k, -m 单位为M
                 total       used       free     shared    buffers     cached
  Mem:           377        180        197          0         19        110
  -/+ buffers/cache:         50        327
  Swap:          572          0        572

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

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

  # swapon -s
  等价于
  # cat /proc/swaps
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工具删除分区。

  删除交换文件步骤同上。


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

  # free -m
                 total       used       free     shared    buffers     cached
  Mem:           377        180        197          0         19        110
  -/+ buffers/cache:         50        327
  Swap:          572          0        572

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

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

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

top 显示系统运行时的各进程动态、实时的状态(cpu、内存)

top 中有3个列 VIRT RES SHR, 标示了进程使用的内存情况.
VIRT 标识这个进程可以使用的内存总大小, 包括这个进程真实使用的内存, 映射过的文件, 和别的进程共享的内存等.
RES 标识这个这个进程真实占用内存的大小.
SHR 标识可以和别的进程共享的内存和库大小.

vmstat 显示内存的使用情况

这些命令都是从/proc/meminfo中读取内存信息.

关于/proc/meminfo中各行的含意, 在内核源代码的Documentation/filesystems/proc.txt文件中有叙述

系统的真实内存大小可以用 dmesg | grep [mM][eE][mM]看到

/proc/pid/status显示一个进程的详细状态
# cat /proc/5346/status
Name: bash
State: S (sleeping)
SleepAVG: 98%
Tgid: 5346
Pid: 5346
PPid: 5343
TracerPid: 0
Uid: 1000 1000 1000 1000
Gid: 104 104 104 104
FDSize: 256
Groups: 6 24 29 44 104 113 1000 1001
VmPeak: 6528 kB
VmSize: 6528 kB
VmLck: 0 kB
VmHWM: 1976 kB
VmRSS: 1976 kB
VmData: 752 kB
VmStk: 84 kB
VmExe: 644 kB
VmLib: 1788 kB
VmPTE: 16 kB
Threads: 1
SigQ: 0/4294967295
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000384004
SigCgt: 000000004b813efb
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000

VmSize即为该进程内存总大小, 和top输出中的VIRT一致.


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/onlymilan/archive/2009/12/04/4941189.aspx
分享到:
评论

相关推荐

    Linux服务器配置与管理:swap交换分区管理.pptx

    Linux服务器的管理和配置是IT运维工作中的重要环节,其中SWAP交换分区的管理是确保系统稳定运行的关键。在Linux系统中,SWAP分区扮演着与Windows系统中的虚拟内存相似的角色,它提供了一种机制,当物理内存不足以...

    详细解读linux下swap分区的作用

    Linux下的swap分区是操作系统管理内存的一种机制,尤其在物理内存有限的情况下显得尤为重要。Swap分区的主要作用在于,当系统的物理内存不足时,它可以充当一个临时的扩展内存,将暂时不活跃的程序数据存储到硬盘上...

    Linux系统攻略 如何重新划分Swap交换分区

    SWAP分区是LINUX暂时存储数据的交换分区,它主要是把主内存上暂时不用得数据存起来,在需要的时候再调进内存内,一般来说它的大小是内存的两倍。本文介绍了重新划分Swap交换分区的方法。

    Linux下交换分区与交换文件的设置[文].pdf

    Linux 下交换分区与交换文件的设置 Linux 操作系统中,交换分区(Swap)是一种重要的存储机制,当系统内存不足时,它可以将暂时不用的数据存储到硬盘的交换空间中,以腾出内存让其他程序运行。然而,许多人认为,...

    如何创建Linux的swap交换分区文件的方法步骤

    在Linux操作系统中,swap交换分区扮演着至关重要的角色,它相当于Windows系统中的虚拟内存,用于在物理内存不足时提供额外的存储空间。当系统内存不足以运行所有进程时,Linux会将部分数据暂时移动到交换分区,以此...

    Linux中增加Swap分区文件的步骤方法

    在设置交换文件之后,需要启用交换分区文件。可以使用 `swapon` 命令来启用交换文件。例如: [root@db2 root]# swapon /home/swap 检查增加后的交换情况: [root@db2 root]# free -m total used free shared ...

    如何增加swap分区的大小

    第二步:设置交换分区文件,例如 `# mkswap /home/swapfile`,建立 swap 的文件系统。 第三步:立即启用交换分区文件,例如 `# swapon /home/swapfile`,启用 swap 文件。 第四步:使系统开机时自启用,在文件 `/...

    SUSE上扩容Swap空间方法

    - 使用`mkswap`命令将新建分区设置为交换分区。 ```shell mkswap /dev/sdb2 ``` 3. **启用交换分区**: - 使用`swapon`命令启用新建的交换分区。 ```shell swapon /dev/sdb2 ``` 4. **写入/etc/fstab**: ...

    linux swap交换内存扩容的方法

    使用`dd`命令创建一个大文件,用作交换分区。例如,创建一个1GB的交换文件: ``` dd if=/dev/zero of=/data2/swapfile bs=1M count=1024 ``` 这里的`/dev/zero`表示填充零,`/data2/swapfile`是交换文件的路径...

    Linux7.7设置交换分区SWAP的方法

    Linux 7.7版本中设置交换分区SWAP的步骤如下: 1. **创建交换分区文件**: 使用`dd`命令生成一个全零的文件,这个文件将作为交换分区使用。在例子中,`if=/dev/zero`指定输入源为零设备,`of=/opt/swapfile`指定...

    windows下浏览ext、swap分区

    - **SWAP分区**:当物理内存不足时,Linux会将部分内存数据交换到硬盘上的SWAP分区,以此扩展系统的可用内存。SWAP分区的大小根据系统内存大小来设定,一般推荐为物理内存的1-2倍。 - **使用SWAP**:在Linux系统中...

    Linux系统中swap分区的设置与增加/删除

    在Linux操作系统中,swap分区扮演着至关重要的角色。它是一种虚拟内存机制,当系统的物理内存不足以满足当前运行的程序需求时,系统会将一部分物理内存的内容暂时存储到swap分区,以便腾出空间来运行其他程序。swap...

    查看调整liunx的交换分区大小

    在Linux操作系统中,交换分区(Swap Partition)是用于扩展内存的一种虚拟存储空间,当物理内存不足时,系统会将部分数据暂时存储到交换分区。本文将详细介绍如何查看和调整Linux系统的交换分区大小。 首先,我们...

    Linux系统中增加Swap分区文件步骤方法

    在Linux系统中,Swap分区是用于扩展物理内存的一种机制,当系统的物理内存不足时,Linux会将部分数据存储到Swap空间中。这篇文章将详细介绍如何在Linux系统中增加Swap分区文件的步骤。 首先,你需要检查当前的Swap...

    red hat 交换分区扩大总结

    在Linux系统中,交换分区(Swap Partition)是用于扩展内存的一种虚拟内存机制,当物理内存不足时,系统会将部分数据存储到交换分区。本文主要总结了如何在Red Hat Enterprise Linux (RHEL)中扩大交换分区,包括使用...

    Linux之分配 swap 分区详解

    >>>Linux教程目录<<< 文件系统管理-4.1分配swap分区 写在前面:自己写完检查可能会有所纰漏,读者们如若发现哪里有错误,可在下方留言或私信我,我会第一时间改正 1. free 命令 free 查看内存与 swap 分区...

    Linux添加swap分区的方法

    接下来,我们需要将该分区类型更改为Linux交换分区(类型82): 1. 重新进入 `fdisk /dev/sdb`。 2. 使用 `t` 命令改变分区类型。 3. 输入分区号,如 `6`,然后查看可用的分区类型,使用 `L` 命令。 4. 选择类型82...

Global site tag (gtag.js) - Google Analytics