如何在linux上建立交換檔案

為Linux計算機新增交換空間,或者增加已經存在的交換空間,而不必亂搞分割槽。我們將向您展示定製交換空間的簡單方法。...

為Linux計算機新增交換空間,或者增加已經存在的交換空間,而不必亂搞分割槽。我們將向您展示定製交換空間的簡單方法。

交換檔案與交換分割槽

有幾種情況下,您可能希望增加現有的交換空間或向Linux計算機新增新的交換空間。

  • 可能您的交換空間經常處於最大值或接近最大值。
  • 在安裝過程中很容易單擊錯誤的選項,並在無意中拒絕向系統新增swap。
  • 也許你以前決定你有這麼多的隨機存取記憶體(RAM),你不需要任何交換,你改變主意了。
  • 有時您繼承了一個沒有交換的系統的管理,原因是您永遠無法發現。

解決所有這些問題的簡單方法是在計算機中新增一個交換檔案。這是一個特殊檔案,預先分配並保留用作交換空間。交換檔案將與您可能有的任何現有交換(無論是交換檔案還是交換分割槽)一起工作。

與交換分割槽相比,使用交換檔案的效能一度受到影響。在Linux作業系統中,機械(旋轉)硬碟效能的提高和交換功能的更高效不再是這種情況。事實上,一些Linux發行版現在預設建立交換檔案,而不是交換分割槽。

交換不僅僅是在記憶體不足時釋放RAM的一種方法。這是一個運轉良好的系統的重要組成部分。沒有任何交換,核心很難實現合理的記憶體管理。讓我們看看新增一些交換空間的簡單方法。

在我們潛入之前:btrfs和ssd

有兩點我們想盡快討論。

Btrfs檔案系統對交換檔案有一些警告。曾經有一段時間,Btrfs的copy-on-write特性存在衝突,Btrfs希望以一種方式操作,而交換檔案則需要以另一種方式操作。交換檔案所依賴的一些函式沒有實現,並且交換檔案中關於塊編號的一些假設在Btrfs中不成立。所以不支援交換檔案。

從kernel 5.0開始,如果Btrfs檔案系統中的交換檔案設定有以下要求,則可以在其中進行交換:

  • 無寫時複製(NOCOW)檔案。
  • 它們沒有壓縮。
  • 它們不會跨在不同的硬碟上。

大多數讀者將使用預設的ext4檔案系統,所以這對他們來說不是什麼問題。

相關:您應該使用哪個Linux檔案系統?

當固態驅動器(SSD)首次出現時,人們擔心在檔案系統寫入頻繁的情況下使用它們。人們被警告不要在ssd上放置交換空間,甚至要避免系統登入ssd。

如今,這一點已經不那麼令人擔心了,許多在售的SSD的預期使用壽命將超過大多數PC機。SSD上的交換檔案將比機械硬碟上的交換分割槽具有更好的效能。

相關報道:固態硬碟到底能使用多久?

檢查現有交換空間

三思而後行。讓我們檢查一下您的計算機上有哪些交換空間。你可以用兩種方法,我們都用。free命令將顯示已使用和可用記憶體。當-h(人類可讀)選項顯示記憶體值時,它將使其可以自由使用感測單元。

free -h

如何在linux上建立交換檔案

free的輸出顯示此計算機上沒有配置交換空間。

在沒有記憶體和空閒記憶體的情況下,永遠不會討論交換。因此,值得注意的是,空閒記憶體為237MB。不要把它誤認為是可用記憶體的總和。該值由“可用”數字提供,即881 MB。

Linux為自己的目的使用免費RAM,比如檔案快取和核心緩衝區。專用於此的RAM量是“buff/cache”數字,即871 MB。但是這個記憶體仍然被視為“可用”記憶體,“buf/cache”記憶體的內容可以被立即丟棄,並被任何需要一些記憶體的應用程式使用。

檢查交換空間是否可用的另一種方法是使用swapon命令。--show選項不會對計算機上的交換進行任何更改。它只提供統計資料。

swapon --show

如何在linux上建立交換檔案

如果此命令沒有輸出,則未配置交換。

如果這些命令顯示已經配置了一些交換空間,那麼在決定要建立的交換檔案的大小時,應該考慮現有交換空間的大小。

我需要多少交換空間?

傳統的回答是“兩倍於你擁有的記憶體量”,但這是在計算機的記憶體非常有限的時候產生的。隨著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交換檔案。

選項包括:

  • if:輸入檔案。在本例中,我們使用/dev/zero,它將提供一個零位元組的流。
  • of:輸出檔案。我們將在根目錄中建立一個名為swapfile的檔案。
  • 以位元組為單位的塊大小。指定一次從輸入檔案讀取和寫入輸出檔案的位元組數。
  • 計數:讀取和寫入的塊數。將這個數字乘以bs值得到檔案大小。
sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576

如何在linux上建立交換檔案

建立檔案時會提供一些統計資訊。

如何在linux上建立交換檔案

我們可以看到寫入檔案的塊(記錄)的數量、檔案的大小、建立檔案所用的時間以及有效的資料傳輸速率。

使用ls命令在根目錄中檢視檔案:

ls /

如何在linux上建立交換檔案

準備交換檔案

我們需要先用mkswap命令準備交換檔案,然後才能使用它。除了檔案的路徑和名稱之外,我們不需要為mkswap提供任何引數:

sudo mkswap /swapfile

如何在linux上建立交換檔案

該檔案準備用作交換檔案。請注意有關檔案許可權的警告。我們需要更改這些設定,以便根使用者是唯一可以讀寫交換檔案的使用者。

使用交換檔案

預設許可權太自由,我們需要限制它們,以便只有root使用者可以使用交換檔案。使用chmod更改檔案許可權:

