Lustre效能優化方案

2021-06-27 05:51:13 字數 3169 閱讀 8754

部落格公告:(1)本部落格所有部落格文章搬遷至《部落格蟲》

網路頻寬往往決定著lustre檔案系統的聚合頻寬。lustre是通過多個oss同時讀取資料來提高系統整體的讀寫效能,然而,如果網路傳輸的效能過低,則無法發揮lustre檔案系統的效能優勢。

從以下幾點考慮網路頻寬對效能的影響:

²  網路型別(tcp/ip網路及infiniband網路)

²  網絡卡型別(千兆網/萬兆網)

²  網絡卡數量及繫結方式(幾個網絡卡繫結一起)

²  網絡卡繫結模式

補充:

ø通常情況下infiniband網路效能遠遠高於tcp/ip網路,但成本較高

ø萬兆網比千兆網效能高

ø網絡卡繫結模式一般為6

luster自身設定主要是條塊數(即ost的個數)及如何條塊化,這兩方面也是lustre實現i/o併發的關鍵。條帶化能夠使系統達到併發的目的,從而影響了系統的效能。

luster自身設定對系統效能的影響主要從以下幾個方面:

²  條塊大小(stripesize,min=64kb)

²  條塊數(stripecount)

²  起始塊數(start-ost,即條塊起始位置)

補充:

ø通常情況下start-ost預設為-1,不需要進行修改,該設定即不指定初始位置,能夠很好達到負載均衡的目的

ø通常情況下lustre條塊的大小的增加,聚合頻寬總體呈下降趨勢,當條塊過大時,某一時間內的多個i/o發生在同乙個ost上,造成i/o等待,通常設定為64kb

ø通常情況下,隨著條塊數增加,聚合頻寬總體呈上公升趨勢,在一定的環境下,合理的配置ost可以良好的發揮lustre的系統效能

lustre檔案系統中,客戶端生成乙個全域性儲存空間,使用者資料通過客戶端存入lustre檔案系統中,所客戶端的設定也會影響系統的效能。

主要從以下幾點:

²  單個客戶端程序數(連線數)

²  讀寫塊大小

²  客戶端數量

補充:

ø隨著連線數(程序數)的增加,聚合頻寬開始呈上公升趨勢,到一定程度後穩定(此時系統效能尚未達到飽和),隨著連線數的增加,頻寬開始下降

ø隨著i/o讀寫塊的大小增加,聚合頻寬開始呈現上公升趨勢,到一定程度後穩定,隨後增加塊大小聚合頻寬反而下降,當64kb~64mb大小時,保持穩定

ø隨著客戶端數目的增加,讀模式下的聚合頻寬明顯提高,而寫模式下的聚合頻寬則變化不明顯。

luster底層儲存裝置採用通用儲存裝置,可以是單磁碟,也可以是raid,也可以是lvp,大部分採用raid方式,既能保證聚合儲存容量,又能提供資料保護。

主要從以下幾點說明:

²  raid方式(硬raid/軟raid)

²  raid模式(raid0/1/2/3/4/5/6/10/01)

²  硬raid卡型別

²  做raid的磁碟型別(sata、sas、ssd)

補充:

ø通常情況下,lustre檔案系統底層採用硬raid的方式進行底層儲存,效能遠遠大於軟raid,但成本高

øluster通常做raid6,提高資料保護

øost磁碟一般採用低成本的sata盤,而mds則一般採用ssd

(1)通過應用聚合讀寫提高效能,比如對小檔案進行tar,或建立大檔案或通過loopback mount來儲存小檔案。小檔案系統呼叫開銷和額外的i/o開銷非常大,應用聚合優化可以顯著提高效能。另外,可以使用多節點、多程序/多執行緒盡可能通過聚合來提高i/o頻寬。

(2)應用採用o_direct方式進行直接i/o,讀寫記錄大小設定為4kb,與檔案系統保持一致。對輸出檔案禁用locking,避免客戶端之間的競爭。

(3)應用程式盡量保證寫連續資料,順序讀寫小檔案要明顯優於隨機小檔案i/o。

(4)ost採用ssd或更多的磁碟,提高iops來改善小檔案效能。建立大容量ost,而非多個小容量ost,減少日誌、連線等負載。

(5)ost採用raid 1+0替代raid 5/6,避免頻繁小檔案i/o引起的資料校驗開銷。

(1)禁用所有客戶端lnet debug功能:預設開啟多種除錯資訊,sysctl -w lnet.debug=0,減少系統開銷,但發生錯誤時將無log可詢。

(2)增加客戶端dirty cache大小:lctl set_param osc.max_rpcs_in_flight,預設為8,提公升至32將提高資料和元資料效能。不利之處是如果伺服器壓力很大,可能反而會影響效能。

(4)控制lustre striping:lfs setstripe -c 0/1/-1 /path/filename,如果ost物件數大於1,小檔案效能會下降,因此將ost物件設定為1。

(5)客戶端考慮使用本地鎖:mount -t lustre -o localflock,如果確定多個程序從同乙個客戶端進行寫檔案,則可用localflock代替flock,減少傳送到mds的rpc數量。

(6)使用loopback mount檔案:建立大lustre檔案,與loop裝置關聯並建立檔案系統,然後將其作為檔案系統進行mount。小檔案作用其上,則原先大量的mds元資料操作將轉換為oss讀寫操作,消除了元資料瓶頸,可以顯著提高小檔案效能。這種方法應用於scratch空間可行,但對於生產資料應該謹慎使用,因為lustre目前工作在這種模式下還存在問題。操作方法如下:

dd if=/dev/zero of=/mnt/lustre/loopback/scratch bs=1048576 count=1024 

losetup /dev/loop0 /mnt/lustre/loopback/scratch

mkfs -t ext4 /dev/loop0 

mount /dev/loop0 /mnt/losf

ø  lustre檔案系統的效能優化研究-2011-王博,李先國,張曉

ø  基於軟raid的lustre效能影響要素簡析-2008-張丹丹,姚繼峰

ø  luster i/o效能最佳實踐

ø  luster檔案系統i/o效能的分析和改進-林松濤,周恩強,廖湘科

Android效能優化方案

android效能優化的方案比較多,在開發過程中,主要考慮從以下幾個方面優化 1.布局優化 2.繪製優化 3.記憶體洩漏優化 4.響應速度優化 5.listview優化 6.bitmap優化 7.執行緒優化 接下來我們從這幾個方面為大家簡單介紹優化方案 大家肯定都知道android中有許多布局,比如...

前端效能優化方案

1 雪碧圖 css sprites 就是把多張圖合到一張圖裡面,然後通過css來分別取用。這樣就可以減少請求數量。2 合併多個指令碼和樣式表 3 合理設定快取 可以在下次訪問時減少部分請求,直接在快取中讀取。4 懶載入 lazy load 只載入可見的部分。先將img標籤中的src鏈結設為同一張 空...

前端效能優化方案

多使用記憶體,快取或者其他方法 減少cpu計算,減少網路請求 減少io操作 硬碟讀寫 靜態資源的合併和壓縮。靜態資源快取 瀏覽器快取策略 使用cdn讓靜態資源載入更快。css放head中,js放body後 懶載入減少dom操作,對dom操作做快取 減少dom操作,多個操作盡量合併在一起執行 事件節流...