我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Linux系统交换空间介绍

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Linux系统交换空间介绍

交换空间是当今计算的一个共同方面,不管操作系统如何。linux使用交换空间来增加主机可用的虚拟内存量。它可以在常规文件系统或逻辑卷上使用一个或多个专用交换分区或交换文件。

在一台典型的计算机中有两种基本的内存类型。第一种类型,随机存取存储器(RAM),用于存储数据和程序,而这些数据和程序正在由计算机积极使用。除非程序和数据存储在RAM中,否则计算机无法使用它们。RAM是易失性内存;也就是说,如果关闭计算机,存储在RAM中的数据就会丢失。
硬盘是用于长期存储数据和程序的磁性介质.磁性介质是非易失性的;存储在磁盘上的数据即使从计算机中移除电源也保持不变。CPU(中央处理单元)不能直接访问硬盘上的程序和数据;必须首先将其复制到RAM中,这就是CPU可以访问其编程指令和这些指令要操作的数据的地方。在引导过程中,计算机将特定的操作系统程序(如内核、init或systemd)以及硬盘驱动器中的数据复制到RAM中,由计算机的处理器CPU直接访问。

交换空间

交换空间是现代Linux系统中的第二种内存类型。交换空间的主要功能是当实际内存被填满,需要更多的空间时,用磁盘空间代替RAM内存。

例如,假设您有一个具有8GB RAM的计算机系统。如果您启动的程序不填充该RAM,一切都是好的,不需要交换。但是假设当您添加更多的行时,您正在处理的电子表格会增长,并且,再加上正在运行的所有其他内容,现在将填充所有的RAM。如果没有可用的交换空间,您将不得不停止电子表格的工作,直到您可以通过关闭一些其他程序来释放一些有限的RAM。

内核使用内存管理程序来检测最近没有使用内容的内存块,也就是页面。内存管理程序将这些相对较少使用的内存页交换到专门指定用于“分页”或交换的硬盘驱动器上的一个特殊分区。这将释放RAM,并为将更多数据输入电子表格腾出空间kUDuXDjQcr。内核的内存管理代码会跟踪那些交换到硬盘上的内存页,如果需要的话,可以将它们分页回RAM。

Linux计算机中的内存总量是RAM加上交换空间,称为虚拟存储器.

Linux交换的类型

Linux提供了两种类型的交换空间。默认情况下,大多数Linux安装都会创建交换分区,但也可以使用特殊配置的文件作为交换文件。交换分区正是它的名称所暗示的-一个标准磁盘分区,由mkswap命令。

如果没有可用的磁盘空间来创建新的交换分区,或者在卷组中可以为交换空间创建逻辑卷,则可以使用交换文件。这只是一个常规文件,它被创建并预先分配到指定的大小。然后mkswap命令将其配置为交换空间。除非绝对必要,否则我不建议使用文件作为交换空间。

震荡

当整个虚拟内存(包括RAM和交换空间)几乎满时,就会发生震荡。系统在交换空间和RAM之间花费大量的时间分页内存块,然后再分页,这样就只剩下很少的时间用于实际的工作了。这方面的典型症状是显而易见的:系统变得缓慢或完全没有响应,硬盘驱动器的活动几乎不断地亮着。

如果您能够设法发出如下命令free这显示了CPU负载和内存使用情况,您将看到CPU负载非常高,可能是系统中CPU核心数量的30至40倍。另一个症状是RAM和交换空间几乎都被完全分配了。

之后,查看SAR(系统活动报告)数据也可以显示这些症状。我在我工作的每一个系统上安装了SAR,并使用它进行修复后的法医分析。

适当的交换空间是多少?

许多年前,应该在硬盘上分配的交换空间数量的经验法则是计算机中安装的RAM数量的2倍(当然,大多数计算机的RAM是以KB或MB计算的)。因此,如果计算机有64 KB的RAM,128 KB的交换分区将是最佳大小。这条规则考虑到了这样一个事实,即当时RAM的大小通常很小,为交换空间分配超过2X的RAM并不能提高性能。由于交换内存超过两倍,大多数系统花费的时间比实际执行有用的工作花费的时间更多。

