国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

Oracle 9i在AIX上的性能調整──內存篇

瀏覽:241日期:2023-11-29 12:20:41
Oracle 9i在AIX上的性能調整──內存篇

產品: AIX , Oracle

平臺: pSeries, AIX

版本: ALL

內存訪問的沖突出現(xiàn)在當進程申請的內存超過系統(tǒng)的物理內存總量時,為了處理這種情況,系統(tǒng)將程序與數(shù)據(jù)在內存和硬盤間進行交換。

控制內存交換操作(Paging)

大量的內存交換操作會極大地影響系統(tǒng)的性能,尤其是在當數(shù)據(jù)庫文件創(chuàng)建在文件系統(tǒng)上時(JFS and JFS2)。在這種情況下經常訪問的數(shù)據(jù),即在SGA中存在,也同樣在文件的緩存中存在。這種相同的數(shù)據(jù)在內存中緩存兩次的情況,會降低內存的使用效率,從而使內存頻繁進行交換操作,造成系統(tǒng)的I/O瓶頸,降低整個系統(tǒng)的性能。

調整AIX上的文件緩存

在AIX上,可以通過vmtune命令中的MINPERM和MAXPERM參數(shù),調整系統(tǒng)文件緩存來控制內存交換操作,MINPERM和MAXPERM參數(shù)的調整應遵照以下的原則:

當內存中的文件緩存頁在MINPERM以下時,內存頁交換算法同時交換文件緩存頁和程序頁(computational pages)

當內存中的文件緩存頁在MAXPERM以上時,內存頁交換算法只交換文件緩存頁。

當內存中的文件緩存頁在MINPERM和MAXPERM之間時,內存頁交換算法通常只交換文件緩存頁,但如果文件緩存頁的交換率大于程序頁時,程序頁也同樣被交換。

MINPERM和MAXPERM參數(shù)的缺省值

MINPERM = ((number of memory page) - 1024)*0.2

MAXPERM = ((number of memory page) - 1024)*0.8

可以用以下命令將MINPERM設為5%的內存頁,而MAXPERM設為20%的內存頁。

# vmtune -p 5 -P 20

缺省值分別為20%和80%。

在Oracle數(shù)據(jù)庫應用的環(huán)境下,可以將MINPERM和MAXPERM分別設為5%和20%甚至更小,從而使內存更多地被用于Oracle的SGA而不是系統(tǒng)的文件緩存。

配置足夠的交換區(qū)

如果交換區(qū)空間不足會造成系統(tǒng)響應速度變慢甚至掛起,交換區(qū)的大小取決于系統(tǒng)內存的大小以及應用程序對內存的需求。在AIX上可以動態(tài)增加交換區(qū),也可以用lsps命令察看交換區(qū)的使用狀況,以及用vmstat監(jiān)視系統(tǒng)內存頁交換的操作。

通常交換區(qū)的大小需要大于系統(tǒng)的實際內存,這主要取決于應用程序對內存的需求。用戶需要監(jiān)視交換區(qū)的使用狀況,根據(jù)需要增加交換區(qū)的空間。對于運行Oracle Application或Oracle development tools可能需要較大的交換空間。

排定內存需求優(yōu)先級

如果系統(tǒng)的內存不足,就需要對進程對內存使用的優(yōu)先級進行排序,將內存優(yōu)先分配給能獲得更好的系統(tǒng)總體性能的進程。通常的順序如下:

1. AIX和Oracle的核心進程

2. 應用程序進程

3. Oracle的Redo log buffer

4. PGA和共享池(shared pool)

5. Oracle的數(shù)據(jù)緩存(block buffer cache)

例如:當你查詢Oracle的動態(tài)性能表時發(fā)現(xiàn)共享池(shared pool)和數(shù)據(jù)緩存區(qū)(block buffer cache)都需要配置更多地內存,而你的系統(tǒng)中的空閑內存有限,那么將空閑內存分配給共享池比分配給數(shù)據(jù)緩存區(qū)有更好的效果。

數(shù)據(jù)塊(Database block)的大小

用戶可以選擇Oracle數(shù)據(jù)庫中數(shù)據(jù)塊的大小以獲得更好的性能,在AIX上通過設置DB_BLOCK_SIZE初始化參數(shù),選擇從2KB到32KB的數(shù)據(jù)塊,缺省值是4KB。如果數(shù)據(jù)文件在文件系統(tǒng)上,則Oracle數(shù)據(jù)塊的大小應為文件系統(tǒng)數(shù)據(jù)塊4KB的整倍數(shù)。如果數(shù)據(jù)文件在系統(tǒng)裸設備上,則Oracle數(shù)據(jù)塊的大小應為系統(tǒng)數(shù)據(jù)塊512B的整倍數(shù)。

Oracle公司推薦,對于在線交易的應用(OLTP)或混合型的應用環(huán)境,采用2KB或4KB的數(shù)據(jù)塊。對于BI的應用或決策支持系統(tǒng)(DSS),采用更大的數(shù)據(jù)塊,如8KB,16KB或32KB。

調整日志歸檔緩存(Log Archive Buffers)

配置較大的緩存可以提高數(shù)據(jù)庫日志歸檔的速度,但注意不要對整個系統(tǒng)的性能產生影響。用戶可以將LOG_ARCHIVE_BUFFER_SIZE增加到128KB (其缺省值為4KB),會提高0-20%的數(shù)據(jù)庫歸檔操作的性能。

調整SGA的大小

對于Oracle SGA來說,被系統(tǒng)的內存管理程序換出到交換區(qū)上,肯定是用戶最不愿意見到的情況,這就需要系統(tǒng)配置有足夠的內存。對于大量用戶同時在線的應用,建議配置較大的SGA區(qū)。對于SGA影響最大的參數(shù)是DB_BLOCK_BUFFERS和SHARED_POOL_SIZE。增大這兩個參數(shù),取決于用戶希望分配給SGA內存的大小,同時,增大這兩個參數(shù)也會造成CPU的利用率提高。

小結

合理的內存配置,是Oracle數(shù)據(jù)庫性能調整的重要方面,其根本的目標是,首先盡量避免系統(tǒng)內存頁的交換操作,然后盡量將應用程序經常用到的數(shù)據(jù)緩存在系統(tǒng)的SGA區(qū)中。

主站蜘蛛池模板: 五家渠市| 万载县| 离岛区| 乃东县| 巴林右旗| 隆尧县| 北票市| 民乐县| 北海市| 长治市| 莱西市| 石渠县| 无极县| 南开区| 兴化市| 洪湖市| 新乐市| 祥云县| 永清县| 阳西县| 乌兰浩特市| 安远县| 承德县| 沅陵县| 长沙市| 桂东县| 武山县| 茶陵县| 祥云县| 银川市| 江都市| 桐庐县| 罗田县| 南溪县| 定安县| 大方县| 汉沽区| 潮州市| 屯留县| 神农架林区| 盐源县|