使用磁盘为Linux添加swap

一.SWAP 说明
 
1、SWAP 概述
  当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。
  以上是SWAP 交换分区的作用。 实际上,我们更关注的应该是SWAP分区的大小问题。 设置多大才是最优的。一般来说可以按照如下规则设置swap大小:
    

    4G以内的物理内存,SWAP 设置为内存的2倍。
    4-8G的物理内存,SWAP 等于内存大小。
    8-64G 的物理内存,SWAP 设置为8G。
    64-256G物理内存,SWAP 设置为16G。
  

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

2、系统在什么情况下才会使用SWAP?
  实际上,并不是等所有的物理内存都消耗完毕之后,才去使用swap的空间,什么时候使用是由swappiness 参数值控制。

[[email protected] ~]# cat /proc/sys/vm/swappiness
60

  该值默认值是60。swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。现在服务器的内存动不动就是上百G,所以我们可以把这个参数值设置的低一些,让操作系统尽可能的使用物理内存,降低系统对swap的使用,从而提高系统的性能。

二.使用磁盘为Linux添加swap

  查看磁盘及分区信息

[[email protected]192-168-31-161 ~]# fdisk -l

Disk /dev/xvda: 193.3 GB, 193273528320 bytes, 377487360 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000da64d

    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1   *        2048   377487359   188742656   83  Linux

Disk /dev/mapper/docker-202:1-385876097-pool: 107.4 GB, 107374182400 bytes, 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 65536 bytes / 65536 bytes

Disk /dev/xvdf: 4294 MB, 4294967296 bytes, 8388608 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

  添加新的分区

[[email protected]192-168-31-161 ~]# fdisk /dev/xvdf
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x8fb93abe.

Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition‘s system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-8388607, default 2048):  (直接回车)
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-8388607, default 8388607):  (直接回车)
Using default value 8388607
Partition 1 of type Linux and of size 4 GiB is set

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

  查看磁盘及分区信息

[[email protected]192-168-31-161 ~]# fdisk -l

Disk /dev/xvda: 193.3 GB, 193273528320 bytes, 377487360 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000da64d

    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1   *        2048   377487359   188742656   83  Linux

Disk /dev/mapper/docker-202:1-385876097-pool: 107.4 GB, 107374182400 bytes, 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 65536 bytes / 65536 bytes

Disk /dev/xvdf: 4294 MB, 4294967296 bytes, 8388608 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x8fb93abe

    Device Boot      Start         End      Blocks   Id  System
/dev/xvdf1            2048     8388607     4193280   83  Linux

  可以看到/dev/xvdf1是新创建的分区,注意这里fdisk ID的编号。 这里显示的83,它代表这个分区是ext的分区,这个是不能用来做swap的。我们继续更改

[[email protected]192-168-31-161 ~]# fdisk /dev/xvdf
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): l  (list known partition types)

 0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris
 1  FAT12           27  Hidden NTFS Win 82  Linux swap / So c1  DRDOS/sec (FAT-
 2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     85  Linux extended  c7  Syrinx
 5  Extended        41  PPC PReP Boot   86  NTFS volume set da  Non-FS data
 6  FAT16           42  SFS             87  NTFS volume set db  CP/M / CTOS / .
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux plaintext de  Dell Utility
 8  AIX             4e  QNX4.x 2nd part 8e  Linux LVM       df  BootIt
 9  AIX bootable    4f  QNX4.x 3rd part 93  Amoeba          e1  DOS access
 a  OS/2 Boot Manag 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O
 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor
 c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad hi eb  BeOS fs
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT
 f  W95 Ext‘d (LBA) 54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC b
11  Hidden FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor
12  Compaq diagnost 5c  Priam Edisk     a9  NetBSD          f4  SpeedStor
14  Hidden FAT16 <3 61  SpeedStor       ab  Darwin boot     f2  DOS secondary
16  Hidden FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS
17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE
18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid fe  LANstep
1c  Hidden W95 FAT3 75  PC/IX           be  Solaris boot    ff  BBT
1e  Hidden W95 FAT1 80  Old Minix      

Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition‘s system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): 82
Changed type of partition ‘Linux‘ to ‘Linux swap / Solaris‘

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

  查看磁盘及分区信息

[[email protected]192-168-31-161 ~]# fdisk -l

Disk /dev/xvda: 193.3 GB, 193273528320 bytes, 377487360 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000da64d

    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1   *        2048   377487359   188742656   83  Linux

Disk /dev/mapper/docker-202:1-385876097-pool: 107.4 GB, 107374182400 bytes, 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 65536 bytes / 65536 bytes

Disk /dev/xvdf: 4294 MB, 4294967296 bytes, 8388608 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x8fb93abe

    Device Boot      Start         End      Blocks   Id  System
/dev/xvdf1            2048     8388607     4193280   82  Linux swap / Solaris

mkswap /dev/xvdf1
Setting up swapspace version 1, size = 5241852 KiB
no label, UUID=39c73cf6-1848-4a78-83ec-35089f0eebcb

[[email protected]-192-168-31-161 ~]# blkid
/dev/xvda1: LABEL="centos7_root" UUID="179c37d9-9ba3-47f2-ab50-cf76dec5ef8e" TYPE="xfs"
/dev/loop0: UUID="0c7e9760-c4df-4d5b-b0b6-b2f4487e757b" TYPE="ext4"
/dev/mapper/docker-202:1-385876097-pool: UUID="0c7e9760-c4df-4d5b-b0b6-b2f4487e757b" TYPE="ext4"
/dev/xvdf1: UUID="39c73cf6-1848-4a78-83ec-35089f0eebcb" TYPE="swap" 

