
我們有 Hadoop 集群,我們正在收集指標收集數據,以便調查 Spark 應用程式的緩慢行為
經過對我們的 Hadoop 叢集的長期調查
我們從 Prometheus 指標中註意到,node_disk_io_now 的值高於正常值,並且它與資料節點電腦上的所有 HDFS 磁碟相關
node_disk_io_now 定義是:
node_disk_io_now(欄位 9)唯一應為零的欄位。當請求被賦予適當的 request_queue 時遞增,並在完成時遞減。
我們想知道,調整核心參數是否可以為磁碟效能帶來正面的影響
根據node_disk_io_now定義,似乎有太多任務在佇列中等待,
也許某些核心參數可以幫助改善上述行為,因此佇列中的任務將不會長時間存在
答案1
在您的問題中,我看不到您使用的磁碟類型,SSD/SAS/NLSAS 或混合磁碟。這是您選擇中最重要的部分。
為了回答您的問題,對於核心參數,我想說的是,您可以使用一些參數來找到最適合您的叢集的參數。
IO優化的重要部分是IO Scheduler。目前的 Linux 核心中有 3 個 IO 調度程式。
無操作(先進先出):用於 SAN、SSD 類型的存儲,其中存儲設備本身足夠智能,可以進行自身優化。
最後期限:一般來說,適用於文件和資料庫伺服器。您必須考慮是否要提高吞吐量或延遲。或者您可以增加讀取請求,反之亦然。
CFQ:不建議用於伺服器,適合桌面使用。
除了 IO Schedulers 之外,還有一些其他虛擬記憶體參數,我只會在下面提到它們,但您需要自己閱讀更多有關它們的信息,以提高性能。
vm.swappiness
vm.dirty_ratio
vm.dirty_background_ratio
vm.dirty_expire_centisecs
and....
答案2
(據我所知)沒有任何核心選項可以改善這一點。但是,您可能需要檢查所有其他節點 RAID 控制器是否具有與該節點相同的值(例如區塊寫入大小),或實際上相反。
也要確保 /etc/fstab 中的所有掛載都具有相同的選項。
除此之外,您需要檢查磁碟規格並確保它們相同。
您也可以檢查 RAM 大小,因為某些檔案系統會在 RAM 中進行大量快取。不確定 HDFS,但例如 ZFS 非常依賴於此。