存儲能力探測及存儲問題定位
一、 存儲能力探測
當(dāng)業(yè)務(wù)吞吐量不能如預(yù)期增加,可以考慮是否是由于存儲的瓶頸導(dǎo)致。
業(yè)務(wù)系統(tǒng)運行起來后,可以提煉其中的IO模型,按照IO模型,有針對性的進(jìn)行存儲方面的規(guī)劃和測試。有不少工具可以用來探測LPAR所用的存儲的最大能力,本文以O(shè)rion工具為例介紹。
1.1 IO模型
IO模型包括:
- 磁盤IO分別在哪些盤
- IOPS
- 帶寬
- 讀IO和寫IO的比例
- 讀IO是順序的還是隨機的
- 寫IO是順序的還是隨機的
- 讀IO的大小
- 寫IO的大小
數(shù)據(jù)收集來源除了上述介紹的IOPS、帶寬指標(biāo),還需要關(guān)注IO的大小。IO的大小可以通過帶寬/IOPS來計算,但更細(xì)致的數(shù)據(jù)可以通過NMON中DISKAVGRIO/DISKAVGWIO來讀取,畢竟帶寬/IOPS計算得出的IO Size是某個時間段的平均值,而真實場景中每一秒的情況可能與平均值相差甚遠(yuǎn)。
1.2 存儲能力探測工具-Orion
Orion工具是由Oracle開發(fā),用于探測Oracle數(shù)據(jù)庫所在的存儲在不同IO模型下的最大IO能力,預(yù)測Oracle的最大讀寫能力。Orion可模擬Oracle數(shù)據(jù)庫IO負(fù)載(采用與Oracle相同的IO軟件棧),可模擬Oracle Automatic Storage Management提供的條帶效果。
本測試中針對某一文件進(jìn)行100%的寫操作,寫操作的類型為順序?qū)懀總€寫IO大小為8K。
Orion按照上述指定參數(shù)施壓,自動地、逐漸地增加并發(fā)寫的進(jìn)程數(shù),直到Orion認(rèn)為吞吐量不再增加。測試結(jié)束后,從trace文件中提取有用信息,如下圖:
Orion還可以不進(jìn)行參數(shù)設(shè)置,自動對存儲的IOPS、帶寬的最大能力進(jìn)行探測,是一款不錯的小工具。
二、 存儲問題定位
從用戶的角度來說,性能問題最直觀的感受是應(yīng)用響應(yīng)時間或者業(yè)務(wù)處理時間變長,性能問題是系統(tǒng)性的,問題可能出現(xiàn)在各個環(huán)節(jié)。通常情況下,最先排查的是CPU、內(nèi)存等服務(wù)器內(nèi)在的原因,當(dāng)服務(wù)器內(nèi)在原因被初步排除后,才會排查網(wǎng)絡(luò)IO、磁盤IO的問題。
即使確定是磁盤IO導(dǎo)致的,也要分析整個IO路徑,分析IO瓶頸是主機/網(wǎng)絡(luò)/存儲中的哪個環(huán)節(jié)導(dǎo)致的。
2.1 主機側(cè)
當(dāng)主機側(cè)觀察到的時延很大,存儲側(cè)的時延較小,則可能是主機側(cè)或網(wǎng)絡(luò)存在問題。
主機是I/O的發(fā)起端,I/O特性首先由主機的業(yè)務(wù)軟件和操作系統(tǒng)軟件和硬件配置等決定。例如,在“服務(wù)隊列滿”這一章節(jié)介紹的I/O 隊列長度參數(shù)(queue_depth),當(dāng)然,還有許多其他的參數(shù)(如: driver 可以向存儲發(fā)的最大的 I/O、光纖卡DMA memor區(qū)域大小、塊設(shè)備并發(fā)數(shù)、HBA卡并發(fā)數(shù))。
若排查完成,性能問題還是存在,則需要對組網(wǎng)及鏈路、存儲側(cè)進(jìn)行性能問題排查。
2.2 交換網(wǎng)絡(luò)
當(dāng)主機側(cè)觀察到的時延很大,存儲側(cè)的時延較小,且排查主機側(cè)無問題時,則性能問題可能出現(xiàn)在鏈路上。
可能的問題有:帶寬達(dá)到瓶頸、交換機配置不當(dāng)、交換機故障、多路徑選路錯誤、線路的電磁干擾、光纖線有損、接口松動等。帶寬達(dá)到瓶頸、交換機配置不當(dāng)、多路徑選路錯誤、線路的電磁干擾等。
2.3 存儲側(cè)
如果主機側(cè)時延與存儲側(cè)時延都很大且相差較小,說明問題可能出現(xiàn)在存儲上。首先需要了解當(dāng)前存儲側(cè)所承載的IO模型、存儲資源配置,并從存儲側(cè)收集性能數(shù)據(jù),按照I/O路徑進(jìn)行性能問題的定位。
常見原因如硬盤性能達(dá)到上限、鏡像帶寬達(dá)到上限、存儲規(guī)劃(如條帶過小)、硬盤域和存儲池劃分(例如劃分了低速的磁盤)、LUN對應(yīng)的存儲緩存設(shè)置過小、IO的Qos限制的磁盤IO的帶寬、存儲接口模塊數(shù)量過小、RAID劃分(比如RAID10>RAID5>RAID6)、配置快照、克隆、遠(yuǎn)程復(fù)制等增值功能拖慢了性能、存儲控制器的CPU利用率過高、LUN未格式化完成引起短時的性能問題。