linux 内存管理

swap分区

1. 作用:程序在运行时所有数据存放在RAM中,当RAM使用量超过了限额,为了使系统更加稳定,我们在硬盘上划分一部分空间来作为内存缓冲区swap。当内存使用超过限额,内核会把内存中闲置的数据存放在swap中,当程序需要swap分区中的数据时内核将swap分区中的数据再交还给内存进行处理。
2. swap分区建议大小:(1GiB=1024MiB)

内存大小		swap分区建议大小		当允许HIBERNATE时
2GiB以下	   内存两倍				内存三倍
2-8GiB		  等于物理内存		   物理内存两倍
8-64GiB		   至少4GiB			   物理内存1.5倍
64GiB以上	   至少4GiB			   HIBERNATE不开

HIBERNATE:将一部分信息保存起来,等开机后再交还给内存,提高开机速度,但当内存为64GiB以上时,由于要保存的东西太多了,因此不开启此功能。
3. swap管理
(1)查看swap分区

swapon -s:查看swap分区信息,默认的swap分区优先级是2。

(2)创建swap分区(临时操作):

创建分区并设定分区的类型为Linuxswap
mkswap /dev/sda1						#格式化设备为swap格式
swapon -a /dev/sda1						#启动swap分区
swapon /dev/sda1 -p [-1-32767]			#-p表示指定swap的优先级

(3)永久添加swap分区:
在(2)的基础上修改/etc/fstab文件才能永久保存

vim /etc/fstab
/dev/sda1   swap    swap	pri=4	 0	 0
swapon -a

(4)删除swap分区:

vim /etc/fstab
/dev/sda1	swap	swap	pri=4	 0	 0     #删除此行
swapoff /dev/sda1

命令展示:
(1)查看swap分区
在这里插入图片描述
(2)创建swap分区(临时)
先新建一个分区,大小为1000M。
在这里插入图片描述
此时分区类型为标准的Linux分区,使用 command t 更改类型,再使用 l 查看所有分区表类型,输入序号将其更改为Linux swap类型,wq退出保存。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
同步分区表,可以使用 udevadm settle 命令,发现设备已经存在了,但是还没有UUID。
在这里插入图片描述
格式化为swap格式
在这里插入图片描述
在启动swap分区之前,swap分区是不能使用的。
在这里插入图片描述
可以修改swap分区的优先级(使用 man swapon 可以查看文档),数字越大优先级越高,可以修改优先级范围为-1到32767,注意实际情况可能会有出入。
在这里插入图片描述
在这里插入图片描述
(3)永久保存swap分区
在这里插入图片描述
挂载点直接写swap,类型为swap分区,优先级是4,不备份,不检测。
在这里插入图片描述
将原来的swap分区停掉,重新启动分区,这里会读取/etc/fstab文件,发现优先级变为4了。
在这里插入图片描述
(4)删除swap分区
删除/etc/fstab文件/dev/sda1那行
在这里插入图片描述
在这里插入图片描述
将swap分区停掉
在这里插入图片描述
如果想要删除的更彻底点,直接删除分区,同步分区表。
在这里插入图片描述
在这里插入图片描述
补充: 当硬盘不够用,并且来不及买硬盘时,可以在还有内存的目录下新建swap文件,临时充当swap设备。
(1)df -h 查看当前空间使用情况,发现根分区下有空间,在根分区下制作一个空文件,空文件占用2个G的空间。
在这里插入图片描述
du -sh :查看当前目录下各个文件及目录所占空间的大小,发现/swapfile文件为2G。
在这里插入图片描述
格式化,注意不能使用blkid查看,这个命令是查看设备的,应该使用file命令查看文件类型。
在这里插入图片描述
启动swap分区投入使用,注意虽然看似文件的权限为644,但实际上权限为600。
在这里插入图片描述
此时使用df -h,发现swap分区使用的空间是根分区的。
在这里插入图片描述
如果想删除的话进行如下操作(无法直接删除),这样空间也被根分区回收回来了。
在这里插入图片描述

磁盘配额

1. 作用:设定用户能写入指定设备的最大额度
2. 设定方法:
(1)临时设定

mount /dev/sda1 /pub -o usrquota		#挂载设备并激活配额参数,但此时配额还没开。
quotaon -uv /dev/sda1					#激活配额
edquota -u red							#设定用户red的配额
设备 用户已经创建设备 软限	硬限 用户已经创建文件个数 软限	   硬限
Filesystem	blocks	soft	hard	inodes	        soft   hard

(2)要想永久开启配额

vim /etc/fstab
/dev/sda1	/pub 	xfs		defaults,usrquota	0	0		

(3)删除配额

quotaoff -uv /dev/sda1
vim /etc/fstab							#掉配额参数usrquota

实验步骤:
(1)首先,没有开启配额时看能否随意写数据。
新建同步格式化分区/dev/sda1,再新建/pub目录,挂载/dev/sda1在/pub上,改变/pub权限,使得用户只能更改自己的文件,切换用户,发现可以任意截取。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)开启磁盘配额
在这里插入图片描述
在这里插入图片描述
使用 quotaon -uv 开启用户配额:u表示开启用户配额,v表示显示过程。使用 edquota -u 编辑用户配额。
在这里插入图片描述
soft表示警告,hard表示最多分配20M空间(20480K)。
在这里插入图片描述
发现截取超过20M时,会被拒绝。
在这里插入图片描述
(3)在(2)的基础上永久开启配额
在这里插入图片描述
在这里插入图片描述
(4)如果想删除配额,进行以下操作。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