RAM已经成为一种廉价的商品,现在大多数电脑都有大量的RAM,可以扩展到几十GB。我的大多数较新的计算机至少有8GB的RAM,一台有32 GB,我的主工作站有64 GB。我的旧电脑有4到8GB的内存。

当处理具有大量RAM的计算机时,交换空间的限制性能因子远远低于2X乘法器。Fedora 28,定义了当前交换空间分配的思路。我在下面列出了该文件中的一些讨论和建议表。

下表提供了交换分区的推荐大小,这取决于系统中的RAM数量以及是否需要为系统冬眠提供足够的内存。推荐的交换分区大小是在安装期间自动确定的。但是,为了允许休眠,您需要在自定义分区阶段编辑交换空间。

表1:Fedora 28文档中推荐的系统交换空间

系统RAM数量 推荐交换空间 推荐与休眠的交换
小于2GB RAM数量的2倍 RAM数量的3倍
2GB-8GB 等于RAM的数量 RAM数量的2倍
8 GB-64 GB 内存数量的0.5倍 1.5倍的RAM数量
超过64 GB 工作负荷依赖 不建议冬眠

 

在上面列出的每个范围之间的边界(例如,具有2GB、8GB或64 GB系统RAM的系统),对选择的交换空间和休眠支持使用谨慎。如果您的系统资源允许的话,增加交换空间可能会带来更好的性能。

当然,大多数Linux管理员对于交换空间的适当数量有自己的想法-以及几乎所有其他的东西。下表2是我根据个人在多种环kUDuXDjQcr境中的经验提出的建议。这些可能不适用于您,但与表1一样,它们可能会帮助您开始工作。

表2:作者推荐的系统交换空间

RAM数量 推荐交换空间
≤2GB 2x RAM
2GB-8GB =RAM
>8GB 8GB

 

这两个表中的一个考虑因素是,随着RAM数量的增加,超过某个点,添加更多的交换空间只会在交换空间几乎被填满之前就会导致混乱。如果您在遵循这些建议的同时,虚拟内存太少,则应该在可能的情况下添加更多的RAM,而不是更多的交换空间。与影响系统性能的所有建议一样,请使用对特定环境最有效的建议。这将需要时间和精力来根据您的Linux环境中的条件进行实验和进行更改。

将更多的交换空间添加到非lvm磁盘环境中。

由于已经安装了Linux的主机上对交换空间的需求发生了变化,可能需要修改为系统定义的交换空间的数量。此过程可用于任何需要增加交换空间的一般情况。它假定有足够的可用磁盘空间。此过程还假定磁盘在“原始”EXT 4和交换分区中分区,不使用逻辑卷管理(LVM)。

要采取的基本步骤很简单:

  1. 关闭现有的交换空间。
  2. 创建一个所需大小的新交换分区。
  3. 重新读取分区表。
  4. 将分区配置为交换空间。
  5. 添加新的分区/etc/fSTAB。
  6. 打开交换。

不应该需要重新启动。

为了安全起见,在关闭交换之前,您至少应该确保没有运行应用程序,也没有使用交换空间。这,这个,那,那个free或top命令可以告诉您是否正在使用交换空间。为了更安全,您可以恢复到运行级别1或单用户模式。

使用关闭所有交换空间的命令关闭交换分区:

swapoff -a

现在,在硬盘上显示现有分区。

fdisk -l

这将显示每个驱动器上的当前分区表。按编号标识当前交换分区。

启动fdisk在与命令交互的模式下:

fdisk /dev/<device name>

例如:

fdisk /dev/sda

在这一点上,fdisk现在是交互式的,并且将只在指定的磁盘驱动器上运行。

使用fdiskp子命令来验证磁盘上是否有足够的空闲空间来创建新的交换分区。硬盘上的空间以512字节块和起始和结束柱面数表示,因此您可能需要做一些计算来确定分配分区之间和末尾的可用空间。

