RAID技術與磁碟效能比較 linux

2022-09-23 05:51:10 字數 1457 閱讀 8544

raid技術與磁碟效能比較?raid技術是構造高效能、海量儲存的基礎技術,核心是依靠磁碟的並行性提高效能。最簡單的raid卡,一般都包含有幾十,甚至幾百兆的raid cache,寫cache的資料積累到一定程度(實現批量寫),陣列才把資料刷到磁碟,cache資料的保護,一般都依賴於鏡相與電池(或者是ups),磁碟陣列讀操作的關鍵更多的體現在cache的命中率上。如果資料庫時刻會寫入資料(如從總部接收)而且寫入的次數非常頻繁,屬於隨機寫的場景。如果採用raid5,一次寫會有寫入+放入cache和校驗+放入cache四個io(raid5很依賴cache),採用raid10的話只有有寫入加映象兩個io。舉例:像小io的資料庫型別操作,建議採用raid10。大型資料倉儲(如,醫療pacs系統,**編輯系統、)建議採用raid5。工作中遇到的乙個實際example,場景是隨機寫很多的db,搭建在raid5之上,平常時間沒發現什麼差異,雙十一來臨的時候就各種效能瓶頸。後來改為raid10,就避免了這個問題。決定iops(每秒進行讀寫操作的次數)的主要因素取決於陣列的演算法,cache命中率(作用是便於讀,如果是寫多的業務就不需要使用cache),以及磁碟個數。這裡的iops是衡量了隨機讀,連續讀,隨機寫,連續寫。對於磁碟效能的測量,比較方便的是使用iostat。

? ??? 此例子就是寫多讀少的場景

?iostat命令可以檢視cpu利用率和磁碟效能相關資料,用來監視系統輸入/輸出裝置負載。-c ? ?只顯示cpu利用率-d ? ?只顯示磁碟利用率iostat 2 2,這表示每2秒報告一次,報告2次iostat -x 1 1 輸出引數解析:rrqm/s ? ?每秒合併到裝置的讀取請求數wrqm/s ? ?每秒合併到裝置的寫請求數r/s ? ?每秒向磁碟發起的讀運算元。w/s ? ?每秒向磁碟發起的寫運算元。rsec/s ? ?每秒從裝置讀取的扇區數量。wsec/s ? ?每秒向裝置寫入的扇區數量。**grq-sz ? ?i/o 請求的平均大小,以扇區為單位**gqu-sz ? ?向裝置發起的i/o 請求佇列的的平均佇列長度await ? ?i/o 請求的平均等待時間,單位為毫秒。這個時間包括請求佇列(這個概念很重要)消耗的時間和為每個請求服務的時間svctm ? ?i/o 請求的平均服務時間,單位為毫秒。%util ? ?處理 i/o 請求所占用的時間的百分比,即裝置利用率。i/o請求期間cpu時間的百分比(即裝置的頻寬利用率)。當這個值接近100%時,表示磁碟i/o已經飽和kb_read/s ? ?每秒從磁碟讀取資料大小,單位kb/skb_wrtn/s ? ?每秒寫入磁碟的資料的大小,單位kb/skb_read ? ? ?從磁碟讀出的資料總數,單位kbkb_wrtn ? ? ?寫入磁碟的的資料總數,單位kbiostat 1 1 輸出引數解析:tps ? ?每秒i/o數。(即iops。磁碟連續讀和連續寫之和)blk_read/s ? ?每秒從裝置讀取的資料大小,單位是block/s(塊每秒)blk_wrtn/s ? ?每秒寫入裝置的數量,單位是block/s。blk_read ? ?從磁碟讀出的塊的總數blk_wrtn ? ?寫入磁碟的塊的總數

吞吐量是iops*每個io的大小,在iostat報告中,tps=r/s+w/s

srand 與 rand效能比較

include include include int main gettimeofday tv,null long us1 tv.tv usec std cout 測試1結束,時間戳 us1 時間差 us1 beginus std endl for int i 0 i 1000 i gettime...

C List 與Array效能比較

在.net framework 2.0之前,陣列表示可以用array 和集合類 arraylist 表示,2.0後,net 引進了泛型的概念list 那麼我們的選擇就多了一種。2.0引進泛型其本意是減少型別的裝箱拆箱所帶來的效能消耗。比如 private void compareto listlis...

FOR迴圈與FORALL的效能比較

通常在sql語句中給pl sql變數賦值叫做繫結 binding 一次繫結乙個完整的集合稱為批量繫結 bulk binding 批量繫結 bulk binds 可以通過減少在pl sql和sql引擎之間的上下文切換 context switches 提高了效能.批量繫結 bulk binds 包括 ...