博客
关于我
如何在 Linux 上创建和使用交换文件 | Linux 中国
阅读量:295 次
发布时间:2019-03-03

本文共 1872 字,大约阅读时间需要 6 分钟。

-- Abhishek Prakash

本教程将介绍Linux中的交换文件,探讨其作用及其相较于传统交换分区的优势。通过本教程,你将学会如何创建交换文件并调整其大小。

什么是交换文件?

交换文件允许Linux将磁盘空间模拟为内存。当系统内存耗尽时,交换文件将内存内容暂存到磁盘,以释放内存供更重要进程使用。当内存空闲时,交换文件会将数据恢复回内存。

传统上,交换空间是独立的磁盘分区,但随着技术进步,使用交换文件越来越普遍。这种方式无需预先分配磁盘空间,你可以在根目录下创建文件并指定其作为交换空间。

相较于固定大小的交换分区,交换文件的大小可随意调整,这使得系统管理更加灵活。例如,最新版本的Ubuntu和其他Linux发行版会自动创建一个1GB左右的交换文件,即使你没有手动创建交换分区。

检查现有的交换空间

在创建交换文件前,先检查系统是否已有交换空间。可以通过以下命令获取交换空间信息:

free -h

输出结果会显示系统的内存使用情况,包括交换空间的大小和使用情况。然而,这些信息并不能直接告诉你交换空间是使用分区还是文件。

swapon --show

通过这个命令,你可以看到交换空间的类型。如果是文件,类型显示为file,否则显示为partition。如果系统没有交换空间,swapon --show命令不会输出任何信息。

创建交换文件

如果你的系统没有交换空间或交换空间不足,可以通过以下步骤创建交换文件:

步骤1:创建交换文件

使用fallocate命令创建一个大小为1GB的交换文件:

sudo fallocate -l 1G /swapfile

为确保交换文件的安全性,设置适当的权限:

sudo chmod 600 /swapfile

步骤2:标记文件为交换空间

使用mkswap命令标记文件为交换空间:

sudo mkswap /swapfile

完成后,系统会输出交换文件的相关信息,包括文件的大小和唯一标识符(UUID):

Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes) no label, UUID=7e1faacb-ea93-4c49-a53d-fb40f3ce016a

步骤3:启用交换文件

将交换文件启用以供系统使用:

sudo swapon /swapfile

启用成功后,你可以通过swapon --show命令查看交换文件的详细信息:

swapon --showNAME       TYPE   SIZE USED PRIO/swapfile  file 1024M   0B   -2

步骤4:使更改持久化

为了让交换文件在系统重启后仍然生效,你需要将其添加到/etc/fstab文件中:

sudo cp /etc/fstab /etc/fstab.back
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

调整swappiness参数

swappiness参数决定了交换空间的使用频率,值范围为0到100。较高的值意味着交换空间会更频繁地被使用。

服务器环境通常应设置较低的swappiness值,以优化性能。检查当前swappiness值:

cat /proc/sys/vm/swappiness

如果需要临时更改swappiness值,可以使用以下命令:

sudo sysctl vm.swappiness=25

如果希望更改持久化,编辑/etc/sysctl.conf文件:

vm.swappiness=25

调整交换空间大小

在Linux中调整交换空间大小的步骤如下:

步骤1:关闭现有的交换文件

如果你有临时创建的交换文件,先关闭它:

sudo swapoff /swapfile

步骤2:调整交换文件大小

将交换文件的大小调整为2GB:

sudo fallocate -l 2G /swapfile

重新标记并启用交换文件:

sudo mkswap /swapfile
sudo swapon /swapfile

删除交换文件

如果不再需要交换文件,可以按照以下步骤删除它:

步骤1:关闭交换文件

sudo swapoff /swapfile

步骤2:删除文件

sudo rm /swapfile

总结

通过本教程,你已经掌握了创建和管理Linux交换文件的基本技能。你可以根据需要灵活调整交换文件的大小和配置来优化系统性能。

转载地址:http://wcpl.baihongyu.com/

你可能感兴趣的文章
Python单元测试框架
查看>>
python单元测试之unittest
查看>>
Python单元测试unittest实战
查看>>
Python单元测试-模拟VS补丁
查看>>
python协程实时输出_Python 协程以及事件循环的问题,怎么知道 IO 读取结束了呢?...
查看>>
Python十进制&;包提供错误的结果
查看>>
Python化身“安全老中医”:一键搞定工控系统漏洞,从零基础到精通,收藏这篇就够了!
查看>>
Python加速运行技巧
查看>>
python办公自动化基础遍历文件夹
查看>>
python办公自动化基础输出文件和文件夹
查看>>
python办公自动化基础搜索文件
查看>>
python知识:@classmethod和@staticmethod的异同
查看>>
python前端之css
查看>>
Python制作进度条,原来有这么多方法
查看>>
Python制作简单的学生成绩管理系统
查看>>
python制作甘特图的基本知识(附Demo)
查看>>
python制作一个简单的服务器,【Python】 做一个简单的 http 服务器
查看>>
Python到底能做什么?它的优点在哪?
查看>>
python利用pytorch库导出图像分割算子
查看>>
python利用pyshark监听网卡来抓包其中pyshark中摸索的一些可用参数
查看>>