Linux
如何知道 hadoop Linux 機器的正確交換大小
我們正在使用許多 hadoop 集群
現在我們使用交換大小 - 16G
free -g total used free shared buff/cache available Mem: 125 1 123 0 0 123 Swap: 15 0 15
但眾所周知,交換是實際使用磁碟的非常慢的記憶體
在一些作為 zookeeper 伺服器的 hadoop 組件中,swap 應該被禁用!!!
但我覺得在 hadoop 機器交換中應該是最小的
我想我需要把它降低到 4G ,
但我想獲得更多意見
您可以通過玩
swappiness
. 您可以使用以下命令獲取目前值:cat /proc/sys/vm/swappiness
如果要更改它,請編輯
/etc/sysctl.conf
並添加行vm.swappiness = 1
(由 Cloudera 推薦)並執行
sysctl -p
(作為
root
)
一般建議是:如果 RAM 大於 1 GB,則交換大小應至少等於 RAM 大小的平方根,最多為 RAM 大小的兩倍
也可以從 Redhat 找到類似的指南。
如果您只是擁有一個具有 512GB 或更多 DDR4 RAM 的系統,並且您將 linux 安裝在一個 500gb、300gb 或 80gb 的較小磁碟上怎麼辦?
交換的定義(如果錯了請指正)它是磁碟上的一個分區,它在系統用完 RAM 的那一天(當只有 32 MB或 1 GB的記憶體)時起到了作用,那麼系統可以當 RAM 已滿時,利用交換來保持活動狀態;當時這是有道理的,因為磁碟儲存通常總是比 RAM 更大、更經濟、更可用,而且很容易用完32 MB的 RAM。
快進到 21 世紀,RAM 現在很便宜,家用電腦可以輕鬆擁有 16GB 或更多的 RAM;伺服器可以輕鬆擁有 256GB 或更多的 RAM;例如,現在簡單的戴爾伺服器(和許多其他伺服器)提供高達 3TB 的 RAM 選項。RAM 很容易超過可用的磁碟空間量。
我的意見,基於經驗和一些事實:
- 21 世紀的計算硬體現在已經過時了任何關於交換空間的指導方針。
- 你的安卓手機(linux)有交換空間嗎?考慮與筆記型電腦/電腦相比,具有 16、32、64 GB(快閃記憶體?)記憶體的智能手機的計算能力和性能?幾年前$$ with swap space partitioned $$.
- 您可以在許多不同類型的儲存介質上安裝許多 linux 發行版
- 你不需要有一個 SWAP 分區來執行 linux
- 重要的是有多少 RAM,並根據可用 RAM 的數量了解系統的限制。
- Swappiness = 一個核心參數,它定義了你的 Linux 核心將 RAM 內容複製到交換的次數和頻率。你想讓作業系統在 RAM 的範圍內做任何事情;如果 RAM 永遠不會達到 100%,那麼這個參數幾乎毫無意義,因為任何東西都不會被寫入任何被定義為交換的東西。
- 如果你有 256GB 的 RAM 並且你用完了,那麼任何數量的交換在這一點上都是毫無意義的…… HDD 或 SSD 上的 2gb 交換沒有意義 擁有 256GB 的 RAM ……然後在磁碟上有N gb 的交換只是浪費空間,如果你有N gb 的交換空間,如果 RAM 達到 100%,系統仍然會阻塞並且基本上變得無響應(幾乎一直都是這樣)
- 如果您認為需要交換,則需要更多 RAM。如果您的系統不允許足夠的 RAM,那麼您需要一個更新/更好的系統來提供足夠的 RAM 容量。
- 您的問題應該只是交換的正確大小是多少?. 無論是hadoop、linux還是windows,如果我們同意swap的定義應該無關緊要,因為swap分區中的一些儲存空間只有在RAM已滿時才會被作業系統使用。
- 還要查找磁碟記憶體並理解它… linux ate my ram。始終使用 RAM(盡可能多地使用)以獲得最佳性能。在 linux 中使用free命令並觀察cached除了used和free的值。
- 我討厭交換。