swap分区的扩展

处理交换文件和分区

    交换分区是系统RAM 的补充

基本设置包括:

    创建交换分区或者文件

    使用mkswap 写入特殊签名

    在/etc/fstab 文件中添加适当的条目

    使用swapon -a

挂载交换分区

启用:swapon

swapon [OPTION]… [DEVICE]

-a :激活所有的交换分区;

-p PRIORITY :指定优先级

/etc/fstab:pri=value

禁用:swapoff [OPTION]… [DEVICE]

[root@station29 ~]# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop1    7:1    0   200M  0 loop
loop7    7:7    0   200M  0 loop
sr0     11:0    1   3.7G  0 rom  
sda      8:0    0   200G  0 disk
├─sda1   8:1    0   200M  0 part /boot
├─sda2   8:2    0    20G  0 part /data
├─sda3   8:3    0    10G  0 part /home
├─sda4   8:4    0     1K  0 part
├─sda5   8:5    0     2G  0 part [SWAP]
└─sda6   8:6    0 167.8G  0 part /
sdb      8:16   0    30G  0 disk
sdc      8:32   0    20G  0 disk
├─sdc1   8:33   0     1G  0 part
├─sdc2   8:34   0     2G  0 part
├─sdc3   8:35   0     3G  0 part
└─sdc4   8:36   0 109.8M  0 part

 

[root@station29 ~]# free
             total       used       free     shared    buffers     cached
Mem:       1906252     365240    1541012       1176      24060     126452
-/+ buffers/cache:     214728    1691524
Swap:      2097148          0    2097148
[root@station29 ~]# fdisk /dev/sdb (分区)
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xdd4e370a.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
 
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
 
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').
 
Command (m for help): n
Command action
   e   extended (逻辑分区)
   p   primary partition (1-4)  (主分区)
p
Partition number (1-4): 1
First cylinder (1-3916, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-3916, default 3916): +2G
 
Command (m for help): p
 
Disk /dev/sdb: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xdd4e370a
 