使用n命令创建一个新的交换分区。fdisk会问你启动汽缸的问题。默认情况下,它选择编号最低的可用圆柱.如果希望更改,请键入起始气缸的数目。

这,这个,那,那个fdisk命令现在允许您以多种格式输入分区的大小,包括最后一个圆柱号或以字节、KB或MB为单位的大小。输入4000米,这将在新分区上提供大约4GB的空间(例如),然后按Enter键。

使用p子命令,以验证分区是否按您指定的方式创建。注意,除非使用结束圆柱号,否则分区可能不是您指定的。这,这个,那,那个fdisk命令只能在整个圆柱上以增量方式分配磁盘空间,因此分区可能比指定的要小或大一些。如果分区不是您想要的,您可以删除它并再次创建它。

现在有必要指定新分区为交换分区。分命令t允许您指定分区的类型。所以进入t,指定分区号,当它请求十六进制代码分区类型时,类型82,即Linux交换分区类型,然后按Enter键。

当您对所创建的分区感到满意时,请使用w命令将新分区表写入磁盘。这,这个,那,那个fdisk程序在完成修改后的分区表后将退出并返回到命令提示符。您可能会收到以下消息:fdisk完成编写新分区表:


The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.

此时,您可以使用partprobe命令强制内核重新读取分区表,以便不需要执行重新启动。

partprobe

现在使用以下命令fdisk -l要列出分区和新的交换分区,应该在列出的分区中。确保新的分区类型是“Linux交换”。

为了指向新的交换分区,必须修改/etc/fSTAB文件。现有的行可能如下所示:


LABEL=SWAP-sdaX  swap    swap  defaults   0 0

哪里X是分区号。根据新交换分区的位置,添加一个类似于此的新行:


/dev/sdaY     swap    swap  defaults   0 0

确保使用正确的分区号。现在,您可以执行创建交换分区的最后一步。使用mkswap命令将分区定义为交换分区。

mkswap /dev/sdaY

最后一步是使用以下命令打开交换:

swapon -a

您的新交换分区现在与以前存在的交换分区一起联机。您可以使用free或top验证这一点的命令。

将交换添加到lvm磁盘环境中。

如果您的磁盘安装程序使用LVM,则更改交换空间将相当容易。同样,这假设当前交换卷所在的卷组中有可用的空间。默认情况下,LVM环境中FedoraLinux的安装过程会将交换分区创建为逻辑卷。这很容易,因为您可以简单地增加交换卷的大小。

以下是在LVM环境中增加交换空间所需的步骤:

  1. 关掉所有交换。
  2. 增加指定用于交换的逻辑卷的大小。
  3. 将调整大小的卷配置为交换空间。
  4. 打开交换。

首先,让我们使用lvs命令(列出逻辑卷)。


[root@studentvm1 ~]# lvs
 LV   VG        Attr    LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
 home  fedora_studentvm1 -wi-ao---- 2.00g                           
 pool00 fedora_studentvm1 twi-aotz-- 2.00g        8.17  2.93              
 root  fedora_studentvm1 Vwi-aotz-- 2.00g pool00    8.17                  
 swap  fedora_studentvm1 -wi-ao---- 8.00g                           
 tmp  fedora_studentvm1 -wi-ao---- 5.00g                           
 usr  fedora_studentvm1 -wi-ao---- 15.00g                           
 var  fedora_studentvm1 -wi-ao---- 10.00g                           
[root@studentvm1 ~]#

您可以看到当前交换大小为8GB。在本例中,我们希望将2GB添加到此交换卷中。首先,停止现有的交换。如果正在使用交换空间,则可能必须终止正在运行的程序。

swapoff -a

现在增加逻辑卷的大小。


[root@studentvm1 ~]# lvextend -L +2G /dev/mapper/fedora_studentvm1-swap
 Size of logical volume fedora_studentvm1/swap changed from 8.00 GiB (2048 extents) to 10.00 GiB (2560 extents).
 Logical volume fedora_studentvm1/swap successfully resized.
[root@studentvm1 ~]#

