一般说来,当应用程序使用大量物理内存(RAM)并且不够用时,Linux操作系统会开始使用交换空间(Swap Space)。这种情况下,Linux操作系统会把不活动的物理页面置换到交换空间。 释放出来的空闲内存可以继续被其他应用程序使用。等到物理内存使用量降下来后,交换的内存区域又会换回到物理内存中。系统管理员应该确保系统交换空间足够,保证操作系统在内存不够用时始终能够通过置换页面的方式获取可用的物理内存。 阅读前先参考Linux交换空间详解。 接下来,我们就来介绍如何创建、扩展和删除交换空间。
真的需要交换空间? 并不是的,前提是你的系统拥有足够的物理内存。但是,建议给系统分配交换空间。因为当系统运行着大量消耗内存的应用,物理内存不够用,且不具备交换空间时,操作系统极容易发生崩溃。对比 RAM 来看,一点点的磁盘空间真是太便宜了。所以建议大家都为系统创建交换空间。
分区还是文件? 交换空间可以直接划分在一个专门的交换分区(推荐),也可以是一个单独的交换文件,甚至可以是这两种方式的组合。默认情况下,大部分的 Linux 发行版在安装时都会创建一个专门的交换分区。而 Windows 一般来说用了交换文件这种方式。
交换空间需要多大? 其实没有特别严格的限制。通常的做法是保证交换空间至少是物理内存的 1.5 倍大小。休眠情况下,交换空间至少可能会被用和 RAM 一样的大小。
配置交换分区 接下来,让我们用文件的方式配置交换空间并立即启用。文件的方式分区方式更灵活。 1.Root 账户登录。 root@debian:~# 2.在 /var 目录下创建一个名为 ‘swapfile’ 的文件,并给予合适的权限。 root@debian:~# cd /var/ root@debian:/var# touch swapfile root@debian:/var# ls -la swapfile -rw-r--r-- 1 root root 0 Feb 4 06:17 swapfile root@debian:/var# chmod 600 swapfile root@debian:/var# ls -la swapfile -rw------- 1 root root 0 Feb 4 06:17 swapfile root@debian:/var# 3.用 ‘dd’ 命令向交换文件写 1GB (这里举例 1GB )数据。 root@debian:/var# dd if=/dev/zero of=/var/swapfile bs=1024k count=1000 1000+0 records in 1000+0 records out 1048576000 bytes (1.0 GB, 1000 MiB) copied, 1.71043 s, 613 MB/s root@debian:/var# 4.设置交换文件。 root@debian:/var# mkswap /var/swapfile Setting up swapspace version 1, size = 1000 MiB (1048571904 bytes) no label, UUID=4368aa26-e09e-4733-92c9-ced7865f6ff9 root@debian:/var# 5.启用交换文件。 root@debian:/var# swapon /var/swapfile root@debian:/var# 6.检验一下交换文件是否被成功启用。 root@debian:/var# cat /proc/swaps
7.配置 fstab 文件。 打开 ‘/etc/fstab’ 文件,将下面这行添加到文件末尾,下次系统启动后就会自动启用交换文件了。 /var/swapfile none swap sw 0 0
禁用移除交换文件 1.禁用一个交换文件。 root@debian:/var# swapoff /var/swapfile root@debian:/var# swapon --show 2.删除一个交换文件。 root@debian:/var# rm /var/swapfile root@debian:/var# 3.更新 ‘/etc/fstab’ 文件。 将上文中添加的那行,从文件中删除保存即可。 /var/swapfile none swap sw 0 0
交换空间的局限 交换机制存在一个缺点。因为交换空间往往在硬盘上,交换物理页面时访问磁盘是相当缓慢的。所以交换空间并不能完全替代物理内存。
说到最后 Linux系统管理员可以合理的调整交换空间的大小,有利于系统运行得更加顺畅。可以通过系统内存监控等软件获取系统运行时内存情况,根据对应的情况合理调整大小。
相关主题 |