6.2.5 交换分区管理SWAP
6.2.5.1 概念
作用:
”提升“内存容量,防止OOM(out of memory,内存溢出)。 对应windows中的虚拟内存。 从功能上讲,交换分区主要是在内存不够用的时候,将部分内存上的数据交换到swap空间上,以便让系统不会因内存不够用而导致OOM或者更致命的情况出现。 也就是说,当内存不够用时,我们使用 swap 分区来临时顶替。这种“拆东墙,补西墙”的方式应用于几乎所有的操作系统中 使用swap交换分区,显著的优点是,通过操作系统的调度,应用程序实际可以使用的内存空间将远远超过系统的物理内存。由于硬盘空间的价格远比RAM要低,因此这种方式无疑是经济实惠的。当然,频繁地读写硬盘,会显著降低操作系统的运行速率,这也是使用swap交换分区最大的限制。
swap大小:
推荐:设置交换分区大小为内存的2倍。
但在企业中,
大于 4GB 而小于 16GB 内存的系统,最小需要 4GB 交换空间; 大于 16GB 而小于 64GB 内存的系统,最小需要 8GB 交换空间; 大于 64GB 而小于 256GB 内存的系统,最小需要 16GB 交换空间。
6.2.5.2 查看当前的交换分区:free
free命令用于显示内存状态。 free指令会显示内存的使用情况,包括实体内存,虚拟 -m的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。
free
命令的基本语法如下:
free [-bkmotV][-s <间隔秒数>]
参数说明:
-
-b 以Byte为单位显示内存使用情况。
-
-k 以KB为单位显示内存使用情况。
-
-m 以MB为单位显示内存使用情况。
-
-h 以合适的单位显示内存使用情况,最大为三位数,自动计算对应的单位值。单位有:
-
B = bytes K = kilos M = megas G = gigas T = teras
-
-o 不显示缓冲区调节列。
-
-s<间隔秒数> 持续观察内存使用状况。
-
-t 显示内存总和列。
例1:
以MB为单位显示内存使用情况。
free -m
显示内存使用情况。
free
以总和的形式显示内存的使用信息。
free -t
周期性的查询内存使用信息。
free -s 10 # 每10s执行一次命令。
例2:
准备将/dev/sde磁盘划分为1G分区。
n # 开始分区 p +1G # 分配1G分区 t # 查看分区类型
将分区类型改为82(Linux交换)。
82 w partprobe /dev/sde # 刷新 mkswap /dev/sde1 # 格式化 swapon /dev/sde1 # 挂载,卸载swapoff free -m # 验证swap划分成功 fdisk /dev/sde ll /dev/sde*
注:
以上挂载均为临时挂载 永久挂载将命令写入/etc/fstab文件中(容易出错,不建议学习时进行该步骤操作)
例3:写满磁盘
# 抄写文件 dd if=/dev/zero of-/mnt/disk4/1.txt bs=1M count=1000 # 新控制台 watch -n0.5 'df -Th' # 再次复制文件 cp -rf /etc/ /mnt/disk4 ls /mnt/disk4/ -lh # 无法继续存储数据