加入收藏 | 设为首页 | 会员中心 | 我要投稿 三明站长网 (https://www.0598zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux中交换分区是什么,为什么要这样做

发布时间:2023-09-14 10:06:13 所属栏目:Linux 来源:网络
导读:   这篇文章主要介绍“Linux中交换分区是什么,为何要这样做”,有一些人在Linux中交换分区是什么,为何要这样做的问题上存在疑惑,接下来小编就给大家来介绍一下相关的内容,希
  这篇文章主要介绍“Linux中交换分区是什么,为何要这样做”,有一些人在Linux中交换分区是什么,为何要这样做的问题上存在疑惑,接下来小编就给大家来介绍一下相关的内容,希望对大家解答有帮助,有这个方面学习需要的朋友就继续往下看吧。
 
  linux交换分区不是必须的;linux系统可以在没有交换分区的情况下完美运行,在某些情况下,可以像嵌入式解决方案一样,linux可以不交换运行,交换分区拥有尽可能多的物理内存是避免交换的最佳解决方案。
 
  Linux 系统可以在没有交换分区的情况下完美运行。
 
  当您安装Linux时,安装过程可能会添加交换分区到硬盘以及Linux本身的分区。但是这个交换分区是什么用的,真的有必要吗?
 
  什么是交换?
 
  当多任务操作系统用完物理内存时,无法启动新进程或为现有进程分配更多内存。为了解决这个问题,本地存储(通常是硬盘驱动器)上的一个特殊的空间块被放在一边作为一个临时保存区操作系统这释放了新的工作的记忆。当非活动进程再次变为活动状态时,它将从本地存储交换回内存。此过程称为交换。
 
  Is交换空间真的有必要吗?
 
  Is交换空间在技术上是必需的?
 
  没有。Linux可以在没有它的情况下工作,在某些情况下,像嵌入式解决方案一样,Linux可以不交换运行。如果操作系统进入它没有的情况如果有足够的物理RAM,机器将运行没有任何问题。
 
  交换空间实际上是必需的?
 
  虽然交换减慢了计算机(因为读取和写入硬盘比访问RAM慢得多),并且拥有尽可能多的物理内存是避免交换的最佳解决方案,但是有合法的情况需要进行交换。例如,在系统引导过程中,可能会有一些进程运行(因此消耗系统内存),但可以在很长一段时间内有效地进行休眠。或分配的内存,写入然后再不使用。在这些情况下,交换算法将开始将该内存迁移到硬盘,从而释放宝贵的系统内存。这实际上确保了RAM的最大数量随时可用,从而提高性能。
 
  扩展知识
 
  On机器
 
  为了完整起见,值得一提的是,Linux还有一个称为内存失败者(OOM)的子系统,而不是在内存耗尽时停止内核,将开始杀死进程以释放资源。它的动作是可配置的。
 
  我应该分配多少交换空间?
 
  没有绝对的规则,由于硬盘空间便宜(美元/吉比特),最好分配太多太多的空间。作为经验法则,您应该有两到三倍的交换空间作为物理内存。
 
  添加交换而不扩展交换分区
 
  有两种方法可以在不更改现有交换分区的情况下向系统添加交换空间。一种方法是在另一个驱动器上使用交换分区,另一种是使用交换文件。
 
  要使用另一个硬盘驱动器,请创建一个类型的分区要立即使用交换空间要永久性地将交换空间添加到系统中,您需要编辑/ etc / fstab文件并添加类似于this:
 
  / dev / sdb2的行无交换sw 0 0
 
  如果您的系统正在使用唯一的标识符命名磁盘,请使用blkid命令来获取设备的ID列表。在/ etc / fstab中安装交换空间的行将看起来像是这样的.:
 
  UUID = 036da155-1ea1-4392-b8d4-700f65aa1ead none swap sw 0 0
 
  要使用文件进行交换,请在该文件上创建一个大的空白文件(使用dd)要用于交换的文件系统。例如,要创建一个1GB文件,type = 10mh1112
 
  dd if = / dev / zero of = / store / swapfile bs = 1024 count = 1048576
 
  Where / store / swapfile是所需文件系统上交换文件的路径。
 
  As与附加交换分区,该文件现在需要准备与mkswap,然后与swapon一起使用。它还需要添加到/ etc / fstab文件中。该过程与上述完全相同,但是您需要使用/ store / swapfile而不是/ dev / sdb2作为交换空间参数。
 
  Swappiness
 
  可以调整Linux内核以定义如何积极地尝试将进程交换出内存。这种趋势由称为swappiness的内核变量控制。0的意思是内核将尽可能避免交换,而100表示内核将如何使用交换空间是积极的。许多Linux发行版的默认设置是60.可以使用此命令动态地更改数字.:
 
  sudo sysctl vm。swappiness = 10
 
  要永久设置值,您需要更改(或添加,如果没有)/ etc / sysctl中的swappiness变量。conf文件。
 

(编辑:三明站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章