DevsDawn
DevsDawn

Linux下swap的配置和使用

swap是Linux系统中的一种虚拟内存技术,它可以在物理内存不足时,将一部分硬盘空间作为内存使用,从而提高系统的性能和稳定性。本文将介绍如何在Linux下配置和使用swap。

配置swap

配置swap有两种方式,一种是使用分区,一种是使用文件。使用分区的优点是速度快,缺点是需要预留硬盘空间;使用文件的优点是灵活,缺点是速度慢。下面分别介绍这两种方式。

使用分区

如果你在安装Linux时已经为swap分配了一个分区,那么你可以直接跳过这一步。如果没有,你可以使用fdisk或者其他工具来创建一个swap分区。假设你创建了一个/dev/sda5的swap分区,你可以按照以下步骤来启用它:

  1. 使用mkswap命令来格式化swap分区:
sudo mkswap /dev/sda5
  1. 使用swapon命令来激活swap分区:
sudo swapon /dev/sda5
  1. 使用free命令来查看swap是否生效:
free -h
  1. 如果你想让swap分区在每次开机时自动挂载,你可以编辑/etc/fstab文件,添加以下一行:
/dev/sda5 swap swap defaults 0 0

使用文件

如果你不想创建一个专门的swap分区,或者你的硬盘空间有限,你可以使用一个文件作为swap。假设你想创建一个4G大小的swap文件,你可以按照以下步骤来操作:

  1. 使用dd命令来创建一个空白文件:
sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
  1. 使用chmod命令来修改文件权限:
sudo chmod 600 /swapfile
  1. 使用mkswap命令来格式化swap文件:
sudo mkswap /swapfile
  1. 使用swapon命令来激活swap文件:
sudo swapon /swapfile
  1. 使用free命令来查看swap是否生效:
free -h
  1. 如果你想让swap文件在每次开机时自动挂载,你可以编辑/etc/fstab文件,添加以下一行:
/swapfile swap swap defaults 0 0

使用swap

当系统的物理内存不足时,系统会自动将一部分不常用的内存数据交换到swap中,从而释放出更多的物理内存给其他进程使用。这个过程是由系统内核管理的,用户无需干预。但是,用户可以通过一些命令来查看或者调整swap的使用情况。

查看swap

要查看系统当前的swap使用情况,可以使用以下几个命令:

  • free:显示系统总体的内存和swap使用情况。
  • swapon -s:显示当前激活的所有swap设备或文件的详细信息。
  • top:显示系统各个进程的内存和swap占用情况。
  • vmstat:显示系统虚拟内存的统计信息。

调整swap

要调整系统对于swap的使用策略,可以修改/proc/sys/vm/swappiness参数。这个参数表示系统在多大程度上倾向于使用swap。它的取值范围是0到100,默认值是60。数值越大,表示越倾向于使用swap;数值越小,表示越倾向于保留物理内存。

要临时修改这个参数,可以使用echo命令:

sudo echo 30 > /proc/sys/vm/swappiness

要永久修改这个参数,可以编辑/etc/sysctl.conf文件,添加或修改以下一行:

vm.swappiness=30

修改后,需要重启系统或者执行以下命令来使之生效:

sudo sysctl -p

一般来说,如果你的系统内存较少,或者你的应用程序对内存要求较高,你可以将这个参数设置得较小,以减少swap的使用;如果你的系统内存较多,或者你的应用程序对内存要求较低,你可以将这个参数设置得较大,以增加swap的使用。

若无特别说明,本文采用 CC BY-SA 4.0 协议进行许可。如需转载,请附上本文链接和本声明。
本文链接:https://devsdawn.com/2023/07/linux-swap-configuration-and-usage/
DigitalOcean云服务,NYSE上市公司,注册即送200USD体验金
Vultr云服务,全球25+地域,注册即送100USD体验金

发表回复

textsms
account_circle
email

DevsDawn

Linux下swap的配置和使用
swap是Linux系统中的一种虚拟内存技术,它可以在物理内存不足时,将一部分硬盘空间作为内存使用,从而提高系统的性能和稳定性。本文将介绍如何在Linux下配置和使用swap。 配置swap 配置…
扫描二维码继续阅读
2023-07-07