經常有人問到如何在Unix下确定程序消耗的記憶體資源,以及為何Top工具的顯示非常高。
有人說Top的輸出不精确,這種說法是不确切的。實際上是Top輸出顯示的Oracle程序記憶體使用,包含了SGA部分。這也是SGA的意義所在。
SGA可以被共享,可以被所有程序所通路,在程序的尋址空間裡就包含了SGA的大小。
至于如何更為精确的确定程序的記憶體消耗,本文簡要介紹如下(在QuickIO下,你可能無法看到本文描述情況):
1.系統平台及資料庫版本
2.Top輸出
3.Pmap輸出及程序記憶體計算
計算背景程序使用的記憶體資源:
337360K - 266240K = 71,120k
這就是一個程序所消耗的記憶體.
4.使用者程序記憶體使用舉例
從PMAP的輸出中我們可以看到程序所調用的庫檔案等,及其讀寫狀态。