多個交換文件的目的是什麼
在安裝大多數(如果不是全部)Linux 發行版的過程中,預設情況下硬碟驅動器被分區為包含交換分區。
可以通過以下方式更改此行為
swapon -p priority
根據手冊頁,優先級是:
PRIORITY Each swap area has a priority, either high or low. The default priority is low. Within the low-priority areas, newer areas are even lower priority than older areas. All priorities set with swapflags are high-priority, higher than default. They may have any non-negative value chosen by the caller. Higher numbers mean higher priority. Swap pages are allocated from areas in priority order, highest priority first. For areas with different priorities, a higher-priority area is exhausted before using a lower-priority area. If two or more areas have the same priority, and it is the highest priority available, pages are allocated on a round-robin basis between them. As of Linux 1.3.6, the kernel usually follows these rules, but there are exceptions
為什麼您需要多個交換文件?
系統管理員配置多個交換是常見的做法嗎?
即使您只有一個主軸,也有很多理由擁有多個交換區域(它們不需要是文件)。
**20-20 事後諸葛亮:**您部署了一台具有單個交換區域的機器,但最終意識到這還不夠。您不能隨意重新部署機器,但您可以創建另一個交換區域(可能是一個文件),直到重做分區佈局成為一種選擇。
**調整或移動交換區域:**您不能調整交換區域的大小(如Evan Teitelman 所述)。除非您有足夠的 RAM,否則您不能只
swapoff
創建一個新的交換區域,然後再創建一個新的交換區域:想要在釋放交換區域之前將所有換出的頁面移動到 RAM。所以你做一個臨時交換區,原來的,等到所有的頁面都從舊交換區移動到臨時交換區,調整原始交換分區的大小,然後是調整大小的一個和臨時的。交換的頁面從臨時交換區域複製到調整大小的頁面,您就完成了。如果您要移動交換區域,您甚至不需要臨時區域。新的,它,然後swapon``swapoff``swapoff``mkswap``swapon``swapoff``mkswap``swapon``swapoff
舊的,一切都搬走了。**瘋狂的快速交換:**現代磁碟採用區域位記錄。磁碟的第一個區域是最快的。您可能想要測量磁碟,並創建一個完全覆蓋驅動器第一個、最快區域的分區。這可能小於您預期的交換大小。因此,您使用相同的技術在多個磁碟上添加多個分區。
**瘋狂的快速交換,續集:**或者,一旦你知道磁碟的最快區域在哪裡,你可以在第一個區域創建高優先級交換區域,在第二個區域創建低優先級交換區域,等等。這樣你的交換系統會自動知道在所有快速磁碟區域之間進行負載平衡,優先選擇較快的區域,並在需要時將較慢的區域用作溢出區域。
**對稱負載平衡:**在具有許多主軸的精心建構的系統(如伺服器)上,我喜歡讓多個交換分區佔據每個磁碟的開頭(以利用區域位記錄)。它們都具有相同的優先級,因此核心將對交換進行負載平衡。一個主軸可能為您提供 100 MB/s 的速度,但所有主軸之間的交換可以為您提供數倍的速度。(天真地說)
**瓶頸感知負載平衡:**然而,在實踐中,還存在其他瓶頸。因此,例如,一個 16 磁碟伺服器可能有四個 6 Gbps SATA 埠,每個埠都有一個四埠乘法器和四個共享頻寬的磁碟。如果你知道這一點,你可以組織你的交換空間,使埠 1-4 上的磁碟 1 具有最高優先級,埠 1-4 上的第二個磁碟具有第二高優先級,等等。這將負載平衡交換,但不會壓倒埠倍增器。
**在具有不同性能的設備之間進行交換:(**如 Luke 所提到的)如果您的系統不是全新的伺服器,並且多年來一直在有機地發展,它可能具有比其他設備快得多的塊設備。您需要先換到最快的設備,然後換到下一個最快的設備,依此類推。
**大小考慮:(**由David Kohen提供)也許將所有交換設備放在一個驅動器上會在驅動器上留下一些空閒空間(這聽起來像是 2001 年的場景,但有很多舊設備或嵌入式設備可能會成為問題)。將其拆分到所有驅動器上,除了上述所有其他好處之外,您還可以獲得每個驅動器更好的磁碟空間使用率。每個主軸失去幾個 gig 是一回事,一個磁碟失去 300 gig 又是另一回事。
**緊急情況:**你正好有 96 小時的時間來送出你的博士論文,而你的最後一個實驗(可能會讓你獲得諾貝爾獎以及你名字後面的時髦混合大小寫字母的實驗)正在以驚人的速度吸收記憶。你幾乎沒有交換。你創建了一個優先級低於主交換設備優先級的交換文件——核心會將它用作溢出交換空間。您甚至可以安裝swapd來自動為您執行此操作,因此您還將為那些龐大的
emacs
LaTeX 執行提供足夠的交換空間。跨不同媒體交換: Linux 不能交換到字元設備,但有很多不同的媒體,物理的和虛擬的:SSD(注意:你可能不想在 SSD 上交換),數十種令人震驚的不同類型的旋轉硬碟磁碟、磁片(是的,你可以在磁片上進行交換——你總是可以用 Unix 打自己的腳)、DRBD卷、iSCSI、LVM 卷、LUKS 加密分區等(包括這些超現實的、令人難以置信的分層組合——通過 IEEE802.3ad 聚合乙太網在 iSCSI 上的並行埠 ZIP 驅動器上交換 LVM 上的 LUKS?沒問題,你這個骯髒的變態)。這些是利基場景,旨在支持利基需求。