hp glance

zhouwf0726發表於2018-12-30
常常有人會問,在HP-UX上面,採用glance,top,ps等工具察看程式的記憶體情況,各個資料之間的關係比較混亂,常常不能明白各個數值之間的關係,現在對此作一個簡要的說明。

在每個程式中,記憶體的使用分為多個型別,有TEXT(程式的可執行程式碼),DATA(資料,所有通過malloc,calloc等動態分配的資料在這裡),STACK(區域性變數,區域性陣列等會在這裡),SHM(共享記憶體),MEMMAP (動態連線庫的記憶體對映和通過mmap得到的記憶體,這又分為兩種,其一動態連結庫的可執行程式碼部分,這部分是各程式share的,還有一部分是動態連結庫的資料部分,這是private的),UAREA(每一個執行緒會有這麼一塊區域)。

在Glance看到的RSS是指在真實記憶體中的資料大小, VSS是虛擬記憶體的大小。

所以在Glance的 Memory report中看到的Text,DATA,STACK,Shmem就不難理解了。Other就是非Text, 非Data,非Stack,非Shmem的其他記憶體,如MEMMAP, UAREA,NULLDR等等。

所以以glance的memory report為基礎,各結果之間的計算關係為:

glance的Process Detail中的Total RSS/VSS = glance memory report中所有PRIV的記憶體大小 + (所有SHARE的記憶體大小/引用次數),由於share記憶體引用次數的不一樣,因此該值相對不準。

ps中的sz為glance中real的data, text, stack的總和,vsz為glance中virtual的data, text, stack的總和,不包含share memory,Other memory等

top中的SIZE為glance中virtual的data,text,stack和other的和
top中的RES為glance中memory report中所有標記為PRIV的記憶體大小的和。

所以各個程式之間得到的結果較為混亂,但是glance是比較全的。

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

相關文章