共計 3550 個字符,預計需要花費 9 分鐘才能閱讀完成。
這篇文章主要介紹“Ubuntu 上如何增加 Swap 分區”的相關知識,丸趣 TV 小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Ubuntu 上如何增加 Swap 分區”文章能幫助大家解決問題。
1. 首先來了解一下什么是 Swap
交換分區 (Swap partition) 是硬盤上的一個區域,指定為操作系統可以臨時存儲數據的地方,這些數據不能再存儲在 RAM 中。基本上,這使您能夠增加服務器保存在工作“內存”中的信息量,但也有一些預防措施,主要是當內存中沒有足夠的空間來保存正在使用的應用程序數據時,將使用硬盤驅動器上的交換空間。
寫入磁盤的信息會比存儲在 RAM 中的信息慢很多,但操作系統更愿意將應用數據存儲在內存中,與舊數據進行交換。一般來說,當系統的 RAM 耗盡時,使用交換空間作為回退空間可能是一個很好的安全網,可以防止非 SSD 存儲系統內存不足。
2. 檢查系統的交換信息
在開始之前,我們可以檢查系統是否已經有一些可用的交換空間。可能有多個交換文件或交換分區,但通常應該足夠了。我們可以通過以下命令檢查系統是否有交換分區:
$ $sudoswapon – show 如果沒有結果或者沒有顯示,說明系統目前沒有可用的交換空間。您也可以使用空閑工具來驗證當前沒有可用的交換分區。
$free-h
輸出結果:
可用的已用空閑共享緩沖區 / 緩存總量
mem : 488m 36M 104m 652k 348m 426m
Swap: 0B 0B
您可以看到這里的“交換”行都是 0,這意味著系統上沒有活動的交換。
3. 檢查硬盤驅動器分區上的可用空間
為交換分配空間的最常見方式是使用專用于特定任務的單獨分區。然而,改變分區方案不一定可行,但是我們可以很容易地創建駐留在現有分區上的交換文件。
在開始之前,我們應該通過輸入以下命令來檢查當前的磁盤使用情況:
$df- h 輸出結果:
文件系統大小已用使用率 % 已安裝于
udev 238M 0 238M 0% /dev
tmp fs 49M 624K 49M 2%/ 運行
/dev/vda1 20G 1.1G 18G 6% /
tmpfs 245M 0 245M 0% /dev/shm
tmp fs 5.0M 0 5.0M 0%/ 運行 / 鎖定
tmp fs 245m 0 245m 0%/sys/fs/cggroup
tmp fs 49M 0 49M 0%/ 運行 / 用戶 /1001
在這種情況下,/dev 下的設備是我們的磁盤。在這個例子中,我們有足夠的空間(只使用了 1.1G)。當然,你的用法可能不一樣。
雖然關于交換空間的合適大小有很多意見,但這取決于您的個人偏好和應用要求。一般來說,等于兩倍或兩倍的系統內存量是一個很好的起點。另一個好的體驗是,如果只是作為 RAM 備份使用,交換分區的大小盡量不要超過 4 GB。
4. 創建 swap 文件
現在我們知道了可用的硬盤空間,我們可以在文件系統中創建一個交換文件,我們將在根目錄 (/) 中創建一個名為 swapfile 的文件。創建交換文件的最佳方法是使用命令 fallocate,它可以立即創建一個預分配大小的文件。由于本例中服務器內存的大小為 512 兆字節,我們將在本教程中創建一個 1 千兆字節的文件,并對其進行適當調整以滿足您自己的服務器:的需要
$ sudofaallocate-L1g/swap file 創建完成后,我們可以使用此命令來驗證是否保留了正確的交換空間:
$ls-lh/swapfile
顯示結果:
$-rw-r--r--1rootroot1.0GApr2511:14/swapfile
這就說明我們的文件已經創建了正確的空間大小。
5. 啟用交換文件
現在我們有一個 1 GB 大小的文件,我們需要把它變成交換空間
首先,我們需要鎖定文件的權限,以便只有擁有 root 權限的用戶才能讀取文件內容,這可以防止普通用戶能夠訪問該文件,以免造成重大的安全隱患。
鎖定文件的 root 權限:
$sudochmod600/swapfile
驗證權限:
$ls-lh/swapfile
顯示結果:
-rw-------1rootroot1.0GApr2511:14/swapfile
可以看到,只有 root 用戶啟用了讀寫標志。
接下來,我們可以通過以下命令將文件標記為交換空間
$sudomkswap/swapfile
顯示結果:
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=6e965805-2ab9-450f-aed6-577e74089dbf
標記文件之后,我們可以啟用該交換文件,讓我們的系統開始使用它:
$sudoswapon/swapfile
可以通過以下命令驗證交換空間是否可用:
$sudoswapon--show
顯示結果:
NAME TYPE SIZE USED PRIO
/swapfile file 1024M 0B -1
這時,我們可以通過 free 再次查看我們的設置:
$free-h
顯示結果:
total used free shared buff/cache available
Mem: 488M 37M 96M 652K 354M 425M
Swap: 1.0G 0B 1.0G
可以看到 swap 分區已成功創建,大小為 1.0 G,操作系統將在必要時使用。
6. 永久保留交換文件
我們最近的更改啟用了當前會話的 swap 文件,但是,如果我們重新啟動,服務器不會自動保留 swap 設置,我們可以通過將 swap 文件添加到 /etc/fstab 文件中來改變這一點。
備份 /etc/fstab 文件以防出錯:
$sudocp/etc/fstab/etc/fstab.bak
將 swap 文件信息添加到 /etc/fstab 文件的末尾:
$echo /swapfilenoneswapsw00 |sudotee-a/etc/fstab
這樣就保留了 swap 文件。
7. 調整你的交換設置
在處理交換時,可以配置幾個選項,這些選項會影響系統的性能
7.1 調整 swappiness 屬性
swappiness 參數配置您的系統將數據從 RAM 交換到交換空間的頻率, 值介于 0 和 100 之間,表示百分比。如果 swappiness 值接近 0,內核將不會將數據交換到磁盤,除非絕對必要。要記住一點,與 swap 文件的交互是“昂貴的”,因為與 swap 交互花費的時間比與 RAM 的交互更長,并且會導致性能的顯著下降。系統更少依賴 swap 分區通常會使你的系統更快。swappiness 接近 100 的值將嘗試將更多的數據放入交換中,以保持更多的 RAM 空間。根據您的應用程序的內存配置文件或您使用的服務器,這可能會在某些情況下更好。
查看當前的 swappiness 值:
$cat/proc/sys/vm/swappiness
結果顯示
60
對于桌面系統來說,60 的 swappiness 設置不是一個比較壞的值,但是對于服務器,您可能希望將其設置與 0 更接近的值。
我們可以使用 sysctl 命令將 swappiness 設置為不同的值,例如,要將 swappiness 設置為 10:
$sudosysctlvm.swappiness=10
顯示結果:
vm.swappiness = 10
該設置將保持到系統下次重新啟動,如果想要在重啟之后也生效,我們可以通過在 /etc/sysctl.conf 文件中添加一行實現:
$sudonano/etc/sysctl.conf
在文件的最后添加:
vm.swappiness=10
完成后保存并關閉文件。
7.2 調整緩存壓力設置
您可能想要修改的另一個相關值是 vfs_cache_pressure,這個設置配置系統將選擇多少數據緩存 inode 和 dentry 信息。基本上,這是訪問有關文件系統的數據,通常是非常耗時的查詢和頻繁要求,所以這是一個很好的事情,讓您的系統緩存,您可以通過再次查詢 proc 文件系統來查看當前值。
$cat/proc/sys/vm/vfs_cache_pressure
輸出結果:
100
這個配置可能使我們的系統太快地從緩存中刪除 inode 信息。我們可以設置一個更保守的值,比如 50。
$sudosysctlvm.vfs_cache_pressure=50
顯示結果:
vm.vfs_cache_pressure = 50
和 swappiness 類似,這只對當前的 session 有效,我們可以通過將其添加到我們的配置文件來改變它,就像我們使用我們的 swappiness 設置一樣:
$sudonano/etc/sysctl.conf
在末尾添加:
vm.vfs_cache_pressure=50
完成后保存并關閉文件。
關于“Ubuntu 上如何增加 Swap 分區”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注丸趣 TV 行業資訊頻道,丸趣 TV 小編每天都會為大家更新不同的知識點。