tft每日頭條

 > 生活

 > linuxswap詳解

linuxswap詳解

生活 更新时间:2025-02-07 10:01:42

大家需要線了解Linux的物理存儲結構,以及如何利用 fdisk 命令來劃分分區,使用 mkfs 命令來格式化分區,使用 mount 命令來進行挂載。但是細心的朋友會發現,當我們重啟系統之後,發現新增的分區不見了,如果想讓這個設備文件的挂載永久有效,則需要把挂載的信息寫入到配置文件 /etc/fstab 中:

linuxswap詳解(Linux交換空間swap講解)1

/dev/sdb1 /myFS xfs defaults 0 0

上面命令中,各列字段的含義如下:

linuxswap詳解(Linux交換空間swap講解)2

大家應該都知道,直接從内存中讀寫數據要比從硬盤讀寫數據快得多,因此有時候我們更希望所有數據的讀寫都在内存中完成。然而實際情況中是不可能的,因為内存是有限的,為了解決這一問題,就引出了物理内存與虛拟内存的概念。

交換空間swap的基本概念

物理内存就是系統硬件提供的内存大小,是真正的内存。相對于物理内存,在 Linux 下還有一個虛拟内存的概念,虛拟内存是為了滿足物理内存的不足而提出的策略,其設計目的是為了解決真實物理内存不足的問題,它是利用磁盤空間虛拟出的一塊邏輯内存。用作虛拟内存的磁盤空間被稱為交換空間(又稱 swap 空間)。

linuxswap詳解(Linux交換空間swap講解)3

[虛拟内存和交換空間的映射關系圖]

作為物理内存的擴展,Linux 會在物理内存不足時,使用交換分區的虛拟内存,更詳細地說,就是内核會将暫時内存中暫時不常用的數據臨時存放到硬盤中,以便騰出物理内存空間。這樣一來,物理内存得到了釋放,這塊内存就可以用于其他目的,當需要用到原始的内容時,這些信息會被重新從交換空間讀入物理内存。

但由于交換分區畢竟是通過硬盤設備讀寫數據的,速度肯定要比物理内存慢,所以隻有當真實的物理内存耗盡後才會調用交換分區的資源。

Linux 的内存管理采取的是分頁存取機制,為了保證物理内存能得到充分的利用,内核會在适當的時候将物理内存中不經常使用的數據塊自動交換到虛拟内存中,而将經常使用的信息保留到物理内存。

當然要深入了解Linux的内存機制,我們還需要掌握以下幾點内容:

  1. Linux 系統會不時地進行頁面交換操作,以保持盡可能多的空閑物理内存
  2. Linux 根據“最近最經常使用”的原則,将一些不經常使用的頁面文件交換到虛拟内存

3.交換空間的頁面在使用時會首先被交換到物理内存,如果此時沒有足夠的物理内存來容納這些頁面,它們又會被馬上交換出去,如此一來,虛拟内存中可能沒有足夠的空間來存儲這些交換頁面,最終會導緻 Linux 出現假死機、服務異常等問題

swap 配額大小

因此,合理規劃和設計 Linux 内存的使用是非常重要的,關于物理内存和交換空間的大小設置問題,取決于實際所用的硬盤大小,我們看下redhat官方建議:

Amount of RAM in the system 物理内存Recommended swap space建議的交換空間大小Recommended swap space if allowing for hibernation如果開啟休眠功能建議的交換空間大小⩽ 2GB2 times the amount of RAM3 times the amount of RAM

2GB – 8GB |Equal to the amount of RAM| 2 times the amount of RAM

8GB – 64GB| At least 4 GB| 1.5 times the amount of RAM

64GB| At least 4 GB| Hibernation not recommended

我們實際在生産環境中,交換分區的大小一般為真實物理内存的1.5~2倍。

如何添加交換分區

添加交換分區之前,我們依舊可以從 /dev/sdb 設備進行分區,我這裡先分出4G的空間,執行操作過程入下圖:

linuxswap詳解(Linux交換空間swap講解)4

從上圖可以看到,我們分出的第二個分區名稱是 /dev/sdb2 ,使用SWAP分區專用的格式化命令 mkswap ,對新建的主分區進行格式化操作:

$ mkswap /dev/sdb2

linuxswap詳解(Linux交換空間swap講解)5

為了能夠提現實驗的效果,我們先來看下目前的swap大小是多少:

$ free -m

linuxswap詳解(Linux交換空間swap講解)6

使用swapon命令把準備好的SWAP分區設備正式挂載到系統中。我們再使用 free -m 命令查看交換分區的大小變化(由2047MB增加到6143MB):

$swapon /dev/sdb2

linuxswap詳解(Linux交換空間swap講解)7

同樣,為了能夠讓新的交換分區設備在系統重啟後依然生效,我們還需要将如下信息寫入到 //etc/fstab 配置文件中:

/dev/sdb2 swap swap defaults 0 0

寫入完成之後記得保存文件。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved