為Linux計算機新增交換空間,或者增加已經存在的交換空間,而不必亂搞分割槽。我們將向您展示定製交換空間的簡單方法。
有幾種情況下,您可能希望增加現有的交換空間或向Linux計算機新增新的交換空間。
解決所有這些問題的簡單方法是在計算機中新增一個交換檔案。這是一個特殊檔案,預先分配並保留用作交換空間。交換檔案將與您可能有的任何現有交換(無論是交換檔案還是交換分割槽)一起工作。
與交換分割槽相比,使用交換檔案的效能一度受到影響。在Linux作業系統中,機械(旋轉)硬碟效能的提高和交換功能的更高效不再是這種情況。事實上,一些Linux發行版現在預設建立交換檔案,而不是交換分割槽。
交換不僅僅是在記憶體不足時釋放RAM的一種方法。這是一個運轉良好的系統的重要組成部分。沒有任何交換,核心很難實現合理的記憶體管理。讓我們看看新增一些交換空間的簡單方法。
有兩點我們想盡快討論。
Btrfs檔案系統對交換檔案有一些警告。曾經有一段時間,Btrfs的copy-on-write特性存在衝突,Btrfs希望以一種方式操作,而交換檔案則需要以另一種方式操作。交換檔案所依賴的一些函式沒有實現,並且交換檔案中關於塊編號的一些假設在Btrfs中不成立。所以不支援交換檔案。
從kernel 5.0開始,如果Btrfs檔案系統中的交換檔案設定有以下要求,則可以在其中進行交換:
大多數讀者將使用預設的ext4檔案系統,所以這對他們來說不是什麼問題。
相關:您應該使用哪個Linux檔案系統?
當固態驅動器(SSD)首次出現時,人們擔心在檔案系統寫入頻繁的情況下使用它們。人們被警告不要在ssd上放置交換空間,甚至要避免系統登入ssd。
如今,這一點已經不那麼令人擔心了,許多在售的SSD的預期使用壽命將超過大多數PC機。SSD上的交換檔案將比機械硬碟上的交換分割槽具有更好的效能。
相關報道:固態硬碟到底能使用多久?
三思而後行。讓我們檢查一下您的計算機上有哪些交換空間。你可以用兩種方法,我們都用。free命令將顯示已使用和可用記憶體。當-h(人類可讀)選項顯示記憶體值時,它將使其可以自由使用感測單元。
free -hfree的輸出顯示此計算機上沒有配置交換空間。
在沒有記憶體和空閒記憶體的情況下,永遠不會討論交換。因此,值得注意的是,空閒記憶體為237MB。不要把它誤認為是可用記憶體的總和。該值由“可用”數字提供,即881 MB。
Linux為自己的目的使用免費RAM,比如檔案快取和核心緩衝區。專用於此的RAM量是“buff/cache”數字,即871 MB。但是這個記憶體仍然被視為“可用”記憶體,“buf/cache”記憶體的內容可以被立即丟棄,並被任何需要一些記憶體的應用程式使用。
檢查交換空間是否可用的另一種方法是使用swapon命令。--show選項不會對計算機上的交換進行任何更改。它只提供統計資料。
swapon --show如果此命令沒有輸出,則未配置交換。
如果這些命令顯示已經配置了一些交換空間,那麼在決定要建立的交換檔案的大小時,應該考慮現有交換空間的大小。
傳統的回答是“兩倍於你擁有的記憶體量”,但這是在計算機的記憶體非常有限的時候產生的。隨著RAM的價格越來越便宜,程式和遊戲對記憶體的要求也越來越高,PC的規格也相應地進行了調整。如今,擁有32gb記憶體的家用電腦並不少見。如果你有32 GB的RAM,你就不會分配64 GB的硬碟空間來交換空間。那顯然太過分了。
你所需要的交換量是一個煽動性的話題,類似於“哪個是最好的編輯器”。我們在Ubuntu交換FAQ中看到的關於這個話題的最明智的討論之一。這是一種簡短而常識性的方法(儘管,和許多人一樣,他們誤解了交換在Linux上的工作原理)。這裡有一個方便的表格,顯示了建議的交換空間量,包括系統記憶體量,以及是否休眠計算機。
好訊息是,你選擇什麼價值並不重要。我們總是可以刪除一個交換檔案,並用一個更大的或更小的檔案替換它。或者你可以新增另一個交換檔案。
從表中選擇交換檔案大小,並執行一段時間。監視系統對交換空間的使用情況。如果需要微調,則很容易進行更改。對於交換檔案,這是一個兩分鐘的工作。將其與在實時Linux計算機上調整分割槽進行比較。
相關:Linux上的交換性是什麼?(以及如何更改)
您不應該使用fallocate命令來建立交換檔案。這來自swapon的手冊頁:
The swap file implementation in the kernel expects to be able to write to the file directly, without the assistance of the file system. This is a problem on files with holes or on copy-on-write files on file systems like Btrfs. Commands like cp(1) or truncate(1) create files with holes. These files will be rejected by swapon. Preallocated files created by fallocate(1) may be interpreted as files with holes too depending of the filesystem. Preallocated swap files are supported on XFS since Linux 4.18. The most portable solution to create a swap file is to use dd(1) and /dev/zero.因此,雖然fallocate更快,但我們將使用dd建立交換檔案。用於本文研究的機器有2GB的RAM。我們將建立一個1GB交換檔案。
選項包括:
建立檔案時會提供一些統計資訊。
我們可以看到寫入檔案的塊(記錄)的數量、檔案的大小、建立檔案所用的時間以及有效的資料傳輸速率。
使用ls命令在根目錄中檢視檔案:
ls /我們需要先用mkswap命令準備交換檔案,然後才能使用它。除了檔案的路徑和名稱之外,我們不需要為mkswap提供任何引數:
sudo mkswap /swapfile該檔案準備用作交換檔案。請注意有關檔案許可權的警告。我們需要更改這些設定,以便根使用者是唯一可以讀寫交換檔案的使用者。
預設許可權太自由,我們需要限制它們,以便只有root使用者可以使用交換檔案。使用chmod更改檔案許可權:
sudo chmod 600 /swapfile這將刪除檔案組成員和其他成員的所有許可權,但允許檔案所有者root對檔案進行讀寫。
相關:如何在Linux上使用chmod命令
我們需要使用swapon命令讓Linux知道有一個新的交換檔案可供使用。我們只需要提供路徑和檔名:
sudo swapon /swapfile交換檔案現在處於活動狀態。
要確保重新啟動後交換檔案可用,請將其新增到/etc/fstab檔案中。您可以使用任何您喜歡的文字編輯器,但我們將展示使用圖形Gedit文字編輯器的過程。
sudo gedit /etc/fstab我們需要新增到檔案底部的行是:
/swapfile none swap sw 0 0欄位包括:
儲存更改並關閉編輯器。
相關:如何在Linux上編寫fstab檔案
要檢視是否正在使用交換空間,請將swapon命令與--show選項一起使用:
swapon --show這些列是:
每個交換空間分配一個優先順序。如果您不提供一個,則自動分配一個。自動分配的優先順序總是負數。可以手動分配的優先順序範圍是0到32767。優先使用具有更高優先順序的交換資源。
如果有多個交換空間具有相同的優先順序,則會交替使用這些空間,直到它們都已滿,然後系統會查詢具有下一個最低優先順序的交換空間。如果只有一個交換空間,那麼優先順序當然是不相關的。但我們將更改我們建立的交換檔案的優先順序,以演示如何執行此操作。
要設定優先順序,請將pri=(priority)選項新增到/etc/fstab條目中。編輯新增到/etc/fstab的行,如下所示:
/swapfile none swap sw,pri=10 0 0也就是說,將pri=10新增到opti***欄位中,並用逗號與“sw”分隔。不要在“sw”、“逗號”和“pri=10”之間留下任何空格。重新啟動計算機並使用swapon--show命令:
swapon -- show此交換空間的優先順序已提升到10。這證明了/etc/fstab條目中的opti***欄位沒有被忽略。
透過介紹和解釋,我們可以輕鬆快速地建立一個新的交換檔案,如下所示:
sudo dd if=/dev/zero /of=/swapfile2 bs=1024 count=104857 sudo mkswap /swapfile2 sudo chmod 600 /swapfile2 sudo swapon /swapfile2讓我們檢查一下它是否有效:
swapon --show如果要永久刪除,請將其放入/etc/fstab檔案中。
繁榮。工作完成了。
...以透過額外的RAM來加速,而不是更快的無線網路。ram交換如何增加**ram?在臺式機或膝上型電腦上,可以使用一部分硬碟空間來增加RAM。這稱為交換檔案,當RAM滿時,它會利用HDD或SSD上的可用空間。資料不是丟棄,而是儲存在驅...
... 今天我們將介紹如何在Windows、Mac和Linux上將命令的輸出傳送到bashshell中的文字檔案。 ...
...注意上面的參考檔案中配置的字型(標題1為Arial Black等)如何顯示在下面的轉換檔案中。您可以根據需要建立任意數量的這些引用檔案(例如,每個客戶機一個)。然後在編寫時完全忽略格式,並在轉換時一步應用樣式。 ...
... 下面是如何做到這一點。在**上啟動WhatsApp,然後在“聊天”選項卡上,點選右上角的“新建群”連結。您必須首先將參與者新增到組中才能真正建立它,因此請選擇任何聯絡人...
... 在編譯核心之前,您需要告訴GCC您希望如何完成它。您可以使用名為make的命令列工具來執行此操作。鍵入以下命令: ...
...代早期超級任天堂遊戲機的忠實複製品。讓我們來告訴你如何在這個復古遊戲機上玩N64、NES、PS1等遊戲。 ...