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
所有痛苦都是来自对自己无能的愤怒

浙公网安备 33010602011771号