运行mkswap命令将整个10 GB分区放入交换空间。


[root@studentvm1 ~]# mkswap /dev/mapper/fedora_studentvm1-swap
mkswap: /dev/mapper/fedora_studentvm1-swap: warning: wiping old swap signature.
Setting up swapspace version 1, size = 10 GiB (10737414144 bytes)
no label, UUID=3cc2bee0-e746-4b66-aa2d-1ea15ef1574a
[root@studentvm1 ~]#

打开掉包。


[root@studentvm1 ~]# swapon -a
[root@studentvm1 ~]#

现在,使用List块设备命令验证新的交换空间是否存在。同样,不需要重新启动。


[root@studentvm1 ~]# lsblk 
NAME                 MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda                  8:0  0  60G 0 disk 
|-sda1                 8:1  0  1G 0 part /boot
`-sda2                 8:2  0  59G 0 part 
 |-fedora_studentvm1-pool00_tmeta  253:0  0  4M 0 lvm 
 | `-fedora_studentvm1-pool00-tpool 253:2  0  2G 0 lvm 
 |  |-fedora_studentvm1-root    253:3  0  2G 0 lvm /
 |  `-fedora_studentvm1-pool00   253:6  0  2G 0 lvm 
 |-fedora_studentvm1-pool00_tdata  253:1  0  2G 0 lvm 
 | `-fedora_studentvm1-pool00-tpool 253:2  0  2G 0 lvm 
 |  |-fedora_studentvm1-root    253:3  0  2G 0 lvm /
 |  `-fedora_studentvm1-pool00   253:6  0  2G 0 lvm 
 |-fedora_studentvm1-swap      253:4  0  10G 0 lvm [SWAP]
 |-fedora_studentvm1-usr      253:5  0  15G 0 lvm /usr
 |-fedora_studentvm1-home      253:7  0  2G 0 lvm /home
 |-fedora_studentvm1-var      253:8  0  10G 0 lvm /var
 `-fedora_studentvm1-tmp      253:9  0  5G 0 lvm /tmp
sr0                  11:0  1 1024M 0 rom 
[root@studentvm1 ~]#

您还可以使用swapon -s命令,或top, free,或者其他几个命令中的任何一个来验证这一点。


[root@studentvm1 ~]# free
       total    used    free   shared buff/cache  available
Mem:    4038808   382404   2754072    4152   902332   3404184
Swap:   10485756      0  10485756
[root@studentvm1 ~]#

注意,不同的命令以不同的形式显示或要求设备特殊文件作为输入。在/dev目录中访问特定设备的方式有很多种。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Linux系统交换空间介绍

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Linux系统交换空间介绍

交换空间是当今计算的一个共同方面,不管操作系统如何。linux使用交换空间来增加主机可用的虚拟内存量。它可以在常规文件系统或逻辑卷上使用一个或多个专用交换分区或交换文件。 在一台典型的计算机中有两种基本的内存类型。第一种类型,随机存取存储器
2022-06-04

Linux系统上交换空间的示例分析

小编给大家分享一下Linux系统上交换空间的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!交换空间交换空间是现代 Linux 系统中的第二种内存类型。交换
2023-06-16

在Linux系统上如何增加swap交换空间

本篇文章给大家分享的是有关在Linux系统上如何增加swap交换空间,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在Linux系统中增加服务器swap交换空间大小是为了防止应用
2023-06-28

详细介绍无线交换机系统与无线交换机

  无线交换机,就是进行无线局域网数据交换的终端网络设备,可以广泛用于家庭、企业,免去有线数据交换的布线,后期维护的麻烦!对目前大部分IPTV无法实现无线连接,实现了可能!今天小编要给大家分享一篇教程,那就是:详细介绍无线交换机系统与无线交换机。  大家都应该可以看到网络的不断发展,路由器以及交换机这两者也在不断地发展
详细介绍无线交换机系统与无线交换机
2024-04-18

Linux如何使用交换空间

这篇文章主要为大家展示了“Linux如何使用交换空间”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux如何使用交换空间”这篇文章吧。一、UNIX如何使用交换空间所有 UNIX 操作系统都支
2023-06-13

