oracle dbra,资源供给:IO子系统之二
案例描述:
某運營商的dbra備份系統,備份構建在vxvm和vxfs文件系統之上,串行更新的速度基本理想。由于無法達到更新目標,通過增加并行來增加IO寫速度,結果并行度加大之后,iops快速下跌,io子系統無法提供并發能力。由于對于vxvm不是很了解,又沒有廠商支持,測試了vxvm依賴的磁盤層次,發現磁盤層次可以提供很好的并行度擴充。簡單的構建了一個hp-ux缺省的vxfs,也可以很好的進行并行擴展,現在可以判斷是vxvm的并行能力出現了問題,估計是vxvm隊列的問題,由于缺乏支持,無法對于vxvm作出優化調整。在客戶的支持下,放棄了vxvm之后,建立在hp-ux的lvm之上,具有很好的并行度擴充,達到了優化目標。
卷管理器和文件系統是方便用戶使用的磁盤基本管理單元,在帶來了方便性的同時也可能會帶來些性能方面的問題。
文件系統帶來的主要障礙:
(1)、日志卷會對于更新帶來比較大的壓力。
文件系統的日志設備對于頻繁更新的文件系統可能會帶來一定的壓力,這個時候可以采用獨立日志設備來避免日志設備對于文件系統的IO影響。
(2)、元數據過大,會使文件系統的搜索延遲變強,特別是在尋找自由空間的時候。元數據過大主要表現在文件系統中的文件過多,達到幾千幾萬的范疇。從這點考慮必須考慮Oracle數據庫的數據文件不要和Oracle安裝軟件處于相同的文件系統。同樣太大的文件會需要更多的inode,自然也就需要更高的元數據搜索成本。
(3)、文件系統碎片,文件系統碎片導致的問題事實上就是元數據過大,使其尋求自由空間的成本變高。
一般現代文件系統采用Block,Extent的方式來管理文件,主要是為了提高性能。而Extent的全局管理則一般使用位圖。大家只要簡單考慮下Oracle的表空間管理,只要把文件系統的空間管理類似于Oracle表空間管理即可。在位圖模式下,Extent的大小并不會帶來多大的性能問題,但是為了支持Oracle全表掃描,必須要使文件系統的Extent大于Oracle全表掃描的范疇,一般為1M。當系統中存在大量的小空閑Extent的時候就會存在比較大的性能問題,在搜索自由空間的成本會大幅度增加,這個時候可能需要對于文件系統進行碎片整理。
一般來說,建議文件系統的Block Size=Oracle Block Size, Oracle extent size:=File system extent size * N,File system Exetnt Size至少要1M大小,并且是1M的倍數。
(4)、文件鎖,相對于lv使其并發能力會降低。
文件操作和lv操作不同,一般需要增加文件鎖,從而使其并發能力下降。不過現代文件系統都開始進行不需要文件鎖的實踐,增加了并行IO,降低或者徹底消除了文件鎖的需求。
文件系統的Buffer Cache:
文件系統的Buffer Cache在兩個層面會帶來收益:
(1)、讀操作
(2)、預讀緩存
在文件系統的Buffer帶來好處的同時可能會給Oracle帶來負面的影響,主要因素在于文件系統Buffer和Oracle SGA Buffer共享使用物理內存。當文件系統需要更多的內存而操作系統無法提供的時候將從Oracle SGA Buffer偷取內存,把Oracle SGA Buffer交換到磁盤上,從而導致Oracle性能大幅度下降。
為了使文件系統緩存不影響到Oracle SGA Buffer,必須保證文件系統緩存和Oracle SGA Buffer的共用內存不超過操作系統內存memory pin部分。一般而言,由于Oracle數據庫具有更加重要的價值,一般來說對于Oracle數據庫來說不建議緩存文件,或者僅僅分配很小的緩存空間。
比如:我們設置文件系統緩存最大不超過5%的內存,并且使系統有限交換文件頁,從而保留SGA Buffer在物理內存之中。具體如何設置,參考各自操作系統和文件系統。
來自 “ ITPUB博客 ” ,鏈接:http://blog.itpub.net/92650/viewspace-776769/,如需轉載,請注明出處,否則將追究法律責任。
總結
以上是生活随笔為你收集整理的oracle dbra,资源供给:IO子系统之二的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 网页如何截屏长图:f12 Ctrl
 - 下一篇: pandas用均值填充nan_pytho