Shell教程

Linux 下扩展交换空间

一般来说,当应用程序使用大量物理内存(RAM)并且不够用时操作系统会开始使用交换空间(Swap Space)。这种情况下,操作系统会把不活动的物理页面置换到交换空间。

释放出来的空闲内存可以继续被其他应用程序使用。等到物理内存使用量降下来后,交换的内存区域又会换回到物理内存中。系统管理员应该确保系统交换空间足够,保证操作系统在内存不够用时始终能够通过置换页面的方式获取可用的物理内存。

接下来,我们就来介绍如何创建、扩展和删除交换空间。

真的需要交换空间?

并不是的,前提是你的系统拥有足够的物理内存。但是,建议给系统分配交换空间。因为当系统运行着大量消耗内存的应用,物理内存不够用,且不具备交换空间时,操作系统极容易发生崩溃。对比 RAM 来看,一点点的磁盘空间真是太便宜了。所以建议大家都为系统创建交换空间。

分区还是文件?

交换空间可以直接划分在一个专门的交换分区(推荐),也可以是一个单独的交换文件,甚至可以是这两种方式的组合。默认情况下,大部分的 Linux 发行版在安装时都会创建一个专门的交换分区。而 Windows 一般来说用了交换文件这种方式。

交换空间需要多大?

其实没有特别严格的限制。通常的做法是保证交换空间至少是物理内存的 1.5 倍大小。休眠情况下,交换空间至少可能会被用和 RAM 一样的大小。

配置交换分区

接下来,让我们用文件的方式配置交换空间并立即启用。文件的方式分区方式更灵活。

  • Root 账户登录。
root@debian:~#
  • 在 /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#
  • 用 ‘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#
  • 设置交换文件。
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#
  • 启用交换文件。
root@debian:/var# swapon /var/swapfile
root@debian:/var#
  • 检验一下交换文件是否被成功启用。
root@debian:/var# cat /proc/swaps
Filename                                Type            Size    Used    Priority
/var/swapfile                           file            1023996 0       -1
root@debian:/var# swapon --show
NAME          TYPE       SIZE  USED PRIO
/var/swapfile file      1000M    0B   -1
root@debian:/var#
  • 配置 fstab 文件。

打开 ‘/etc/fstab’ 文件,将下面这行添加到文件末尾,下次系统启动后就会自动启用交换文件了。

/var/swapfile none swap sw 0 0

禁用移除交换文件

  • 禁用一个交换文件。
root@debian:/var# swapoff /var/swapfile
root@debian:/var# swapon --show
  • 删除一个交换文件。
root@debian:/var# rm /var/swapfile
root@debian:/var#
  • 更新 ‘/etc/fstab’ 文件。

将上文中添加的那行,从文件中删除保存即可。

/var/swapfile none swap sw 0 0

交换空间的局限

交换机制存在一个缺点。因为交换空间往往在硬盘上,交换物理页面时访问磁盘是相当缓慢的。所以交换空间并不能完全替代物理内存。

说到最后

系统管理员可以合理的调整交换空间的大小,有利于系统运行得更加顺畅。可以通过系统内存监控等软件获取系统运行时内存情况,根据对应的情况合理调整大小。


原文链接: http://www.linuxandubuntu.com/home/how-to-create-or-increase-swap-space-in-linux
本文链接: https://linuxstory.org/how-to-create-or-increase-swap-space-in-linux

转载请注明出处,否则必究相关责任。

对这篇文章感觉如何?

太棒了
0
不错
0
爱死了
0
不太好
0
感觉很糟
0
雨落清风。心向阳

    You may also like

    Leave a reply

    您的邮箱地址不会被公开。 必填项已用 * 标注

    此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

    More in:Shell

    Shell

    Linux Shell : 关于 Zsh Bash Fish

    介绍著名Linux Shell - Bash、Zsh和Fish的一些注意事项和功能。 Linux之所以强大,是由于其多变的命令行界面,可与系统进行交互。在此过程中,shell担任着用户与Linux内核 […]
    Shell

    如何清除 PHP composer 的缓存或删除其文件夹

    在使用 PHP Composer 进行工作时,您是否遇到了缓慢的性能问题,为了提高其效率以及管理依赖关系,请尝试清除您的项目的 Composer 缓存。 对于那些不熟悉的人,本文是关于 PHP 应用程 […]