怎么在Linux系统上使用交换文件扩展swap空间

本篇内容主要讲解“怎么在Linux系统上使用交换文件扩展swap空间”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么在Linux系统上使用交换文件扩展swap空间”吧!想像一种情景,当我们的L
2023-06-12

Linux怎么检查Swap交换空间

要检查Linux系统中的Swap交换空间,可以使用以下命令:使用free命令查看Swap交换空间的使用情况:free -h使用swapon命令查看系统中已经启用的Swap交换分区:swapon -s使用cat命令查看/proc/swaps文
Linux怎么检查Swap交换空间
2024-04-15

Linux如何检查Swap交换空间

这篇文章主要介绍“Linux如何检查Swap交换空间”,在日常操作中,相信很多人在Linux如何检查Swap交换空间问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux如何检查Swap交换空间”的疑惑有所
2023-01-29

Linux操作系统介绍

1,Linux操作系统介绍**1.什么是操作系统操作系统(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。2,
2023-06-05

Linux文件系统介绍

一、简介 文件系统就是分区或磁盘上的所有文件的逻辑集合。 文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有linux 用户和程序看到的文件、目录、软连接及文件保护信息等都存储在其中。 不同Linux发行版本之间的文件系统差别很少,
2022-06-05

Linux Swap交换分区介绍是怎么样的

这篇文章给大家介绍Linux Swap交换分区介绍是怎么样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Linux Swap交换分区介绍总结Swap交换分区概念 什么是Linux swap space呢?我们先来看看
2023-06-06

linux交换空间的作用是什么

本篇内容主要讲解“linux交换空间的作用是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux交换空间的作用是什么”吧!linux交换空间的作用是增加主机可用的虚拟内存;交换空间是现代
2023-07-05

linux交换空间如何设置大小

在Linux系统中,交换空间的大小可以通过以下方法进行设置:使用命令行工具设置交换空间的大小。可以使用dd命令创建一个特定大小的交换文件,然后使用mkswap命令将该文件转换成交换分区,最后使用swapon命令启用该交换分区。例如,以下命令
linux交换空间如何设置大小
2024-04-09

在linux上如何使用交换文件扩展交换空间

这篇文章给大家分享的是有关在linux上如何使用交换文件扩展交换空间的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。想像一种情景,当我们的Linux系统用尽交换空间时,在这种情况下,我们想要使用swap分区扩展交换
2023-06-16

Linux进程间的关系介绍

这篇文章主要讲解了“Linux进程间的关系介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux进程间的关系介绍”吧!Linux的进程相互之间有一定的关系。比如说,在Linux进程基础
2023-06-13

Android数据类型之间相互转换系统介绍

一些初学Android的朋友可能会遇到JAVA的数据类型之间转换的苦恼,例如,整数和float,double型之间的转换,整数和String类型之间的转换,以及处理、显示时间方面的问题等。下面笔者就开发中的一些体会介绍给大家。 我们知道,a
2022-06-06

Linux用户空间与内核地址空间的详细介绍

这篇文章主要介绍“Linux用户空间与内核地址空间的详细介绍”,在日常操作中,相信很多人在Linux用户空间与内核地址空间的详细介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux用户空间与内核地址空
2023-06-15

linux系统有交换分区吗

本文小编为大家详细介绍“linux系统有交换分区吗”,内容详细,步骤清晰,细节处理妥当,希望这篇“linux系统有交换分区吗”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。linux系
2023-02-17

linux系统的ftp命令介绍

本篇内容主要讲解“linux系统的ftp命令介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux系统的ftp命令介绍”吧!FTP命令是Internet用户使用最频繁的命令之一,不论是在D
2023-06-13

Linux系统编程之进程介绍

我们平时写的 C 语言代码,通过编译器编译,最终它会成为一个可执行程序,当这个可执行程序运行起来后(没有结束之前),它就成为了一个进程。一、进程概述
2023-06-05

编程热搜

目录