文章插圖

文章插圖
什么是 Linux 的交換文件?
交換文件允許 Linux 將磁盤空間模擬為內存 。當你的系統開始耗盡內存時,它會使用交換空間將內存的一些內容交換到磁盤空間上 。這樣釋放了內存,為更重要的進程服務 。當內存再次空閑時,它會從磁盤交換回數據 。我建議閱讀這篇文章,了解 Linux 上的交換空間的更多內容 。
傳統上,交換空間是磁盤上的一個獨立分區 。安裝 Linux 時,只需創建一個單獨的分區進行交換 。但是這種趨勢在最近幾年發生了變化 。
使用交換文件,你不再需要單獨的分區 。你會根目錄下創建一個文件,并告訴你的系統將其用作交換空間就行了 。
使用專用的交換分區,在許多情況下,調整交換空間的大小是一個可怕而不可能的任務 。但是有了交換文件,你可以隨意調整它們的大小 。
最新版本的 Ubuntu 和其他一些 Linux 發行版已經開始 默認使用交換文件 。甚至如果你沒有創建交換分區,Ubuntu 也會自己創建一個 1GB 左右的交換文件 。
讓我們看看交換文件的更多信息 。
【linux新建文件命令touch linux新建文件命令 刪除】檢查 Linux 的交換空間
在你開始添加交換空間之前,最好檢查一下你的系統中是否已經有了交換空間 。
你可以用Linux 上的 free 命令檢查它 。就我而言,我的戴爾 XPS有 14GB 的交換容量 。
free -htotalusedfreesharedbuff/cacheavailableMem:7.5G4.1G267M971M3.1G2.2GSwap:14G0B14Gfree 命令給出了交換空間的大小,但它并沒有告訴你它是真實的交換分區還是交換文件 。swapon 命令在這方面會更好 。swapon --showNAMETYPESIZE USED PRIO/dev/nvme0n1p4 partition 14.9G0B-2如你所見,我有 14.9GB 的交換空間,它在一個單獨的分區上 。如果是交換文件,類型應該是 file 而不是 partition 。swapon --showNAMETYPE SIZE USED PRIO/swapfile file2G0B-2如果你的系統上沒有交換空間,它應該顯示如下內容:free -htotalusedfreesharedbuff/cacheavailableMem:7.5G4.1G267M971M3.1G2.2GSwap:0B0B0B而 swapon 命令不會顯示任何輸出 。在 Linux 上創建交換文件
如果你的系統沒有交換空間,或者你認為交換空間不足,你可以在 Linux 上創建交換文件 。你也可以創建多個交換文件 。
讓我們看看如何在 Linux 上創建交換文件 。我在本教程中使用 Ubuntu 18.04,但它也應該適用于其他 Linux 發行版本 。
步驟 1:創建一個新的交換文件
首先,創建一個具有所需交換空間大小的文件 。假設我想給我的系統增加 1GB 的交換空間 。使用fallocate 命令創建大小為 1GB 的文件 。
sudo fallocate -l 1G /swapfile建議只允許 root 用戶讀寫該交換文件 。當你嘗試將此文件用于交換區域時,你甚至會看到類似“不安全權限 0644,建議 0600”的警告 。sudo chmod 600 /swapfile請注意,交換文件的名稱可以是任意的 。如果你需要多個交換空間,你可以給它任何合適的名稱,如 swap_file_1、swap_file_2 等 。它們只是一個預定義大小的文件 。步驟 2:將新文件標記為交換空間
你需要告訴 Linux 系統該文件將被用作交換空間 。你可以用 mkswap 工具做到這一點 。
sudo mkswap /swapfile你應該會看到這樣的輸出:Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)no label, UUID=7e1faacb-ea93-4c49-a53d-fb40f3ce016a步驟 3:啟用交換文件現在,你的系統知道文件 swapfile 可以用作交換空間 。但是還沒有完成 。你需要啟用該交換文件,以便系統可以開始使用該文件作為交換 。
sudo swapon /swapfile現在,如果你檢查交換空間,你應該會看到你的 Linux 系統會識別并使用它作為交換空間:swapon --showNAMETYPESIZE USED PRIO/swapfilefile 1024M0B-2步驟 4:讓改變持久化迄今為止你所做的一切都是暫時的 。重新啟動系統,所有更改都將消失 。
你可以通過將新創建的交換文件添加到 /etc/fstab 文件來使更改持久化 。
對 /etc/fstab 文件進行任何更改之前,最好先進行備份 。
sudo cp /etc/fstab /etc/fstab.back現在將以下行添加到 /etc/fstab 文件的末尾:/swapfile none swap sw 0 0你可以使用命令行文本編輯器手動操作,或者使用以下命令:echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab現在一切都準備好了 。即使在重新啟動你的 Linux 系統后,你的交換文件也會被使用 。調整 swappiness 參數
swappiness 參數決定了交換空間的使用頻率 。swappiness 值的范圍從 0 到 100 。較高的值意味著交換空間將被更頻繁地使用 。
Ubuntu 桌面的默認的 swappiness 是 60,而服務器的默認 swappiness 是 1 。你可以使用以下命令檢查 swappiness:
cat /proc/sys/vm/swappiness為什么服務器應該使用低的 swappiness 值?因為交換空間比內存慢,為了獲得更好的性能,應該盡可能多地使用內存 。在服務器上,性能因素至關重要,因此 swappiness 應該盡可能低 。你可以使用以下系統命令動態更改 swappiness:
sudo sysctl vm.swappiness=25這種改變只是暫時的 。如果要使其永久化,可以編輯 /etc/sysctl.conf 文件,并在文件末尾添加swappiness 值:vm.swappiness=25在 Linux 上調整交換空間的大小在 Linux 上有幾種方法可以調整交換空間的大小 。但是在你看到這一點之前,你應該了解一些關于它的事情 。
當你要求系統停止將交換文件用于交換空間時,它會將所有數據(確切地說是內存頁)傳輸回內存 。所以你應該有足夠的空閑內存,然后再停止交換 。
這就是為什么創建和啟用另一個臨時交換文件是一個好的做法的原因 。這樣,當你關閉原來的交換空間時,你的系統將使用臨時交換文件 ?,F在你可以調整原來的交換空間的大小 。你可以手動刪除臨時交換文件或留在那里,下次啟動時會自動刪除(LCTT 譯注:存疑?) 。
如果你有足夠的可用內存或者創建了臨時交換空間,那就關閉你原來的交換文件 。
sudo swapoff /swapfile現在你可以使用 fallocate 命令來更改文件的大小 。比方說,你將其大小更改為 2GB:sudo fallocate -l 2G /swapfile現在再次將文件標記為交換空間:sudo mkswap /swapfile并再次啟用交換文件:sudo swapon /swapfile你也可以選擇同時擁有多個交換文件 。刪除 Linux 中的交換文件
你可能有不在 Linux 上使用交換文件的原因 。如果你想刪除它,該過程類似于你剛才看到的調整交換大小的過程 。
首先,確保你有足夠的空閑內存 ?,F在關閉交換文件:
sudo swapoff /swapfile下一步是從 /etc/fstab 文件中刪除相應的條目 。最后,你可以刪除該文件來釋放空間:
sudo rm /swapfile你用了交換空間了嗎?我想你現在已經很好地理解了 Linux 中的交換文件概念 ?,F在,你可以根據需要輕松創建交換文件或調整它們的大小 。
- 如何設置鼠標右鍵新建菜單 鼠標左鍵新建設置
- 如何使用電腦打印文件兩面打 怎樣使用電腦打印文件
- excel程序在哪里 Excel的文件在哪里
- hadoop 文件上傳 將文件上傳到hadoop集群上去的命令為
- linux查看防火墻狀態及開啟關閉命令 linux查看防火墻狀態firewall
- linux虛擬機給多少內存 windows虛擬機多大內存
- pdf文件不能打印的原因及解決方法? 打印機pdf能打印文檔不能打印
- 手機相冊文件管理夾在那 手機相冊在哪個文件夾?
- itunes備份文件夾在哪里 itunes文件備份在哪里
- linux批量部署工具 服務器批量管理工具超級vps管理器
