操作系統(tǒng)資源對性能的重要性
數(shù)據(jù)庫是建立在服務(wù)器的操作系統(tǒng)上的一款軟件,所以的性能非常依賴服務(wù)器的硬件和操作系統(tǒng)的性能。因此,在診斷性能問題時,應(yīng)將操作系統(tǒng)資源指標視為整體性能指標的一部分。其中CPU、內(nèi)存、I/O是既相互獨立又相互關(guān)聯(lián)的三大操作系統(tǒng)資源。
CPU資源
CPU資源是否緊張可通過檢查CPU的利用率及等待運行的進程數(shù)量來了解,CPU運算速度主要受主頻( Clock Speed )高低和緩存( Cache )大小影響。
比如,在OLTP業(yè)務(wù)系統(tǒng)中,由于每個CPU在特定時間內(nèi)只允許一個進程運行,所以這里的CPU個數(shù)決定著事務(wù)的運行效率。而在OLAP系統(tǒng)中,由于并發(fā)需求不高,反而每次運算的時間較長,所以這個時候CPU的主頻決定了事物的運行效率。
在很多的管理員中,認為CPU資源使用率越高說明的性能越差,但是這個不是批評性能優(yōu)劣的唯一指標。因為合理并最大限度地利用系統(tǒng)資源是數(shù)據(jù)庫優(yōu)化的目標之一。
內(nèi)存資源
我們經(jīng)常講的內(nèi)存資源,主要包括物理內(nèi)存和虛擬內(nèi)存兩個方面。當進程需要新的內(nèi)存資源,而實際內(nèi)存資源不足的時候,系統(tǒng)會把部分活動性弱的內(nèi)存數(shù)據(jù)寫人虛擬內(nèi)存,在進程需要的時候再次從虛擬內(nèi)存中讀出。為提高運行性能,則要求沒有進程被交換到虛擬內(nèi)存中。
確實這樣子把數(shù)據(jù)全部放在內(nèi)存中,可以提高數(shù)據(jù)庫性能,但是大內(nèi)存并不能保證數(shù)據(jù)庫系統(tǒng)的性能一定很優(yōu)良。雖然數(shù)據(jù)塊的 CACHE命中率為100%,但并不能保證SQL的運行效率高。提高SQL運行效率的優(yōu)化思路是降低SQL的邏輯讀取數(shù)據(jù)塊數(shù)量。內(nèi)存一直是數(shù)據(jù)庫性能優(yōu)化時的重點優(yōu)化對象,內(nèi)存分配沒有多少之分oracle數(shù)據(jù)庫平臺特點,夠用就行。
I/O資源
I/O資源是系統(tǒng)資源中最慢的活動,存儲I/O能力的高低通常用吞吐量、IOPS (I/O 每秒進行操作的次數(shù))、磁盤響應(yīng)時間等指標來區(qū)分。
決定存儲性能的主要因素在于存儲陣列的算法、Cache命中率,以及磁盤數(shù)、存儲I/O總線的寬度。Cache 的命中率取決于Cache的算法、的大小以及數(shù)據(jù)的訪問規(guī)則。一般Cache的讀命中率越高,支持的IOPS也就越高,因此,每個物理硬盤能處理的IOPS是有限制的。
存儲的I/O響應(yīng)緩慢往往是由以下因素引起的:
1、當應(yīng)用所發(fā)起的IOPS超過物理磁盤的理論IOPS時,系統(tǒng)的I/O能力將急劇下降。
2、熱點盤。即數(shù)據(jù)訪問集中在幾張盤上。
3、系統(tǒng)大量交換導(dǎo)致本地盤繁忙。
4、不合理的RAID配置模式。
5、存儲性能瓶頸。主要表現(xiàn)為控制器不足或者I/O通道堵塞。
6、磁盤轉(zhuǎn)速較低。
7、硬件故障,比如存儲硬件的CACHE算法故障,導(dǎo)致命中率不夠oracle數(shù)據(jù)庫平臺特點,最后導(dǎo)致I/O響應(yīng)時間長。