Device Boot      Start       End      Blocks        Id     System
/dev/sdb1        1         262     2104483+      83     Linux
 
Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel 编辑BSD磁盘标签
   c   toggle the dos compatibility flag 切换DOS兼容性标志
   d   delete a partition   删除分区
   l   list known partition types   列出已知分区类型
   m   print this menu  打印此菜单
   n   add a new partition  添加一个新分区
   o   create a new empty DOS partition table 创建一个新的空DOS分区表
   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 codes): l
 
 0  Empty 24  NEC DOS 81  Minix / old Lin bf  Solaris        
 1  FAT12   39  Plan 9 82  Linux swap / So c1  DRDOS/sec (FAT-
 2  XENIX root  3c  PartitionMagic  83  Linux         c4  DRDOS/sec (FAT-
 3  XENIX usr   40  Venix 80286 84  OS/2 hidden C:  c6 DRDOS/sec (FAT-
 4  FAT16 <32M   41  PPC PReP Boot   85  Linux extended  c7  Syrinx         
 5  Extended    42  SFS 86  NTFS volume set da  Non-FS data    
 6  FAT16   4d  QNX4.x  87  NTFS volume set db  CP/M / CTOS / .
 7  HPFS/NTFS       4e  QNX4.x 2nd part 88  Linux plaintext de  Dell Utility   
 8  AIX             4f  QNX4.x 3rd part 8e  Linux LVM       df  BootIt         
 9  AIX bootable    50  OnTrack DM  93  Amoeba          e1  DOS access     
 a  OS/2 Boot Manag 51  OnTrack DM6 Aux 94  Amoeba BBT      e3  DOS R/O        
 b  W95 FAT32   52  CP/M            9f  BSD/OS          e4  SpeedStor      
 c  W95 FAT32 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi eb  BeOS fs        
 e  W95 FAT16 (LBA)  54  OnTrackDM6      a5  FreeBSD         ee  GPT            
 f  W95 Ext'd (LBA) 55  EZ-Drive        a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS    56  Golden Bow      a7  NeXTSTEP      f0  Linux/PA-RISC b
11  Hidden FAT12    5c  Priam Edisk     a8  Darwin UFS      f1  SpeedStor      
12  Compaq diagnost 61  SpeedStor       a9  NetBSD          f4  SpeedStor      
14  Hidden FAT16 <3 63  GNU HURD or Sys ab  Darwin boot     f2  DOS secondary  
16  Hidden FAT16    64  Novell Netware  af  HFS / HFS+      fb  VMware VMFS    
17  Hidden HPFS/NTF 65  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE
18  AST SmartSleep  70  DiskSecure Mult b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 75  PC/IX           bb  Boot Wizard hid fe  LANstep        
1c  Hidden W95 FAT3 80  Old Minix       be  Solaris boot    ff  BBT            
1e  Hidden W95 FAT1
Hex code (type L to list codes): 82
Changed system type of partition 1 to 82 (Linux swap / Solaris)
 
Command (m for help): p
 
Disk /dev/sdb: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xdd4e370a
 
Device Boot      Start         End      Blocks       Id     System
/dev/sdb1          1         262     2104483+     82     Linux swap / Solaris
 
Command (m for help): w
The partition table has been altered!   分区表已更改
 
Calling ioctl() to re-read partition table.
Syncing disks.  同步磁盘

SWAP 的优先级

可以指定swap 分区0 到32767 的优先级,值越大优先级越高

如果用户没有指定,那么核心会自动给swap 指定一个优先级,这个优先级从-1 开始,每加入一个新的没有用户指定优先级的swap ,会给这个优先级减一。

先添加的swap 的缺省优先级比较高,除非用户自己指定一个优先级,而用户指定的优先级( 是正数) 永远高于核心缺省指定的优先级( 是负数)。

       优化性能:分布存放,高性能磁盘存放

 

[root@station29 ~]# mkswap /dev/sdb1 -L swap2  (格式化文件系统)
Setting up swapspace version 1, size = 2104476 KiB
LABEL=swap2, UUID=0c53f5bd-a767-4c19-8962-260758d1c4f8
[root@station29 ~]# blkid
/dev/sda6: UUID="1fd1710f-ff1a-4eba-94f8-c57ecc05d6c6" TYPE="ext4"
/dev/sda1: UUID="34e5ffbe-c2b3-4745-89bc-1811245ae758" TYPE="ext4"
/dev/sda2: UUID="abf30893-850f-4a50-9a0c-e5e153873eb4" TYPE="ext4"
/dev/sda3: UUID="53e082c2-f1fc-4b96-aa31-d9071dc6355c" TYPE="ext4"
/dev/sda5: UUID="7a8216c5-6781-4494-b2da-fda672f117ad" TYPE="swap"
/dev/sdc1: UUID="868e4945-13c6-41c9-8b4b-62e6180e3838" TYPE="ext4"
/dev/sdc2: UUID="79690db4-ae07-4c5d-8a8c-667c60b58e49" SEC_TYPE="ext2" TYPE="ext3"
/dev/sdc4: UUID="5f4df3af-f8a8-42cb-a391-79974b5c1aa2" TYPE="ext4"
/dev/loop1: SEC_TYPE="msdos" UUID="5926-C9E7" TYPE="vfat"
/dev/loop7: SEC_TYPE="msdos" UUID="5926-C9E7" TYPE="vfat"
/dev/sdb1: LABEL="swap2" UUID="0c53f5bd-a767-4c19-8962-260758d1c4f8" TYPE="swap"
 
[root@station29 ~]# vim /etc/fstab
UUID=53e082c2-f1fc-4b96-aa31-d9071dc6355c /home                   ext4    defaults        1 2
UUID=7a8216c5-6781-4494-b2da-fda672f117ad swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults          0 0
proc                    /proc                   proc    defaults        0 0
UUID="0c53f5bd-a767-4c19-8962-260758d1c4f8" swap swap   defaults        0 0  (加优先级)
 
[root@station29 ~]# swapon -a   (激活交换空间)
[root@station29 ~]# free
             total       used       free     shared    buffers     cached
Mem:       1906252     368604    1537648       1180      24888     126628
-/+ buffers/cache:     217088    1689164
Swap:      4201624          0    4201624
[root@station29 ~]# swapon -s           (查看)
Filename    Type    Size    Used    Priority
/dev/sda5                               partition   2097148 0   -1  (优先级高)
 
/dev/sdb1                               partition   2104476 0   -2
 
[root@station29 ~]# vim /etc/fstab                                                                                                       
输入   :r!blkid /dev/sda1
proc                    /proc                   proc    defaults        0 0
UUID="0c53f5bd-a767-4c19-8962-260758d1c4f8" swap swap   defaults,pri=100        0 0
 
[root@station29 ~]# vim /etc/fstab
[root@station29 ~]# swapon -s
Filename    Type    Size    Used    Priority
/dev/sda5                               partition   2097148 0   -1
/dev/sdb1                               partition   2104476 0   -2
[root@station29 ~]# swapoff /dev/sdb1 (禁用/dev/sdb1)
[root@station29 ~]# swapon -a
[root@station29 ~]# swapon -s
Filename    Type    Size    Used    Priority
/dev/sda5                               partition   2097148 0   -1
/dev/sdb1                               partition 2104476 0 100

 

 禁用swap

[root@station29 ~]# swapoff /dev/sdb1
[root@station29 ~]# free
             total       used       free     shared    buffers     cached
Mem:       1906252     367332    1538920       1180      25188     126624
-/+ buffers/cache:     215520    1690732
Swap:      2097148          0    2097148
 
[root@station29 ~]# vim /etc/fstab
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
 
[root@station29 ~]# fdisk /dev/sdb
 
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').
 
Command (m for help): d
Selected partition 1
 
Command (m for help): w
The partition table has been altered!
 
Calling ioctl() to re-read partition table.
Syncing disks.
 
[root@station29 ~]# free
             total       used       free     shared    buffers     cached
Mem:       1906252     368000    1538252       1176      25624     127168
-/+ buffers/cache:     215208    1691044
Swap:      2097148          0    2097148
 
root@station29 ~]# blkid
/dev/sda6: UUID="1fd1710f-ff1a-4eba-94f8-c57ecc05d6c6" TYPE="ext4"
/dev/sda1: UUID="34e5ffbe-c2b3-4745-89bc-1811245ae758" TYPE="ext4"
/dev/sda2: UUID="abf30893-850f-4a50-9a0c-e5e153873eb4" TYPE="ext4"
/dev/sda3: UUID="53e082c2-f1fc-4b96-aa31-d9071dc6355c" TYPE="ext4"
/dev/sda5: UUID="7a8216c5-6781-4494-b2da-fda672f117ad" TYPE="swap"
/dev/sdc1: UUID="868e4945-13c6-41c9-8b4b-62e6180e3838" TYPE="ext4"
/dev/sdc2: UUID="79690db4-ae07-4c5d-8a8c-667c60b58e49" SEC_TYPE="ext2" TYPE="ext3"
/dev/sdc4: UUID="5f4df3af-f8a8-42cb-a391-79974b5c1aa2" TYPE="ext4"
/dev/loop1: SEC_TYPE="msdos" UUID="5926-C9E7" TYPE="vfat"
/dev/loop7: SEC_TYPE="msdos" UUID="5926-C9E7" TYPE="vfat"

 

没有内存情况下添加文件swap

 

[root@station29 ~]# dd if=/dev/zero of=/swapfile bs=1M count=2048
2048+0 records in
2048+0 records out
2147483648 bytes (2.1 GB) copied, 58.5699 s, 36.7 MB/s
[root@station29 ~]# mkswap /swapfile
mkswap: /swapfile: warning: don't erase bootbits sectors
        on whole disk. Use -f to force.
Setting up swapspace version 1, size = 2097148 KiB
no label, UUID=3af09d92-ec2d-4052-b000-6057b81a6ff8
[root@station29 ~]# blkid /swapfile
/swapfile: UUID="3af09d92-ec2d-4052-b000-6057b81a6ff8" TYPE="swap"
[root@station29 ~]# vim /etc/fstab
proc                    /proc                   proc    defaults        0 0
/swapfile               swap                    swap    defaults        0 0
[root@station29 ~]# swapon -a
[root@station29 ~]# swapon -s   查看
Filename    Type    Size    Used    Priority
/dev/sda5                               partition   2097148 0   -1
/swapfile                               file 2097148 0 -2

 

删除文件swap

 

[root@station29 ~]# swapoff /swapfile
[root@station29 ~]# swapon -s
Filename    Type    Size    Used    Priority
/dev/sda5                               partition   2097148 0   -1
[root@station29 ~]# vim /etc/fstab
proc                    /proc                   proc    defaults        0 0
 
[root@station29 ~]# rm -f /swapfile
posted @ 2017-05-27 10:39  chenghuan  阅读(187)  评论(0)    收藏  举报