swap交换文件系统管理:
swap解决内存不足,另外某些app软件硬性要求swap大小。把硬盘当作内存使用。
swap内存一般分为多大呢?
一般当物理内存为<=4G时候swap内存应为物理内存的1.5-2倍
物理内存大于4G时候,建议和物理内存一样大
1)swap生成的方式:
a.安装系统时划分的。
b.使用硬盘格式化后生成。
安装系统后创建swap分区的流程:
对硬盘分区
格式化
挂载
查看验证
创建分区生成swap分区
fdisk -l /dev/sdb
free -m ##查看swap的大小,同时也会显示内存大小
fdisk -cu /dev/sdb##n-p-1-回车-+2G-t-82-w
partx -a /dev/sdb ##重读分区表
cat /proc/partitions ##查看磁盘及分区信息
mkswap /dev/sdb1 ##格式化swap,新建swap
swapon /dev/sdb1 ##临时启用swap
free -m ##查看验证
swapon -s ##查看swap详细信息
vi /etc/fstab ##永久挂载
/dev/sdb1 swap swap defaults 0 0
:wq
mount -a ##验证 (mound无法查到这种方式挂载的swap分区,)
swapoff /dev/sdb1 ##停止swap
swapon -s ##验证
free -m
使用文件格式化后生成swap分区
dd if=/dev/zero of=/swap bs=1G count=2 ##生成文件,/dev/zero由二进制0组成的文件
ls /swap
du -sh /swap ##查看大小
mkswap -f /swap ##新建swap文件系统
swapon /swap ##临时启用
swapon -s
free -m
vi /etc/fstab
/swap swap swap defaults 0 0
:wq
mount -a
reboot
2)swap的管理:查看、启用、禁用、开机挂载
查看:swapon -s
启用:swapon 分区
禁用:swapoff 分区
开机挂载:echo "分区 swap swap defaults 0 0">>/etc/fstab;mount -a
拷贝数据流的命令:
dd if=源文件 of=输出目标 bs=一次拷贝的大小 count=拷贝总数 ##可以盘对盘拷贝数据,制作U盘启动,测试磁盘配额等
案例一: 创建swap分区,对swap进行扩容
在服务器上新加入一块磁盘进行测试
fdisl -l /dev/sdb ##查看磁盘sdb的信息
[root@localhost ~]# fdisk -l /dev/sdb Disk /dev/sdb: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 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: 0x00000000
给磁盘进行分区,分区大小调整到想要为swap扩展的大小,然后选择分区类型为82(82是swap类型的分区格式)
fdisk /dev/sdb
输入 n 回车 ##新建分区
输入 p 回车 ##新建主分区
输入1 回车 ##选择新建第一个分区
回车 ##选择新建分区的位置,回车选择默认
输入 +2G ##输入新建分区的大小
输入 t ##输入t 选择分区类型
输入 82 ## 分区类型选择82swap
输入 p ##打印出分区信息
输入 w ##保存新建分区
[root@localhost ~]# 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 0x30ddcc05. 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-2610, default 1): Using default value 1 Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): +2G Command (m for help): t Selected partition 1 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: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 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: 0x30ddcc05 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.
查看分区信息,可以看到刚新建的sdb1分区。
[root@leslie ~]# cat /proc/partitions major minor #blocks name 8 0 83886080 sda 8 1 512000 sda1 8 2 83373056 sda2 8 16 20971520 sdb 8 17 2104483 sdb1 253 0 52428800 dm-0 253 1 2031616 dm-1 253 2 28909568 dm-2
格式化分区为swap
[root@leslie ~]# mkswap /dev/sdb1 Setting up swapspace version 1, size = 2104476 KiB no label, UUID=3c61e26d-6693-4f6a-960c-c50e0cda27a2
临时启用swap分区 (临时关闭使用swapoff /dev/分区名)
[root@leslie ~]# swapon /dev/sdb1 [root@leslie ~]# free -m ##查看内存信息包括swap分区 total used free shared buffers cached Mem: 474 123 351 0 9 37 -/+ buffers/cache: 76 398 Swap: 4039 0 4039 [root@leslie ~]# swapon -s ##显示swap详细信息 FilenameTypeSizeUsedPriority /dev/dm-1 partition20316080-1 /dev/sdb1 partition21044720-2
永久挂载:(由于临时挂载在系统重启后就会失效,这里使用永久挂载长驻系统)
编辑/etc/fstab文件实现开机挂载存储分区swap。
##这里使用重定向输入的方法写入信息到配置文件,可以使用vim进入文件写
[root@leslie ~]# echo "/dev/sdb1 swap swap defaults 0 0" >>/etc/fstab [root@leslie ~]# tail -1 /etc/fstab /dev/sdb1 swap swap defaults 0 0
案例二: 使用文件对swap分区扩容。
生成一个我们要对swap分区扩容大小的文件。
##dd 命令可以生成任意大小任意数量的文件
if=/dev/zero(这个是从哪个地方取文件,zero是无限大的一个逻辑设备)
of=/swap(这个是生成文件的位置/名称)
bs=1G(生成文件的大小)
connt=2(生成2个1G,)
(总的意思就是凭空生成一个大小为2G的文件swap)
[root@leslie ~]# dd if=/dev/zero of=/swap bs=1G count=2 记录了2+0 的读入 记录了2+0 的写出 2147483648字节(2.1 GB)已复制,188.949 秒,11.4 MB/秒
查看生成文件的大小:
[root@leslie ~]# du -sh /swap 2.1G/swap
将生成的文件格式化为wap分区
[root@leslie ~]# mkswap /swap -f Setting up swapspace version 1, size = 2097148 KiB no label, UUID=92711869-3c7d-4264-9961-25f2c8e66677
临时启用swap分区
[root@leslie ~]# swapon /swap [root@leslie ~]# free -m ##查看内存信息 total used free shared buffers cached Mem: 474 74 400 0 2 17 -/+ buffers/cache: 54 420 Swap: 4031 22 4009 [root@leslie ~]# swapon -s ##查看swap分区信息 FilenameTypeSizeUsedPriority /dev/dm-1 partition203160823296-1 /swap file20971440-2
开机挂载swap分区:
[root@leslie ~]# echo "/swap swap swap defaults 0 0 ">>/etc/fstab [root@leslie ~]# tail -1 /etc/fstab /swap swap swap defaults 0 0 [root@leslie ~]#