逻辑卷

1. 几个概念:
pv:物理卷,被处理过的物理分区
pe:物理扩展,设定物理卷中可用于分配的最小存储单元
vg:物理卷组,捆绑pv到一个组中
lv:逻辑卷,分配最终的使用设备
在这里插入图片描述
在这里插入图片描述
2. lvm的作用
可以解决硬盘设备在创建分区后不易修改分区大小的缺陷,尽管对传统的硬盘分区进行强制扩容或缩容从理论上来讲是可行的,但是却可能造成数据的丢失。而lvm技术是在硬盘分区和文件系统之间添加了一个逻辑层,它提供了一个抽象的卷组,可以把多块硬盘进行卷组合并。这样一来,用户不必关心物理硬盘设备的底层架构和布局,就可以实现对硬盘分区的动态调整。

3. lvm设备建立

(1)先建立/weixindata目录,再进行监控:watch -n 1 "pvs;echo===;vgs;echo===;lvs;echo===;df -h /weixindata"(pvs:查看物理卷,vgs:查看物理卷组,lvs:查看逻辑卷)
(2)建立物理分区并设定分区type为lvm
(3)pvcreate /dev/sda2					#创建pv
(4)vgcreate redvg -s 2M /dev/sda2		#创建vg -s设定pe大小为2M
(5)lvcreate -L 100M -n redlv redvg	#创建lvm -L指定大小,-n指定名称
(6)mkfs.xfs /dev/mapper/redvg-redlv	#格式化
(7)mount /dev/redvg/redlv /weixindata	#挂载

实验步骤:
(1)建立/weixindata目录,进行监控。
在这里插入图片描述
在这里插入图片描述
(2)建立物理分区并设定分区类型
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(3)创建pv
在这里插入图片描述
(4)创建vg,-s指定pe大小,如果不指定-s则默认pe为4M,即得到的lvm大小一定为4的整数倍。
在这里插入图片描述
在这里插入图片描述
(5)格式化
在这里插入图片描述
(6)挂载设备
在这里插入图片描述
4. lvm拉伸
当vg中的容量充足

(1)lvextend -L 200M /dev/mapper/redvg-redlv	#拉伸设备
(2)xfs_growfs /weixindata						#拉伸文件系统,在rehl7中可用设备或挂载点,在rehl8中只能用挂载点

实验步骤:
(1)拉伸设备
在这里插入图片描述
(2)拉伸文件系统
如果只拉伸设备的话,仍然只有100M的设备被格式化,因此还要拉伸文件系统。
在这里插入图片描述
注意: /dev/mapper/redvg-redlv和/etc/redvg/redlv是等价的,都是虚拟设备dm-0的一个链接。
在这里插入图片描述
当vg中的容量不足

(1)增加分区
(2)pvcreate /dev/sda3
(3)vgextend redvg /dev/sda3
(4)lvextend -L 2500M /dev/redvg/redlv
(5)xfs_growfs /weixindata

实验步骤:
(1)先扩展lv大小为2500M,发现失败,原因是vg不够。
在这里插入图片描述
(2)添加分区/devsda3
在这里插入图片描述
在这里插入图片描述
(3)增加pv
在这里插入图片描述
(4)增加vg
在这里插入图片描述
(5)扩大lv
在这里插入图片描述
(6)格式化
在这里插入图片描述
5. lvm缩减
xfs文件系统不支持缩减,ext文件系统可以。

(1)umount /dev/redvg/redlv
(2)mkfs.ext4 /dev/redvg/redlv
(3)mount /dev/redvg/redlv /weixindata
(4)umount /weixindata
(5)e2fsck -f /dev/redvg/redlv				#-f表示即使文件系统没有错误迹象,仍强制检查。
(6)resize2fs /dev/redvg/redlv 1500M
(7)lvreduce -L 1500M /dev/redvg/redlv
(8)vgreduce redvg /dev/sda3
(9)pvremove /dev/sda3

实验步骤:
(1)先将原来的文件系统卸载
在这里插入图片描述
(2)格式化为ext4类型
在这里插入图片描述
(3)重新挂载,并用mount查看挂载信息。
在这里插入图片描述
在这里插入图片描述
(4)卸载设备
在这里插入图片描述
(5)缩减前先检测设备上的数据
在这里插入图片描述
(6)进行缩减
注意缩的太小的话,会有警告。
在这里插入图片描述
重新挂载,发现文件系统已经缩小了,但lv还没有缩小。
在这里插入图片描述
(7)缩减lv
在这里插入图片描述
(8)缩减vg
我们发现/dev/sda3是闲置状态,因此将/dev/sda3取出。
在这里插入图片描述
(9)缩减pv
直接将/dev/sda3从pv中移除
在这里插入图片描述
补充: ext文件系统拉伸

 resize2fs /dev/mapper/redvg-redlv

拉伸lv时,前面步骤同xfs文件系统,只有拉伸文件系统命令不同,此命令默认使我们能够使用新扩大分区中的所有空间。
在这里插入图片描述
6. lvm删除

(1)umount /dev/mapper/redvg-redlv
(2)lvremove /dev/redvg/redlv
(3)vgremove  redvg
(4)pvremove /dev/sda2

实验步骤:
(1)将设备卸载
在这里插入图片描述
(2)删除lv
在这里插入图片描述
(3)删除vg
在这里插入图片描述
(4)删除pv
在这里插入图片描述
(5)如果还想删除设备的话,进行以下操作。
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值