鮮為人知的Exadata存儲性能秘密
作者介紹
石雲華,現就職於北京海天起點,Oracle技術二線專家成員,Exadata部門負責人。擁有十餘年電信、保險、稅務行業核心係統Oracle數據庫運維經驗,持有11gOCM、Exadata、Goldengate等證書。 擅長於Oracle/Goldengate/Exadata方麵的故障診斷及疑難問題處理。
案例概述
一個X3-2 的Exadata臨時客戶,Oracle原廠工程師在進行onecommand初始化的過程中,執行到第6步,calibrate檢測存儲節點磁盤性能時報錯,後續工作無法繼續。而由於一些商務上的原因,原廠的硬件工程師無法提供技術支持。
客戶最終找到了我們,希望我們能幫著一起分析分析,存儲節點磁盤的性能是否存在問題。在問題轉給我之前,客戶自己也做了大量的換盤和測試工作。目前存儲節點使用calibrate檢測的結果正常,但插槽0 或 插槽1 的MBPS偶爾比其它的磁盤低十幾MB左右,但還是在可以接受的範圍之內。
目前,客戶主要有兩個疑問,需要我進行解釋:
-
測試過程中以前一些表現比較差的磁盤,為什麼將這類磁盤更換到其它的存儲節點後再次測試,性能又能恢複正常?
-
現在的插槽 0 或 插槽 1 的磁盤MBPS偶爾比其它的磁盤低十幾MB左右,是否正常?
問題分析
在分析問題之前,我讓客戶提供了這段時間內的測試記錄,同時讓客戶收集了相應的一些信息。
以上信息是onecommand過程中報的錯誤,從錯誤日誌可以看出,在調用CALIBRATE命令檢測所有存儲節點磁盤性能時,出現了錯誤。
以上信息是sundiag收集的日誌,可以看出,存儲節點cell01在訪問/dev/sdq這塊盤的時候出現了Medium Error。
以上圖片是客戶在測試過程中的截圖,可以看出,MBPS為0,類似這種磁盤,需要直接更換掉。在問題轉到我們這裏之前,客戶也已經將這種磁盤全部更換掉。 注意:客戶更換的是SEAGATE ST360057SSUN600G 磁盤。而恰恰是這種磁盤,給後續的測試帶來了性能問題。也即客戶的問題1:為什麼測試過程中以前一些表現比較差的磁盤,為什麼將這類磁盤更換到其它的存儲節點後再次測試,性能又能恢複原樣?
客戶的測試過程
11月28日晚上20:25:30開始,客戶從操作係統層麵直接調用CALIBRATE命令進行測試,循環執行55次。如下圖,是客戶截取的測試結果。
從上圖可以看出,有部分磁盤的性能還是比較差的。由於這個案例是事後分析,當時的一些日誌信息已經不完整,但還好CELL02節點的插槽5這塊盤的日誌保存完整,以下主要針對CELL02節點的插槽5這塊盤進行分析:
以上信息可以看出,插槽5這塊盤是2016-11-25 13:28:34剛剛更換後的SEAGATE的SAS硬盤。
以上信息可以看出,在2016-11-28 20:40:22時,對CEll02存儲節點的磁盤做性能測試時,發現插槽5上的磁盤性能比較低。
11月29日,客戶根據28日的檢測結果,對一些性能偏低的硬盤進行更換,例如:將Cell07存儲節點上插槽7(沒有測出性能問題日立原盤)的磁盤 與Cell02存儲節點上插槽5(出現性能問題的希捷硬盤)的磁盤進行互換。
更換後測試結果如下圖:
我們仍然關注Cell02的 插槽5(希捷硬盤),發現它換到Cell07的插槽7後,Cell07沒有出現性能問題了。同理,Cell07的 插槽7(日立硬盤)更換到Cell02的 插槽5後,Cell02也沒有出現性能問題。
問題1的原因
通過客戶的以上測試過程來分析,我們基本可以得出結論,針對Cell02的插槽5的這塊希捷硬盤,這塊硬盤本身是沒有問題的,但在某種情況下,會引發性能問題。但是什麼的條件會引發硬盤的性能低下呢?同樣,滿足什麼樣的條件,進入性能低下的硬盤又能恢複原有的性能呢?
以上的日誌是事後進行分析時,讓客戶抓取的信息,讓客戶抓取Cell02存儲節點的溫度曆史信息。可以看到,由於是事後分析,隻能看到2016-11-28 至2016-12-05 這部分的數據,對溫度曆史信息進行過濾,我們可以看到,Cell02存儲節點在2016-11-28 20點12分 和 20點17分 這兩個時間點的溫度隻有19度, 而客戶進行性能測試的時間點為20:25:30開始。
以上是Cell02存儲節點的操作係統重啟信息,可以看出,11-23 至 12-2 之間,操作係統是未重啟過的。
同樣,讓客戶抓取Cell07存儲節點的溫度曆史信息進行分析:
以上的日誌是Cell07存儲節點的溫度曆史信息。可以看到2016-11-28 至2016-12-05 這部分的數據,對溫度曆史信息進行過濾,我們可以看到,Cell07未出現過溫度低於20度的情況。
以上是Cell07存儲節點的操作係統重啟信息,可以看出,11-23 至 12-2 之間,操作係統是重啟過多次的。
下麵,我來歸納下客戶所做的性能測試:
Cell02存儲節點在2016-11-28 20點17分時,溫度低下20攝氏度,並且操作係統未重啟過,同時未出現連續30分鍾以上的24度高溫,客戶在20點25分,開始做性能測試,此時的希捷SAS盤性能表現比較差;接著,在11-29日,這塊希捷SAS磁盤換到了Cell07,由於Cell07從未出現過低於20攝氏度的情況,並且操作係統於11-28 18:17重啟過,所以這塊希捷SAS在CELL07上又表現良好。
結合Cell02與Cell07的曆史溫度信息和操作係統重啟情況,正好驗證了Exadata上SAS盤的一個小秘密:
Exadata上的希捷SAS硬盤,當溫度低於20攝氏度時,性能會出現下降,並且這種性能下降的現象一直存在。有兩種情況才能讓這種希捷SAS硬盤恢複原有的性能:
-
希捷SAS的溫度必須連續30分鍾以上保持在24攝氏度。
-
希捷SAS的溫度在20攝氏度以上,並重啟操作係統。
問題2的原因
對於問題1,前麵已經進行了完整的闡述,下麵來看看問題2:現在的插槽 0 或 插槽 1 的MBPS偶爾比其它的磁盤低十幾MB左右,是否正常?
1、批量運行CALIBRATE命令對所有存儲節點硬盤整體測試
測試結果如下圖:
從以上測試結果可以看出:插槽0和插槽1的磁盤性能下降問題是偶爾出現,同時也隻是提示信息,且CALIBRATE測試結果在ORACLE的接受範圍之內, 並不像以前直接報ERROR錯誤。
2、批量運行CALIBRATE命令單獨對插槽0和插槽1硬盤進行性能測試
測試結果如下圖:
從以上測試結果可以看出:單獨對所有存儲節點的插槽0和插槽1硬盤進行性能測試,沒有發現性能降低情況,說明硬盤沒有問題。
3、通過hdparm工具對插槽0和插槽1硬盤以及其他硬盤進行性能測試
其實,在診斷Exadata上的磁盤是否出現性能問題時,可以使用hdparm工具來進行分析,其中對每個盤單獨測試5次,對Timing buffered disk reads取其平均值後,進行比對。
以下,還是拿cell02來進行測試。
存儲節點二插槽0 盤測試結果:
平均值為:(177.06+178.58+175.69+178.64+177.31)/5=177.456 MB/sec
存儲節點二插槽1 盤測試結果:
平均值為:(189.09+176.97+174.36+173.54+176.77)/5=178.146 MB/sec
存儲節點二其他盤測試結果
平均值為:(189.25+189.66+189.72+189.80+189.53)/5=189.592 MB/sec
以上測試可以看出,插槽 0 和 插槽1 上的磁盤性能與其它盤基本一致,無太大差別,但比其它盤還是要低一些。這是由於Exadata上的插槽0和 插槽1上安裝了操作係統,必然會消耗部分性能。
後續思考
至此,客戶提出的兩個問題,基本上已經進行了解答。
在處理這個案例的過程中,客戶也透露了一個信息,在3年前,他們剛買這台X3-2時,Oracle原廠曾經一次性將7台存儲節點的84塊硬盤全部換過,理由是這批硬盤有性能問題,更換前是什麼硬盤我不得而知,但更換後的是日立的硬盤。我猜測更換前,應該是希捷硬盤,因為Exadata以前的版本一直用希捷硬盤,後來發現了溫度引發硬盤性能低下這個問題後,基本上就放棄了希捷硬盤,而改用日立硬盤,而日立硬盤是不是就不存在這種溫度影響性能的問題呢,其實也是存在的,隻不過觸發的條件更加極限,隻有當溫度低於15攝氏度時,才會引發性能問題。
那以後,Exadata會不會永遠放棄希捷硬盤呢,這個也不好說,低於20攝氏度觸發性能低下,這個特性是希捷特意設計的,不能簡單稱之為BUG,Oracle硬件部門目前與希捷也在共同合作,希望在以後的firmware中進行修正這個問題。
原文發布時間為:2016-12-15
本文來自雲棲社區合作夥伴DBAplus
最後更新:2017-05-11 14:55:21