Swap是存储设备上的一块空间(分区),操作系统可以在这里暂存一些内存里放不下的东西。
这从某种程度上相当于增加了服务器的可用内存,虽然从swap读写比内存慢,但总比没有好,算是内存不足时一种比较不错的解决方案。
如果没有swap,则服务器一旦内存不足,就会开始终止应用以释放内存,甚至会崩溃,这会让你丢失一些还没来得及保存的数据,或者造成宕机。有些应用明确要求系统配置swap以确保数据访问的可靠性。比如oracle数据库。
swap设置关系:
4G以内的物理内存,swap设置为内存的2倍。
4-8G的物理内存,swap建议设置为8G。
8-64G的物理内存,swap建议设置为16G。
64-256G的物理内存,swap设置为32G。
free -h --都可以查看swap大小
swapon -s --都可以查看swap大小
调整swap大小:
1.在 /var目录下建立一个swap目录
mkdir -p /var/swap
2.进入到该目录下
cd /var/swap
3.创建一个swap分区文件
dd if=/dev/zero of=swapfile bs=1024M count=4
或者 dd if=/dev/zero of=swapfile bs=1G count=4
4.格式化一下你创建出来的文件
mkswap /var/swap/swapfile
5.让该文件生效
swapon /var/swap/swapfile
可以查看swap空间变大
free -m
6.让swap永久生效
vi /etc/fstab
在文件中添加/var/swap/swapfile swap swap defaults 0 0
这个保存
shutdown -r now
swapon --查看swap分区
要是想要恢复原来的swap,执行以下命令:
swapoff /var/swap/swapfile --关闭交换分区文件的功能
free -h
在 vi /etc/fstab
注销 /var/swap/swapfile swap swap defaults 0 0
shutdown -r now
磁盘分区
通过df -h
我们可以知道,目前根 “/”目录剩余62个G,我们现在由一个需求,需要将一个90G大小的文件压缩包保存我们的linux上,并且领导要求不允许使用LVM,磁盘管理模式进行存储。只能使用独立的硬盘挂载到linux上进行文件的存储,这个硬盘大小为100G。
linux fdisk
是一个创建和维护分区以及分区表的程序,他兼容多种类型分区以及分区表。他采用了和用户交互的模式方便分区管理。
fdisk -l
我们找到我们需要操作的磁盘 /dev/sdb
fdisk /dev/sdb --和/dev/sdb 磁盘交互
Command (m for hrlp): m
Command action
a --切换可启动标志
b --编辑bsd磁盘标签
c --切换dos兼容性标志
d --删除一个分区
g --创建一个新的空GPT分区表
G --创建IRIX小型机分区表
l --列出所有分区类型
m --打印帮助菜单
n --新建一个分区
o --创建新的空的dos分区表
p --打印分区表(指示你要创建的主分区)
q --不保存退出(如果已经用w保存了可以忽略)
s --创建一个新的sun磁盘标签
t --改变分区系统ID
u --更改显示/输出单位
v --验证你的分区表
w --将刚刚创建分区存入到磁盘分区表并退出
fdisk /dev/sdb
Command (m for help):p
Command (m for help):n
Partition type:
p primary(0 primary,0extended, 4 free)
e extended
Select (default p):p
Partition number(1-4,default 1):1
First sector(2048-209715199,default 2048):
Using default value 2048
Last sector,+sectors or +size{K,M,G} (2048-209715199,default 209715199):+30G
Partition 1 of type Linux and of size 30 GiB is set --第一号主分区建立完成
同理创建2,3主分区
创建最后一个主分区不用设置大小,直接回车,设置剩余的空间为最后一个主分区的大小
Command (m for help): w
使用 fdisk -l 就可以看到/dev/sdb下创建了4个分区
--删除主分区
Command(m for help): d
Partition number (1-4,default 4):1
Partition 1 is deleted
--删除第一个主分区
同理删除所有分区
Command(m for help):w
创建扩展分区以及逻辑分区(子扩展分区)
Command (m for help):n
Partition type:
p primary(0 primary,0extended, 4 free)
e extended
Select (default p):p
Partition number(1-4,default 1):1
First sector(2048-209715199,default 2048):
Using default value 2048
Last sector,+sectors or +size{K,M,G} (2048-209715199,default 209715199):+30G
Partition 1 of type Linux and of size 30 GiB is set --第一号主分区建立完成
同理创建2,3主分区
Command (m for help): n
p primary (3 primary,0 extended ,1 free)
e extended
Select (default e):e
Selected partition 4
First sector (125831168-209715199,default 125831168):
Using default value 125831168
Last sector,+sectors or +size{K,m,G} (125831168-209715199,default 209715199):
Using default value 209715199
Partition 4 of type Extended and of size 40 GiB is set
Command (m for help):n
All primary partitions are in use
Adding logical partition 5
First sector (125833216-209715199,default 125833216):
Using default value 209715199
Partition 4 of tye Extended and of size 40 GiB is set
Command (m for help):n
All primary partitions are in use
Adding logical patition 5
First sector(125833216-209715199,default 125833216):
Using sector ,+sectors or size{K,M,G} (125833216-209715199,default 209715190):+10G
Partition 5 of type Linux and of size 10 GiB is set
同理创建剩下的逻辑分区
--三主一扩展模式
/dev/sdb 分区状况:
Device Boot Start End Blocks Id System
/dev/sdb1 2048 41945087 20971520 83 Linux
/dev/sdb2 41945088 83888127 20971520 83 Linux
/dev/sdb3 83888128 125831167 20971520 83 Linux
/dev/sdb4 125831168 209715199 41942016 5 Extended
/dev/sdb5 125833216 146804735 10485760 83 Linux
/dev/sdb6 146806784 167778303 10485760 83 Linux
/dev/sdb7 167780352 188751871 10485760 83 Linux
/dev/sdb8 188753920 209715199 10485760 83 Linux
fdisk /dev/sdb
Command(m for help):d
Partition number (1-8,default 8):1
Partition 1 is deleted
Command (m for help):w
同理删除第4个就不能删除了,因为第4个是扩展分区,删除了扩展分区,在扩展分区上面的逻辑分区也会相应删除。
扩展分区还可以划分扩展分区,所有的子扩展分区(逻辑分区)的容量小于等于扩展分区的容量。
关于rc.local的深入研究:开机启动文件
ll /etc/rc.d/rc.local
结果:-rw-r--r-- 1 root root 495 Mar 14 01:53 /etc/rc.d/rc.local
pwd
结果:/root
touch 5.txt
vi /etc/rc.d/rc.local
在该文件中添加 rm -rf /root/5.txt 保存
我们发现开机后没有删除 /root/5.txt文件
是因为我们这个文件没有执行权限,所以需要修改权限 :
chmod u+x /etc/rc.d/rc.local
shutdown -r now
发现/root/5.txt文件已经删除了。
在这个文件中添加 mount /dev/sdb1/data 保存 --开机自动挂载这个磁盘
shutdown -r now
df -h
Filesystem Size Used Avail Use% mounted on
/dev/mapper/centos-root 72G 11G 62G 15% /
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 8.8M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda1 473M 152M 321M 33% /boot
/dev/sdb1 100G 33M 100G 1% /data
tmpfs 799M 0 799M 0% /run/user/0
tmpfs 799M 8.0K 799M 1% /run/user/42
另一种自动挂载模式:分区随开机启动自动挂载
fdisk -l
由上面的命令我们可以看到 /dev/sdb1,使这个开机自动挂载
vi /ect/fstab
在这个文件中添加 /dev/sdb1 /data xfs defaults 0 0保存
这句话的意思 /dev/sdb1 /data xfs defaults 0 0
目录 文件类型
df -h
结果发现:没有发现/dev/sdb1
shutdown -r now
df -h
结果发现 /dev/sdb1 已经挂载了。