zoukankan      html  css  js  c++  java
  • linux学习--SWAP

    SWAP说明

    SWAP概述:

      当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到SWAP空间中,等到那些程序要运行时,再从SWAP中恢复保存数据到内存中。这样,系统总是在物理内存不够时,才进行SWAP交换。

    这个是SWAP交换分区的作用。实际上,我们更关注的应该是SWAP分区的大小问题。设置多大才是最优的。

    一般来说可以按照如下规则设置SWAP大小:

    4G以内的物理内存,SWAP设置为内存的2倍。

    4-8G的物理内存,SWAP等于内存大小。

    8-64G的物理内存,SWAP设置为8G。

    64-256G的物理内存,SWAP设置为16G。

    注意:实际上,系统中交换分区的大小并不取决于物理内存的量,而是取决于系统中内存的负荷,所以在安装系统时要根据具体的业务来设置SWAP的值。

    管理SWAP

    1、设置swappiness参数

    --临时性修改: sysctl vm.swappiness=10

    这里我们的修改已经生效,但是如果我们重启了系统,又会变成60.

    --永久修改:在/etc/sysctl.conf 文件里添加如下参数。vm.swappiness = 10

           或者 [root@rhce ~]# echo 'vm.swappiness=10' >>/etc/sysctl.conf

             保存、重启、就OK

    2、查看系统当前SWAP空间的大小

    free -m

    3、释放SWAP空间

    假如我们的系统出现了性能问题,我们通过vmstat命令看到有大量的swap,而我们的物理内存有很充足,那么我们可以手工吧swap空间释放出来。让进程去使用物理内存,从而提高性能。

    vmstat  1 5

    --查看当前swap的使用

    swapon -s
    cat /proc/swaps

    --关闭swap交换分区

    swapoff /dev/sda2
    
    swapon -s

    --启动swap分区

    swapon /dev/sda2

    --验证状态

    swapon -s

    注:

    1、ext 分区是否启用由mount 及 umount 控制。

    2、swap 分区是否启动,由 swapon 及 swapoff 控制。

    我们对swap空间的释放,也是通过关闭swap分区,在启动swap分区来实现的。

    3、使用文件来作为SWAP交换分区

    -- 在根目录下生成一个文件:swap-file, 大小1G

    dd if=/dev/zero of=/swap-file bs=1M count=1024

    -- 将生成的文件格式化成交换分区

    mkswap /swap-file

    -- 启动swap分区并查看状态

    swapon /swap-file
    swapon -s

    -- 在 /etc/fstab 文件中添加如下内容

    UUID=653bbeb5-4abb-4295-b110-5847e073140d swap                    swap    defaults        0 0

     或者

    /swap-file swap                    swap    defaults        0 0

    4、使用磁盘来添加swap

    -- 先划分一个1G的磁盘分区:

    fdisk /dev/sdd 

    Command (m for help): n

    Command action

       e   extended

       p   primary partition (1-4)

    p

    Partition number (1-4): 1

    First cylinder (1-652, default 1):

    Using default value 1

    Last cylinder, +cylinders or +size{K,M,G} (1-652,default 652): +1G

    Command (m for help): w

    The partition table has been altered!

    Calling ioctl() to re-read partition table.

    Syncing disks.

    [root@rhce /]# fdisk -l

     DeviceBoot      Start         End      Blocks  Id  System

    /dev/sdb1               1         132    1060258+  83  Linux

    注意这里fdisk ID的编号。 这里显示的83,它代表这个分区是ext的分区,这个是不能用来做swap的。

    ext的分区ID号:0x83   

    swap的分区ID号:0x82

    --将/dev/sdb1分区改成swap 分区:

    fdisk /dev/sdb
    
    Command (m for help): t
    Selected partition 1
    Hex code (type L to list codes): L
    Hex code (type L to list codes):82
    Changed system type of partition1 to 82 (Linux swap / Solaris)
    /* --注意这里更改磁盘分区的ID类型,如果不更在,在系统重启时会根据ID来判断磁盘的类型,那样在使用时就会出现错误。*/
    Command (m for help): w

    -- 格式化swap分区

    mkswap /dev/sdb1
    
    mkswap –L swap-disk/dev/sdb1
    
    blkid //查看信息
    
    swapon /dev/sdc1 //手动启动swap
    
    swapon -s

    这里可以直接启动swap

    我们这里把/dev/sdb1 和 /dev/sdc1 都添加 /etc/fstab 文件。在重启一下看看。添加内容如下:

    UUID=bc913e6b-209a-49a7-b561-9b8c57294681 swap                    swap    defaults        0 0
    
    LABEL=swap-disk        swap    swap    defaults        0 0

    重启系统后查看

    [root@rhce ~]# swapon -s
    
    Filename                                Type            Size    Used   Priority
    
    /dev/sda2                               partition       3071992 0       -1
    
    /dev/sdb1                               partition       1060248 0       -2
    
    /dev/sdc1                               partition       1053392 0       -3

    --对/dev/sdb1 进行测试:

    [root@rhce ~]# swapoff /dev/sdb1
    
    [root@rhce ~]# swapon -s
    
    Filename                                Type            Size    Used   Priority
    
    /dev/sda2                               partition       3071992 0       -1
    
    [root@rhce ~]# swapon /dev/sdb1
    
    [root@rhce ~]# swapon -s
    
    Filename                                Type            Size    Used   Priority
    
    /dev/sda2                               partition       3071992 0       -1
    
    /dev/sdb1                               partition       1060248 0       -2

    6、SWAP 分区的删除

    Swapoff 文件之后,删除掉对应的空间,在从/etc/fstab删除对应的记录即可。

  • 相关阅读:
    HDU 1124 Factorial
    hdu 1690 Bus System
    hdu 1113 Word Amalgamation
    POJ 2482 Stars in Your Window
    hdu 1385 ZOJ 1456 Minimum Transport Cost(经典floyd)
    hdu 1907 John
    VMware 虚拟机 安装 UBuntu 9.10 命令模式转换成窗口模试
    #pragma CODE_SEG __NEAR_SEG NON_BANKED详解
    Ubuntu 下Hadoop 伪分布式 hadoop0.20.2.tar.gz 的安装
    文件拷贝代码以及疑问
  • 原文地址:https://www.cnblogs.com/xushuhai/p/9467563.html
Copyright © 2011-2022 走看看