aix上跑oracle,swap頻繁導致hdisk100%繁忙

tonglei2000發表於2017-03-29
使用者的p740上面oracle效能較差,然後開始了較長時間的測試。
32g的記憶體,sga原來設定的只有1.5gb。把sga給調整到20gb,pga設定為4gb。效能改善了一些。
兩天後oracle出現了不能響應的現象,檢視alert日誌,都是ora-3136的報錯。
判斷是oracle10g的bug,解決的辦法是
1.set INBOUND_CONNECT_TIMEOUT_<listenername>=0 in listener.ora
2. set SQLNET.INBOUND_CONNECT_TIMEOUT = 0 in sqlnet.ora of .
3. stop and start both listener and database.
4. Now try to connect to DB and observe the behaviour


然後偶爾出現hdisk0和hdisk1都是100%
可以肯定是swap的問題。
解決的辦法是把sga調整為16gb。並且設定aix的引數,不對sga進行swap。
執行下面的命令
vmo -p -o lru_file_repage=0
vmo -p -o minperm%=5
vmo -p -o maxclient%=15
vmo -p -o maxperm%=15

alter system set sga_max_size=16384M scope=spfile;
alter system set sga_target=16384M scope=spfile;
alter system set pga_aggregate_target=4096m scope=spfile;

(1) minperm%
如果由檔案頁面佔有的實際記憶體的百分比低於這個級別,則頁面替換演算法既替換檔案頁面也替換計算頁面,而不管repage rate。 
(2) maxperm%
如果由檔案頁面佔有的實際記憶體的百分比高於這個級別,則頁面替換演算法僅替換檔案頁面。 

3) maxclient%
如果由檔案頁面佔有的實際記憶體的百分比高於這個級別,則頁面替換演算法僅替換客戶機頁面。

其實還應該把sga給pin在記憶體中
但是因為10.2。0.4中有一個bug,所以沒有做,按照描述,正確的做法是

vmo -p -o v_pinshm=1
vmo -p -o maxpin% = 80  
修改使用者的功能
chuser capabilities=CAP_BYPASS_RAC_VMM,CAP_PROPAGATE oracle
vmo -p -o lgpg_regions=1025 -o lgpg_size=16777216 #lgpg_regions值的大小的計算公式:num_of_large_pages = INT(sga*1024*1024-1)/16MB)+1
int(16*1024*1024-1/16)+1=1025

如果使用失敗,使用下面的命令取消大頁面
vmo -p -o lgpg_regions=0 -o lgpg_size=0 #去掉大頁面
alter system set lock_sga=true scope=spfile;

有文件說10.2.0.4使用下面的profile檔案可以
export ORACLE_SGA_PGSZ=16M



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13337857/viewspace-2136296/,如需轉載,請註明出處,否則將追究法律責任。

相關文章