在 Ubuntu 虛擬機中,當系統內存不足時,非活動頁面通常會被轉移到 swap 空間。雖然 swap 空間可以提高系統性能,但 ubuntu 虛擬機通常不會自動創建它。對于希望充分利用其虛擬機的用戶來說,創建和管理 swap 空間至關重要。本文將深入探討如何創建、刪除和調整 ubuntu 中的 swap 空間,幫助您優化虛擬機的性能。php小編魚仔將指導您完成每個步驟,確保您能夠高效地管理 swap 空間,從而獲得最佳的系統性能。
Linux 的 SWAP 空間
Linux 內核將物理內存 (RAM) 分割成“頁面”塊。將頁面復制到輔助存儲設備 (通常是 HDD 或 SSD) 的過程稱為“交換”。預分配的專用空間稱為“SWAP 空間”,RAM 和 SWAP 空間的總和構成虛擬內存。
是否需要 SWAP 空間?
SWAP 空間的用途:
- 內存需求超過可用物理內存時,SWAP 不重要的頁面,釋放更多內存。
- 程序啟動時,許多頁面可能很少使用,SWAP 這些頁面,釋放內存給其他應用。
- 沒有 SWAP 空間,RAM 耗盡可能導致系統崩潰,尤其 RAM 小的系統。
SWAP 空間的缺點:
- 輔助存儲設備 (HDD、SSD) 比 RAM 慢得多 (毫秒 vs 納秒)。
- 大量交換會減慢系統速度。
SWAP 空間類型
Linux 中的 SWAP 空間類型:
- 專用 SWAP 分區:只能用于交換,不能存儲其他文件。
- SWAP 文件:可以放在文件系統中的任何位置。
SWAP 空間大小取決于 RAM 大小。
Ubuntu 中的 SWAP 文件
Ubuntu 通常使用專用 SWAP 分區。安裝過程中通常會自動創建,但也可以創建和調整 SWAP 文件。
查看 SWAP 空間
使用以下命令檢查 Ubuntu 系統是否已啟用 SWAP 空間:
sudo swapon --show
該命令列出所有 SWAP 空間 (分區和文件)。空輸出表示未啟用 SWAP 空間。
創建 SWAP 文件
SWAP 文件的優勢在于大小可輕松調整,無需修改磁盤分區。
- 創建一個空文件:
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
(文件大小:1M x 2048 = 2GB,修改 count 參數可更改大小)
- 設置文件權限:
sudo chmod 600 /swapfile
- 格式化文件為 SWAP 空間:
sudo mkswap /swapfile
- 激活 SWAP 文件:
sudo swapon /swapfile
- 將 SWAP 文件路徑添加到 /etc/fstab 文件,使其永久生效:
/swapfile swap swap defaults 0 0
- 使用 swapon –show 或 free -h 命令驗證 SWAP 文件是否處于活動狀態。
調整 Swappiness 值
Swappiness 值 (0-100) 控制系統使用 SWAP 空間的頻率。值越低,越少使用 SWAP;值越高,越積極使用 SWAP。
查看 Swappiness 值:
cat /proc/sys/vm/swappiness
設置 Swappiness 值 (例如,設置為 40):
sudo sysctl vm.swappiness=40
要使設置永久生效,在 /etc/sysctl.conf 文件中添加 vm.swappiness=40。
刪除 SWAP 文件
- 停用 SWAP 文件:
sudo swapoff -v /swapfile
-
從 /etc/fstab 文件中刪除相關行。
-
刪除 SWAP 文件:
sudo rm /swapfile
調整 SWAP 空間大小
SWAP 分區: 需要使用磁盤管理工具 (如 GParted) 調整大小,這需要一定的專業知識,且操作不當可能導致數據丟失。
SWAP 文件:
-
停用 SWAP 文件:sudo swapoff /swapfile
-
使用 dd 命令調整大小 (例如,增加 2GB):
sudo dd if=/dev/zero of=/swapfile bs=1G count=2 oflag=append conv=notrunc
-
重新格式化:sudo mkswap /swapfile
-
重新激活:sudo swapon /swapfile
本文詳細介紹了在 Ubuntu 中管理 SWAP 空間的方法,包括不同類型的 SWAP 空間以及如何調整 SWAP 分區和文件的大小。