Linux笔记 No.19---(swap分区、dd命令、mail发送邮件、定时计划任务at和crontab)

一、swap分区

SWAP就是LINUX下的虚拟内存分区,它的作用是在物理内存使用完之后,将磁盘空间虚拟成内存来使用。它和Windows系统的交换文件作用类似,但是它是一段连续的磁盘空间,并且对用户不可见。

虽然SWAP分区能够作为"虚拟"的内存,但它的速度比物理内存慢太多,因此如果需要更快的速度,并不能寄希望于SWAP。最好的办法仍然是加大物理内存,SWAP分区只是临时的解决办法.

linux下的分区推荐一个交换分区,作为所划分的内存不够的时候使用

交换分区(swap)的合理值一般在内存的1.5~2 倍左右,可以适当加大。实际上具体还是以实际应用为准,swap为内存的1.5~2倍也不过是经验之谈。如果交换分区的使用都超过物理内存以上,那么只能说明服务器的性能太差了

当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。

计算机用户会经常遇这种现象。例如,在使用[Windows系统]时,可以同时运行多个程序,当你切换到一个很长时间没有理会的程序时,会听到硬盘“哗哗”直响。这是因为这个程序的内存被那些频繁运行的程序给“偷走”了,放到了Swap区中。因此,一旦此程序被放置到前端,它就会从Swap区取回自己的数据,将其放进内存,然后接着运行。

