GoldenGate通過CACHEMGR限制記憶體利用
阿新 • • 發佈:2019-01-22
今天客戶一個即將上線的資料庫報告無法連線了,馬上登入上去看,系統大量分頁,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使用量