sudo chmod 600 /swapfile

如何在linux上建立交換檔案

這將刪除檔案組成員和其他成員的所有許可權,但允許檔案所有者root對檔案進行讀寫。

相關:如何在Linux上使用chmod命令

我們需要使用swapon命令讓Linux知道有一個新的交換檔案可供使用。我們只需要提供路徑和檔名:

sudo swapon /swapfile

如何在linux上建立交換檔案

交換檔案現在處於活動狀態。

將交換檔案新增到fstab

要確保重新啟動後交換檔案可用,請將其新增到/etc/fstab檔案中。您可以使用任何您喜歡的文字編輯器,但我們將展示使用圖形Gedit文字編輯器的過程。

sudo gedit /etc/fstab

如何在linux上建立交換檔案

我們需要新增到檔案底部的行是:

/swapfile none swap sw 0 0

如何在linux上建立交換檔案

欄位包括:

  • 檔案系統:交換檔案的路徑和名稱。
  • 裝入點:檔案不像檔案系統那樣裝入,因此條目為“無”
  • 型別:這是“交換”
  • 選項:在啟動時swapon-a(啟動所有標記為swap的裝置)將從其中一個啟動指令碼呼叫。此選項告訴Linux將此條目視為swapon-a命令控制下的交換資源。這裡使用“defaults”是很常見的,因為有些Linux使用者錯誤地認為這個欄位被忽略了。我們將看到,情況並非如此。所以使用正確的選項是有意義的。
  • 轉儲:可以設定為零。這與本案無關。
  • 透過:可以設定為零。這與本案無關。

儲存更改並關閉編輯器。

相關:如何在Linux上編寫fstab檔案

檢查交換使用情況

要檢視是否正在使用交換空間,請將swapon命令與--show選項一起使用:

swapon --show

如何在linux上建立交換檔案

這些列是:

  • 名稱:交換分割槽或交換檔案的名稱。
  • 型別:交換裝置的型別。
  • 大小:交換資源的大小。
  • 已用:已用交換空間的數量。
  • Prio:交換空間的優先順序。

交換空間優先順序

每個交換空間分配一個優先順序。如果您不提供一個,則自動分配一個。自動分配的優先順序總是負數。可以手動分配的優先順序範圍是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

如何在linux上建立交換檔案

此交換空間的優先順序已提升到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

如何在linux上建立交換檔案

如果要永久刪除,請將其放入/etc/fstab檔案中。

繁榮。工作完成了。

  • 發表於 2021-04-14 19:44
  • 閱讀 ( 14 )
  • 分類:網際網路

你可能感興趣的文章

如何使用microsd卡為android裝置新增更多ram

...以透過額外的RAM來加速,而不是更快的無線網路。ram交換如何增加**ram?在臺式機或膝上型電腦上,可以使用一部分硬碟空間來增加RAM。這稱為交換檔案,當RAM滿時,它會利用HDD或SSD上的可用空間。資料不是丟棄,而是儲存在驅...

  • 發佈於 2021-03-11 00:27
  • 閲讀 ( 55 )

雙引導作業系統的10個風險

...SSD或HDD空間。除此之外,還有用於安裝軟體的空間,以及交換檔案和頁面檔案。 ...

  • 發佈於 2021-03-11 01:07
  • 閲讀 ( 61 )

如何將命令列輸出儲存到windows、mac和linux上的檔案

... 今天我們將介紹如何在Windows、Mac和Linux上將命令的輸出傳送到bashshell中的文字檔案。 ...

  • 發佈於 2021-03-12 15:56
  • 閲讀 ( 46 )

如何修復無法播放的損壞的avi檔案

... 別擔心,你的夜晚還是可以挽救的!下面介紹如何快速修復無法播放的AVI檔案。 ...

  • 發佈於 2021-03-13 04:38
  • 閲讀 ( 52 )

在linux中如何方便地在文件格式之間轉換

...注意上面的參考檔案中配置的字型(標題1為Arial Black等)如何顯示在下面的轉換檔案中。您可以根據需要建立任意數量的這些引用檔案(例如,每個客戶機一個)。然後在編寫時完全忽略格式,並在轉換時一步應用樣式。 ...

  • 發佈於 2021-03-14 18:46
  • 閲讀 ( 79 )

這個駭客把whatsapp變成了檔案和筆記的私人儲存

... 下面是如何做到這一點。在**上啟動WhatsApp,然後在“聊天”選項卡上,點選右上角的“新建群”連結。您必須首先將參與者新增到組中才能真正建立它,因此請選擇任何聯絡人...

  • 發佈於 2021-03-14 23:18
  • 閲讀 ( 33 )

如何編譯自己的linux核心

... 在編譯核心之前,您需要告訴GCC您希望如何完成它。您可以使用名為make的命令列工具來執行此操作。鍵入以下命令: ...

  • 發佈於 2021-03-15 10:33
  • 閲讀 ( 45 )

如何在mac上安裝和雙引導linux

...dows,但安裝Linux則完全是另一回事。按照下面的步驟學習如何做到這一點。 ...

  • 發佈於 2021-03-18 04:03
  • 閲讀 ( 60 )

如何新增復古控制檯遊戲到您的snes經典迷你

...代早期超級任天堂遊戲機的忠實複製品。讓我們來告訴你如何在這個復古遊戲機上玩N64、NES、PS1等遊戲。 ...

  • 發佈於 2021-03-21 17:27
  • 閲讀 ( 52 )

如何用古墓保護您最敏感的資料資訊

... 有興趣嗎?下面是如何做到這一點。 ...

  • 發佈於 2021-03-26 08:43
  • 閲讀 ( 49 )
小馬哥once
小馬哥once

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