需要说明一点,并不是所有从物理内存中交换出来的数据都会被放到Swap中(如果这样的话,Swap就会[不堪重负],有相当一部分数据被直接交换到文件系统。

例如,有的程序会打开一些文件,对文件进行读写(其实每个程序都至少要打开一个文件,那就是运行程序本身),当需要将这些程序的内存空间交换出去时,就没有必要将文件部分的数据放到Swap空间中了,而可以直接将其放到文件里去。如果是读文件操作,那么内存数据被直接释放,不需要交换出来,因为下次需要时,可直接从文件系统恢复;如果是写文件,只需要将变化的数据保存到文件中,以便恢复。但是那些用malloc和new函数生成的对象的数据则不同,它们需要Swap空间,因为它们在文件系统中没有相应的“储备”文件,因此被称作“匿名”(Anonymous)内存数据。这类数据还包括堆栈中的一些状态和变量数据等。所以说,Swap空间是“匿名”数据的交换空间。

(一)查看Swap分区大小

用法: free [选项]

选项:

  • -b:以字节B为单位显示
  • -k:以k为单位输出(1k=1024B)
  • -m:以M为单位显示
  • -g:以G为单位显示
  • -h:以便于识别的方式显示
[root@Dxk ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           972M        195M        666M        7.6M        109M        643M
Swap:          3.7G          0B        3.7G
[root@Dxk ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:            972         195         666           7         109         643
Swap:          3815           0        3815

也可以使用swapon -s命令进行查看

[root@Dxk ~]# swapon -s
文件名			  类型		 大小	   已用	  权限
/dev/dm-1      	partition	3907580		0	  -2

(二)交换分区的创建

Linux下可以创建两种类型的交换空间,一种是swap分区,一种是swap文件。前者适合有空闲的分区可以使用,后者适合于没有空的硬盘分区,硬盘的空间都已经分配完毕。

系统的Swap分区大小设置多大才是最优呢? 关于这个问题,应该说只能有一个统一的参考标准,具体还应该根据系统实际情况和内存的负荷综合考虑,ORACLE官方文档推荐如下设置,这是根据物理内存来做参考

RAM Swap Space
Up to 512 MB 2 times the size of RAM
Between 1024 MB and 2048 MB 1.5 times the size of RAM
Between 2049 MB and 8192 MB Equal to the size of RAM
More than 8192 MB 0.75 times the size of RAM

1.以分区形式创建

第一种:基于普通分区的创建

添加磁盘,创建分区

[root@Dxk ~]# parted /dev/sdb mklabel gpt 	 #对添加的磁盘进行GPT格式分区
警告: The existing disk label on /dev/sdb will be destroyed and all
data on this disk will be lost. Do you want to continue?
                                                                                                                                    是/Yes/否/No? y
信息: You may need to update /etc/fstab.

[root@Dxk ~]# parted /dev/sdb mkpart 1 xfs 0% 20%		#创建一个名为sdb1大小为sdb的五分之一的xfs分区
信息: You may need to update /etc/fstab.

#内核重新读取分区表

[root@Dxk ~]# partprobe /dev/sdb1

将此分区格式化为swap分区

[root@Dxk ~]# mkswap /dev/sdb1
mkswap: /dev/sdb1: warning: wiping old LVM2_member signature.
正在设置交换空间版本 1,大小 = 4193276 KiB
无标签,UUID=c478806f-5cf3-49a6-bfe7-ea0458fe8af5

查看格式化是否成功

[root@Dxk ~]# blkid /dev/sdb1
/dev/sdb1: UUID="c478806f-5cf3-49a6-bfe7-ea0458fe8af5" TYPE="swap" PARTLABEL="1" PARTUUID="beb50db8-b146-41d5-8972-c0c13556f2d2" 

挂载

[root@Dxk ~]# echo "/dev/sdb1  swap swap defaults 0 0" >> /etc/fstab
[root@Dxk ~]# swapon -a		#开启/etc/fstab文件中的swap分区

查看是否成功

[root@Dxk ~]# swapon -s
文件名				类型		大小	已用	权限
/dev/dm-1                              	partition	3907580	0	-2
/dev/sdb1                              	partition	4193276	0	-3
[root@Dxk ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           972M        187M        665M        7.6M        119M        651M
Swap:          7.7G          0B        7.7G

这样一个交换分区就创建成功了

第二种:基于逻辑卷的方式创建

创建逻辑卷

[root@Dxk ~]# parted /dev/sdb mkpart 2 xfs 20% 40%
信息: You may need to update /etc/fstab.
[root@Dxk ~]# pvcreate /dev/sdb2                                          
  Physical volume "/dev/sdb2" successfully created.
[root@Dxk ~]# vgcreate myvg /dev/sdb2
  Volume group "myvg" successfully created
[root@Dxk ~]# lvcreate -n mylv01 -L 2G /dev/myvg
  Logical volume "mylv01" created.

将此逻辑卷格式化为swap分区

[root@Dxk ~]# mkswap /dev/myvg/mylv01 
正在设置交换空间版本 1,大小 = 2097148 KiB
无标签,UUID=eeeaa09d-fa40-4fca-9c15-adf3584fc158

查看格式化是否成功

[root@Dxk ~]# blkid /dev/myvg/mylv01
/dev/myvg/mylv01: UUID="eeeaa09d-fa40-4fca-9c15-adf3584fc158" TYPE="swap" 

挂载

[root@Dxk ~]# echo "/dev/myvg/mylv01 swap swap defaults 0 0" >> /etc/fstab
[root@Dxk ~]# swapon -a

查看挂载是否成功

[root@Dxk ~]# lsblk -f
NAME            FSTYPE      LABEL UUID                                   MOUNTPOINT
sda                                                                      
├─sda1          xfs               4dd7e68d-866e-45c4-90fa-a874f9860a3a   /boot
└─sda2          LVM2_member       0BZ0Fj-Chto-UjJM-1C8c-sllG-LZgX-RchmZs 
  ├─centos-root xfs               065251f3-2332-48af-8d1e-bd8f0ecbd94f   /
  ├─centos-swap swap              b41af099-35bc-4719-8a86-83b7476c3735   [SWAP]
  └─centos-home xfs               6de0d75d-afaf-4550-940f-41ec9ce3302c   /home
sdb                                                                      
├─sdb1          swap              c478806f-5cf3-49a6-bfe7-ea0458fe8af5   [SWAP]
└─sdb2          LVM2_member       fSsNcd-lgdn-mvWE-PI5L-TTme-cnJN-D81888 
  └─myvg-mylv01 swap              eeeaa09d-fa40-4fca-9c15-adf3584fc158   [SWAP]

查看交换分区信息

[root@Dxk ~]# swapon -s
文件名				类型				大小	    已用	权限
/dev/dm-1          partition	3907580		 0	-2
/dev/sdb1          partition	4193276		 0	-3
/dev/dm-3          partition	2097148		 0	-4

所以如果是基于逻辑卷创建的swap交换分区,那么便可以进行动态的扩容和所容 ,通过 lvextend 和 lvreduce 进行实现即可

2.以文件形式创建

创建文件

[root@Dxk ~]# dd if=/dev/zero of=./swap.img count=512 bs=2M
记录了512+0 的读入
记录了512+0 的写出
1073741824字节
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值