您好,登錄后才能下訂單哦!
這篇文章主要介紹“Ubuntu上如何增加Swap分區”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“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分區”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。