博客
关于我
如何在 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/

你可能感兴趣的文章
php/jsp/asp的区别
查看>>
php20个主流框架
查看>>
php301到https,虚拟主机设置自动301跳转到HTTPS
查看>>
php5 apache 配置
查看>>
php5 升级 php7 版本遇到的问题处理方法总结
查看>>
PHP5.3.3安装Mcrypt扩展
查看>>
PHP5.4 + IIS + Win2008 R2 配置
查看>>
PHP5.4 pfsocketopen函数判断sock是否存活的bug(由memcached引起)
查看>>
Redis从入门到精通
查看>>
PHP5.6.x编译报错:Don't know how to define struct flock on this system, set --enable-opcache=no
查看>>
php5ts.dll 下载_php5ts.dll下载
查看>>
php7
查看>>
PHP7 新特性
查看>>
PHP7+MySQL5.7+Nginx1.9. on Ubuntu 14.0
查看>>
php7.1.6 + redis
查看>>
php7中使用php_memcache扩展
查看>>
PHP7中十个需要避免的坑
查看>>
php7和PHP5对比的新特性和性能优化
查看>>
PHP7安装pdo_mysql扩展
查看>>
PHP7实战开发简单CMS内容管理系统(7) 后台登录架构 用户登录校验
查看>>