swapon /dev/xvdf1

  格式化swap分区:

[[email protected] /]# mkswap /dev/xvdf1
Setting up swapspace version 1, size = 1060252 KiB
no label, UUID=39c73cf6-1848-4a78-83ec-35089f0eebcb

  手工的启动swap

[[email protected]192-168-31-161 ~]# swapon -s

  将/dev/xvdf1添加/etc/fstab文件,系统启动自动加载swap

[[email protected]192-168-31-161 ~]# vi /etc/fstab
#
# /etc/fstab
# Created by anaconda on Tue Jul  8 16:48:19 2014
#
# Accessible filesystems, by reference, are maintained under ‘/dev/disk‘
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
LABEL=centos7_root /                       xfs     defaults        1 1
UUID=39c73cf6-1848-4a78-83ec-35089f0eebcb  swap     swap    defaults    0 0
时间: 2024-11-08 22:27:26

使用磁盘为Linux添加swap的相关文章

21、磁盘管理—Linux添加swap交换分区

添加swap交换分区 SWAP即交换分区是一种类似于Windows系统虚拟内存的功能,将一部分硬盘空间虚拟成内存来使用,从而解决内存容量不足的情况,因为SWAP毕竟是用硬盘资源虚拟的,所以速度上比真实物理内存要慢很多,一般只有当真实物理内存耗尽时才会调用SWAP. 1.创建一个分区,看上篇文章,别着急w保存退出 修改分区的类型输入t: Command (m for help): tSelected partition 1 2.查看可用的分区类型,输入L: Hex code (type L to

|16.CentOS/Linux 添加SWAP分区

一 : 在已有的磁盘下,以文件的形式扩展Swap分区 swap分区的用处:swap是当物理内存不够用的时候,把数据放到swap中,所以swap起到了一个虚拟内存的作用,在某种意义上来说也算是加大了内存空间.一般swap分区是在安装系统时设置的,如果安装系统时忘记分swap分区了,那也没事,还有补救的方法.下面就讲讲安装完系统后如何添加swap分区. 场景:装完系统后苦逼的发现没有分SWAP分区,对于生产服务器,这样显然不行的,因此需要添加SWAP分区.1.首先查看swap大小#  free  

CentOS/Linux 添加SWAP分区

swap分区的用处:swap是当物理内存不够用的时候,把数据放到swap中,所以swap起到了一个虚拟内存的作用,在某种意义上来说也算是加大了内存空间.一般swap分区是在安装系统时设置的,如果安装系统时忘记分swap分区了,那也没事,还有补救的方法.下面就讲讲安装完系统后如何添加swap分区. 场景:装完系统后苦逼的发现没有分SWAP分区,对于生产服务器,这样显然不行的,因此需要添加SWAP分区. 1.首先查看swap大小 #  free total used free shared buff

linux添加swap

一. 起因 发现云服务器重装后没有swap分区 于是我们分出一些物理内存做swap分区.. 二. 经过 (1)创建块文件 sudo dd if=/dev/zero of=/tmp/big_swap bs=1024 count=2000000 注意:if 表示 infile,of 表示outfile bs=1024 表示写入的每个块的大小为1024B=1KB (1024B字节=1024*8bit位) (2)mkswap /tmp/big_swap 将目的文件格式化为swap分区文件 (3)swap

linux添加swap分区文件

创建要作为swap分区的文件 增加1GB大小的交换分区文件,命令如下,其中的count等于想要的块的数量(bs*count=文件大小). # dd if=/dev/zero of=/root/swapfile bs=1M count=1024 格式化为交换分区文件 # mkswap /root/swapfile 启用交换分区文件 # swapon /root/swapfile 使系统开机时自启用,在文件/etc/fstab中添加一行 /root/swapfile swap swap defaul

Linux 添加swap分区, 设定swap阈值

swap阈值设定 1, 查看当前系统swap阈值 [email protected]~$  cat /proc/sys/vm/swappiness 60 内存在使用到100-60=40%的时候,就开始出现有交换分区的使用 swappiness=0表示最大限度使用物理内存,然后才使用swap空间, swappiness=100表示积极使用swap分区,并且把内存上的数据及时的搬运到swap空间里面 2, 永久设定 [email protected]~$ sudo -s [[email protec

Linux添加swap分区

swap分区的作用为当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用,那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中.这样,系统总是在物理内存不够时,才进行Swap交换. 首先查看系统是否有swap分区 可以看到swap分区大小为0,即没有swap分区. 开始创建swap分区 1.使用dd命令创建一个swap分区,在这里创建一个4G大小的分区

linux 手动添加swap

Linux手动添加swap分区 用法:dd [操作数] ... 或:dd 选项 Copy a file, converting and formatting according to the operands. bs=BYTES read and write up to BYTES bytes at a time cbs=BYTES convert BYTES bytes at a time conv=CONVS convert the file as per the comma separat

Linux添加硬盘 挂载硬盘(附 Linux磁盘挂载和mount共享 带图)

Linux添加硬盘 在为主机添加硬盘前,首先要了解Linux系统下对硬盘和分区的命名方法. 在Linux下对IDE的设备是以hd命名的,第一个ide设备是hda,第二个是hdb.依此类推 一般主板上有两个IDE接口,一共可以安装四个IDE设备.主IDE上的两个设备分别对应hda和hdb,第二个IDE口上的两个设备对应hdc和hdd. 一般硬盘安装在主IDE的主接口上,所以是hda 光驱一般安装在第二个IDE的主接口上,所以是hdc(应为hdb是用来命名主IDE上的从接口) SCSI接口设备是用s