Linux添加交换文件教程

时间:2020-01-09 10:41:12  来源:igfitidea点击:

如何额外的交换空间来提高Linux服务器/台式机系统的性能。
如何在不创建新分区的情况下使用命令行选项将交换文件添加到Linux系统?
在Linux中,就像在大多数其他类似Unix的操作系统中一样,通常使用整个硬盘分区进行交换。
但是,对于2.6 Linux内核,交换文件的速度与交换分区一样快,尽管我建议使用交换分区。
交换文件的管理灵活性胜于分区的灵活性;由于现代大容量硬盘驱动器可以重新映射物理扇区,因此不能保证任何分区都是连续的。
您可以将交换文件添加为专用分区,也可以按照以下说明创建交换文件。

在Linux下添加交换文件的过程

您需要使用dd命令创建交换文件。

mkswap命令用于在设备或文件中设置Linux交换区域。

步骤1以root用户身份登录

打开终端窗口(选择应用程序>附件>终端)或使用ssh客户端登录到远程服务器。
出现提示时,通过执行" su-"(或" sudo -s")并输入root密码来切换到root用户:

$ su 

或者

$ sudo -s

步骤2创建存储文件

执行以下命令以创建512MB交换文件(1024 * 512MB = 524288块大小):

# dd if=/dev/zero of=/swapfile1 bs=1024 count=524288

输出示例:

524288+0 records in
524288+0 records out
536870912 bytes (537 MB) copied, 3.23347 s, 166 MB/s

其中:

  • ``if =/dev/zero`:从/dev/zero文件读取。/dev/zero是一个特殊文件,其中提供了许多空字符来构建名为/swapfile1的存储文件。
  • ``of =/swapfile1`:从/dev/zero读取存储文件到/swapfile1。
  • ``bs = 1024`:一次读写1024个字节。
  • ``count = 524288`:仅复制523288 BLOCKS输入块。

步骤3安全交换文件

出于安全原因设置正确的文件权限,请执行:

# chown root:root /swapfile1
# chmod 0600 /swapfile1

全球可读的交换文件是一个巨大的本地漏洞。
以上命令确保只有root用户才能读取和写入文件。

步骤4设置Linux交换区域

执行以下命令以在文件中设置Linux交换区域:

# mkswap /swapfile1

输出示例:

Setting up swapspace version 1, size = 524284 KiB
no label, UUID=0e5e7c60-bbba-4089-a76c-2bb29c0f0839

步骤5启用交换文件

最后,立即激活/swapfile1交换空间,执行:

# swapon /swapfile1

步骤6更新/etc/fstab文件

要在Linux系统重新引导后激活/swapfile1,请在/etc/fstab文件中添加条目。
使用文本编辑器(例如vi)打开此文件:

# vi /etc/fstab

追加以下行:

/swapfile1 none swap sw 0 0

保存并关闭文件。
下次Linux在重新引导后启动时,它将自动为您启用新的交换文件。

如何验证Linux交换文件是否已激活?

只需使用free命令:

$ free -m
total       used       free     shared    buffers     cached
Mem:          1876       1798         77          0        119       1440
-/+ buffers/cache:        237       1638
Swap:         4607          0       4607

如何在Linux上显示交换使用摘要?

执行以下swapon命令:

# swapon -s

输出示例:

Filename				Type		Size	Used	Priority
/dev/sda6                               partition	4194296	0	0
/swapfile1                              file		524280	0	-1

另一个选项是查看/proc/meminfo文件:

$ less /proc/meminfo
$ grep -i --color swap /proc/meminfo

输出示例:

SwapCached:        30748 kB
SwapTotal:       6291448 kB
SwapFree:        6154008 kB

您还可以使用top命令,atop命令和/或htop命令显示有关交换使用情况的信息:

# top
# atop
# htop

如何在Linux上禁用用于分页和交换的设备和文件?

您需要使用swapoff命令:

# swapoff /swapfile1
# swapon -s

如何在Linux服务器上设置swappiness?

语法为:

# sysctl vm.swappiness=VALUE
# sysctl vm.swappiness=20

或者

# echo VALUE > /proc/sys/vm/swappiness
# echo 30 > /proc/sys/vm/swappiness

"/proc/sys/vm/swappiness"文件中的值控制内核将多大程度地交换内存页面。
较高的值会增加攻击性,较低的值会降低攻击性。
默认值为60。
要使更改永久生效,请将以下行添加到/etc/sysctl.conf中:

echo 'vm.swappiness=30' >> /etc/sysctl.conf