GoldenGate通過CACHEMGR限制記憶體利用

westzq1984發表於2012-06-21
今天客戶一個即將上線的資料庫報告無法連線了,馬上登入上去看,系統大量分頁,77G記憶體的機器,交換分割槽利用率達到70%,還一直在增加

馬上svmon -U看了下,發現ggs使用者用了32GB記憶體,馬上意識到ogg有問題,立馬停掉。記憶體使用一下就降下來了

檢查extract程式日誌,lag延遲了2小時,檢查生成的trail,發現最近2個小時生成的trail極多

嘗試啟動extract,發現主機記憶體馬上就上去了。檢視了長事務,發現還比較多。立馬重新停掉

想到OGG的記憶體限制應該是作業系統使用者記憶體限制

馬上把ggs使用者的記憶體限制設定為1GB,記憶體還是繼續消耗的很快

嘗試了128MB限制,嘗試設定硬限制,還是沒辦法,記憶體吃的飛快。

最後檢視文件,發現通過cachemgr可以設定用來cache沒有提交的資料的虛擬記憶體大小和臨時空間

雖然文件不建議設定,由系統自動管理。但是沒辦法,不設定記憶體吃的太快了

-- 未設定前:
CACHEMGR virtual memory values (may have been adjusted)                      
CACHESIZE:                               64G                                 
CACHEPAGEOUTSIZE (normal):                8M                                 
PROCESS VM AVAIL FROM OS (min):         128G                                 
CACHESIZEMAX (strict force to disk):     96G       

-- 設定 CACHEMGR CACHESIZE 4GB
CACHEMGR virtual memory values (may have been adjusted)
CACHESIZE:                                4G
CACHEPAGEOUTSIZE (normal):                8M
PROCESS VM AVAIL FROM OS (min):           8G
CACHESIZEMAX (strict force to disk):   6.91G

CACHESIZE:EXTRACT程式可用的用於快取未提交的事務資料的初始化分配的VM容量。通過CACHESIZE選項指定
CACHEPAGEOUTSIZE:事務資料將被考慮來交換到硬碟的閥值。通過CACHEPAGEOUTSIZE選項控制
PROCESS VM AVAIL FROM OS:程式可以使用的VM的容量的近似值,預設比系統實體記憶體+交換分割槽容量略低,一般為CACHESIZE的兩倍
CACHESIZEMAX:指定進行CACHEPAGEOUTSIZE時的閥值,超過該值進行長事務的PAGEOUT,低於該值停止PAGEOUT

總的來說:
EXTRACT啟動時,會分配CACHESIZE大小的VM來快取事務資料
能夠用來快取事務資料的VM的大小,為PROCESS VM AVAIL FROM OS
當VM使用達到CACHESIZEMAX時,考慮將資料資料大於CACHEPAGEOUTSIZE的事務pageout入磁碟

通過設定CACHEMGR CACHESIZE 可以來控制OGG程式的記憶體使用
通過send extract extxz, CACHEMGR CACHESTATS,可以看當前程式的vm使用量


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

相關文章