天天看點

鮮為人知的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左右,是否正常?

問題分析 

在分析問題之前,我讓客戶提供了這段時間内的測試記錄,同時讓客戶收集了相應的一些資訊。

鮮為人知的Exadata存儲性能秘密

以上資訊是onecommand過程中報的錯誤,從錯誤日志可以看出,在調用calibrate指令檢測所有存儲節點磁盤性能時,出現了錯誤。

鮮為人知的Exadata存儲性能秘密

以上資訊是sundiag收集的日志,可以看出,存儲節點cell01在通路/dev/sdq這塊盤的時候出現了medium error。

鮮為人知的Exadata存儲性能秘密

以上圖檔是客戶在測試過程中的截圖,可以看出,mbps為0,類似這種磁盤,需要直接更換掉。在問題轉到我們這裡之前,客戶也已經将這種磁盤全部更換掉。 注意:客戶更換的是seagate st360057ssun600g 磁盤。而恰恰是這種磁盤,給後續的測試帶來了性能問題。也即客戶的問題1:為什麼測試過程中以前一些表現比較差的磁盤,為什麼将這類磁盤更換到其它的存儲節點後再次測試,性能又能恢複原樣?

客戶的測試過程

11月28日晚上20:25:30開始,客戶從作業系統層面直接調用calibrate指令進行測試,循環執行55次。如下圖,是客戶截取的測試結果。

鮮為人知的Exadata存儲性能秘密

從上圖可以看出,有部分磁盤的性能還是比較差的。由于這個案例是事後分析,當時的一些日志資訊已經不完整,但還好cell02節點的插槽5這塊盤的日志儲存完整,以下主要針對cell02節點的插槽5這塊盤進行分析:

鮮為人知的Exadata存儲性能秘密

以上資訊可以看出,插槽5這塊盤是2016-11-25 13:28:34剛剛更換後的seagate的sas硬碟。

鮮為人知的Exadata存儲性能秘密

以上資訊可以看出,在2016-11-28 20:40:22時,對cell02存儲節點的磁盤做性能測試時,發現插槽5上的磁盤性能比較低。

11月29日,客戶根據28日的檢測結果,對一些性能偏低的硬碟進行更換,例如:将cell07存儲節點上插槽7(沒有測出性能問題日立原盤)的磁盤 與cell02存儲節點上插槽5(出現性能問題的希捷硬碟)的磁盤進行互換。

更換後測試結果如下圖:

鮮為人知的Exadata存儲性能秘密

問題1的原因 

通過客戶的以上測試過程來分析,我們基本可以得出結論,針對cell02的插槽5的這塊希捷硬碟,這塊硬碟本身是沒有問題的,但在某種情況下,會引發性能問題。但是什麼的條件會引發硬碟的性能低下呢?同樣,滿足什麼樣的條件,進入性能低下的硬碟又能恢複原有的性能呢?

鮮為人知的Exadata存儲性能秘密

以上的日志是事後進行分析時,讓客戶抓取的資訊,讓客戶抓取cell02存儲節點的溫度曆史資訊。可以看到,由于是事後分析,隻能看到2016-11-28 至2016-12-05 這部分的資料,對溫度曆史資訊進行過濾,我們可以看到,cell02存儲節點在2016-11-28 20點12分 和 20點17分 這兩個時間點的溫度隻有19度, 而客戶進行性能測試的時間點為20:25:30開始。

鮮為人知的Exadata存儲性能秘密

以上是cell02存儲節點的作業系統重新開機資訊,可以看出,11-23 至 12-2 之間,作業系統是未重新開機過的。

同樣,讓客戶抓取cell07存儲節點的溫度曆史資訊進行分析:

鮮為人知的Exadata存儲性能秘密

以上的日志是cell07存儲節點的溫度曆史資訊。可以看到2016-11-28 至2016-12-05 這部分的資料,對溫度曆史資訊進行過濾,我們可以看到,cell07未出現過溫度低于20度的情況。

鮮為人知的Exadata存儲性能秘密

以上是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指令對所有存儲節點硬碟整體測試

測試結果如下圖:

鮮為人知的Exadata存儲性能秘密

從以上測試結果可以看出:插槽0和插槽1的磁盤性能下降問題是偶爾出現,同時也隻是提示資訊,且calibrate測試結果在oracle的接受範圍之内, 并不像以前直接報error錯誤。

2、批量運作calibrate指令單獨對插槽0和插槽1硬碟進行性能測試

鮮為人知的Exadata存儲性能秘密

從以上測試結果可以看出:單獨對所有存儲節點的插槽0和插槽1硬碟進行性能測試,沒有發現性能降低情況,說明硬碟沒有問題。

3、通過hdparm工具對插槽0和插槽1硬碟以及其他硬碟進行性能測試

其實,在診斷exadata上的磁盤是否出現性能問題時,可以使用hdparm工具來進行分析,其中對每個盤單獨測試5次,對timing buffered disk reads取其平均值後,進行比對。

以下,還是拿cell02來進行測試。

存儲節點二插槽0 盤測試結果:

鮮為人知的Exadata存儲性能秘密

平均值為:(177.06+178.58+175.69+178.64+177.31)/5=177.456 mb/sec

存儲節點二插槽1 盤測試結果:

鮮為人知的Exadata存儲性能秘密

平均值為:(189.09+176.97+174.36+173.54+176.77)/5=178.146 mb/sec

存儲節點二其他盤測試結果

鮮為人知的Exadata存儲性能秘密

平均值為:(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