Ubuntu怎么創(chuàng)建、刪除和調(diào)整 SWAP 空間? Linux修改swap交換空間的技巧

當(dāng) Linux 系統(tǒng)消耗完物理內(nèi)存時(shí),非活動(dòng)頁面會(huì)被移動(dòng)到 SWAP 空間。SWAP 空間可以采用專用的 SWAP 分區(qū)或以 SWAP 文件的形式存在。然而,在大多數(shù)情況下,在虛擬機(jī)中運(yùn)行 Ubuntu 系統(tǒng)時(shí),并不會(huì)自動(dòng)創(chuàng)建 SWAP 空間。
本文就為大家介紹,如何在 Ubuntu 中創(chuàng)建、刪除和調(diào)整 SWAP 空間。
Linux 中的 SWAP 空間
計(jì)算機(jī)的物理內(nèi)存(RAM)被 Linux 內(nèi)核劃分為稱為「頁面」的塊,將「頁面」復(fù)制到預(yù)配置的次要存儲(chǔ)設(shè)備(通常是 HDD 或 SSD)的動(dòng)作就稱為「交換」。預(yù)配置的專用空間稱為「 SWAP 空間」,物理內(nèi)存(RAM)和 SWAP 空間的總量稱為虛擬內(nèi)存。
是否有必要進(jìn)行交換
進(jìn)行交換有幾個(gè)原因:
- 當(dāng)內(nèi)存需求超過可用物理內(nèi)存時(shí),交換不太重要的「頁面」可以釋放更多內(nèi)存。
- 在程序啟動(dòng)期間,大部分「頁面」可能很少被使用。交換這些「頁面」可以為其他應(yīng)用程序釋放更多內(nèi)存。
- 如果沒有分配 SWAP 空間,當(dāng) RAM 完全被占用時(shí),可能導(dǎo)致系統(tǒng)崩潰,特別是只有小 RAM 空間的系統(tǒng)。
但是使用 SWAP 也存在一些缺點(diǎn):
- 與 RAM 相比,次要存儲(chǔ)設(shè)備(如 HDD、SSD 等)的速度通常比較慢。以速度對(duì)比來看,RAM 的訪問速度以納秒為單位,而磁盤的訪問速度以毫秒為單位。
- 由于讀寫速度的差異,交換過程會(huì)比較緩慢。當(dāng)進(jìn)行大量交換時(shí),最終會(huì)導(dǎo)致系統(tǒng)變慢。
SWAP 空間的類型
在 Linux 中,通常會(huì)遇到兩種類型的 SWAP 空間:
- 專用的 SWAP 分區(qū):該分區(qū)只能用于交換,不能存儲(chǔ)其他文件。
- SWAP 文件:這些文件可以放置在文件系統(tǒng)的任何位置。
根據(jù)可用的 RAM 大小,SWAP 空間的大小可以不同。
Ubuntu 中的 SWAP 文件
Ubuntu 通常使用專用的 SWAP 分區(qū)進(jìn)行交換。在大多數(shù)情況下,SWAP 分區(qū)會(huì)在安裝過程中自動(dòng)創(chuàng)建,但也可以根據(jù)需要自由創(chuàng)建和調(diào)整 SWAP 文件。
查看 SWAP 空間
在開始創(chuàng)建之前,請(qǐng)先使用以下命令檢查您的 Ubuntu 系統(tǒng)是否已啟用 SWAP 空間:
sudo swapon --show
查看 SWAP 空間
該列表會(huì)包含所有的 SWAP 空間,包括 SWAP 分區(qū)和 SWAP 文件。如果輸出為空,則表示當(dāng)前系統(tǒng)尚未啟用 SWAP 空間。
雖然可能,但同一臺(tái) Linux 計(jì)算機(jī)上有多個(gè) SWAP 空間的情況并不常見。
創(chuàng)建 SWAP 文件
與 SWAP 分區(qū)相比,SWAP 文件具有一個(gè)重要的優(yōu)勢(shì),即文件大小可以輕松調(diào)整,而無需觸及磁盤分區(qū)來更改交換空間的大小。
在本節(jié)中,我們將創(chuàng)建一個(gè)新的 SWAP 文件,并將其添加到當(dāng)前的交換池中。
1、在「終端」中使用以下命令創(chuàng)建一個(gè)空白文件:
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
創(chuàng)建 SWAP 文件
- 文件大小計(jì)算為 1M X 2048 = 2G,要?jiǎng)?chuàng)建不同大小的文件,請(qǐng)更改相應(yīng)的
count
參數(shù)值。 /dev/zero
是 Linux 系統(tǒng)中的一個(gè)特殊塊設(shè)備,在每次讀取時(shí)輸出零字節(jié)。- 可以使用其他工具(例如 fallocate)來創(chuàng)建文件,但在某些情況下,可能會(huì)引起問題。
2、使用以下命令設(shè)置正確的文件權(quán)限:
sudo chmod 600 /swapfile
3、使用使用mkswap
實(shí)用程序?qū)⑽募袷交癁?SWAP 空間:
sudo mkswap /swapfile
4、使用以下命令激活 swap 文件并將其添加到交換池中:
sudo swapon /swapfile
5、要讓創(chuàng)建好的 SWAP 空間永久生效,需要將 swapfile 路徑內(nèi)容寫入到/etc/fstab
文件當(dāng)中:
/swapfile swap swap defaults 0 0
配置 SWAP 文件永久生效
6、使用swapon
或free
命令驗(yàn)證 SWAP 文件是否處于活動(dòng)狀態(tài),如下所示:
sudo swapon --show ##或者 sudo free -h
驗(yàn)證 SWAP 文件狀態(tài)
調(diào)整 Swappiness 值
Swappiness 是 Linux 內(nèi)核的一個(gè)屬性,用于定義 Linux 系統(tǒng)使用 SWAP 空間的頻率。swappiness
值的范圍是0
到100
,較低的值會(huì)盡量減少內(nèi)核對(duì) SWAP 空間的使用,而較高的值會(huì)使 Linux 內(nèi)核更積極地使用 SWAP 空間。
Ubuntu 系統(tǒng)的默認(rèn) Swappiness 值為60
,您可以使用以下命令進(jìn)行查看:
cat /proc/sys/vm/swappiness
值為60
對(duì)于 Ubuntu Desktop 來說還可以,但對(duì)于 Ubuntu Server來說,SWAP 的使用頻率就比較高了,所以您可能需要將值設(shè)置得較低一些。例如,要將swappiness
值設(shè)置為40
,請(qǐng)執(zhí)行以下命令:
sudo sysctl vm.swappiness=40
查看及調(diào)整 Swappiness 值
如果要讓設(shè)置在系統(tǒng)重啟后依然有效,需要在/etc/sysctl.conf
文件中添加以下內(nèi)容:
vm.swappiness=40
最佳的 swappiness 值取決于 Ubuntu 系統(tǒng)的工作負(fù)載和內(nèi)存使用方式,您應(yīng)該逐漸調(diào)整這個(gè)參數(shù),以找到最佳取值。
刪除 SWAP 文件
要停用并刪除 SWAP 文件,請(qǐng)按照下列步驟操作:
1、在「終端」中運(yùn)行以下命令停用 SWAP 文件:
sudo swapoff -v /swapfile
2、在/etc/fstab
文件中刪除 swap 相關(guān)的行。
3、最后執(zhí)行以下命令刪除 swapfile 文件:
sudo rm /swapfile
刪除 SWAP 文件
調(diào)整 SWAP 空間大小
根據(jù) SWAP 空間的類型(分區(qū)或文件),調(diào)整大小的過程可能會(huì)有所不同。
調(diào)整 SWAP 分區(qū)大小
如果分區(qū)后面有未分配的空間,才能擴(kuò)展分區(qū)大小。否則,唯一的調(diào)整選項(xiàng)是縮小分區(qū)大小。這也同樣適用于 SWAP 分區(qū)。
如果您使用的是 GNOME 桌面環(huán)境,「磁盤」應(yīng)用程序可以提供相關(guān)信息。
使用「磁盤」工具查看及調(diào)整 SWAP 分區(qū)大小
或者,可以使用 GParted 來進(jìn)行可視化。
使用 GParted 工具查看及調(diào)整 SWAP 分區(qū)大小
如您所見,在這個(gè)系統(tǒng)中,交換分區(qū)直接緊鄰根分區(qū)。這樣就沒有空間來擴(kuò)展 SWAP 分區(qū)了。
調(diào)整 SWAP 文件大小
1、要操作 SWAP 文件,請(qǐng)運(yùn)行以下命令將其從交換池中移除:
sudo swapoff /swapfile
2、重新運(yùn)行dd
命令來增加文件的大?。?/p>
sudo dd if=/dev/zero of=/swapfile bs=1G count=2 oflag=append conv=notrunc
調(diào)整 SWAP 文件大小
3、在這里,我們將交換文件增加到 2GB。接下來,使用以下命令將文件重新格式化為交換空間:
sudo mkswap /swapfile
4、將其作為交換文件啟用:
sudo swapon /swapfile
本文我們?cè)敿?xì)討論了在 Ubuntu 中管理 SWAP 空間的示例,探討了不同類型的 SWAP 空間,并學(xué)習(xí)了如何調(diào)整 SWAP 分區(qū)大小以及如何使用 SWAP 文件(創(chuàng)建、刪除和調(diào)整大?。?。
相關(guān)文章
如何通過ZRAM內(nèi)核模塊壓縮Ubuntu內(nèi)存? Linux使用zram壓縮內(nèi)存教程
小內(nèi)存福音!ZRAM 是一個(gè) Linux 內(nèi)核模塊,它可以在系統(tǒng)內(nèi)存(RAM)中創(chuàng)建一個(gè)壓縮的塊設(shè)備,從而讓系統(tǒng)可以運(yùn)行更多的應(yīng)用程序,或處理更大規(guī)模的任務(wù)2024-10-21Ubuntu怎么安裝Intel NPU驅(qū)動(dòng)? 通過Snap Store輕松搞定
Ubuntu系統(tǒng)中要充分發(fā)揮NPU 驅(qū)動(dòng)的作用,除了需要你的 CPU 集成了 NPU 處理單元外,相關(guān)軟件、工具或應(yīng)用程序也需支持通過 NPU 來完成 AI 任務(wù)2024-10-21Ubuntu 24.04 LTS 怎么安裝和卸載Docker?
Docker 是一個(gè)免費(fèi)的開源工具,設(shè)計(jì)用于在容器中構(gòu)建、部署和運(yùn)行應(yīng)用程序,我們將逐步介紹如何在 Ubuntu 24.04 LTS 上安裝 Docker2025-03-13- Java是最受歡迎的編程語言之一,怎么在Ubuntu 24.04 LTS中安裝和卸載java呢?詳細(xì)請(qǐng)看下文介紹2024-09-14
Ubuntu 24.04 LTS怎么設(shè)置固定IP地址?
在Ubuntu 24.04 LTS上設(shè)置固定IP地址可以通過圖形界面和命令行兩種方式來完成,下面我們就來看看詳細(xì)的教程2024-09-14Ubuntu 24.04 LTS和22.04 LTS有什么區(qū)別? 安裝/界面/新功能等對(duì)比
2022 年 4 月發(fā)布的 Ubuntu 22.04 LTS 相較于 20.04 LTS 帶來了諸多引人注目的創(chuàng)新,下面我們從安裝、界面、新功能等來介紹區(qū)別2024-09-14怎么隱藏Ubuntu頂部狀態(tài)欄? Ubuntu不顯示屏幕上方狀態(tài)欄的技巧
在Ubuntu系統(tǒng)中,頂部狀態(tài)欄包括時(shí)間顯示、網(wǎng)絡(luò)連接、電源圖標(biāo)等,我們可能需要隱藏頂部狀態(tài)欄,詳細(xì)請(qǐng)看下文介紹2024-09-13Ubuntu24.04LTS怎么配置? 安裝Ubuntu 24.04 LTS后的10項(xiàng)基本建議
電腦安裝完Ubuntu 24.04 LTS后,為了有更好的體驗(yàn),可以進(jìn)行必要設(shè)置,下面我們來看看系統(tǒng)安裝完成后,有哪些設(shè)置工作需要做一下2024-09-02老用戶如何就地升級(jí)到 Ubuntu 24.04 LTS 桌面版?
Canonical 發(fā)布了最新的操作系統(tǒng) Ubuntu 24.04,代號(hào)為 Noble Numbat,這是一個(gè) LTS (長(zhǎng)期支持)版本,意味著我們將獲得未來 長(zhǎng)達(dá) 5 年更新和支持,詳細(xì)請(qǐng)看下文安裝教程2024-09-02如何制作ubuntu啟動(dòng)盤? 3招教你輕松創(chuàng)建Ubuntu啟動(dòng)盤教程
今天我們就來介紹如何在 Windows、macOS 和 Ubuntu 系統(tǒng)中,制作 Ubuntu 啟動(dòng)盤的幾種簡(jiǎn)單方法,都很簡(jiǎn)單,詳細(xì)請(qǐng)看下文介紹2024-09-02