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

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