2009-11-22 49 views
1

我需要找出進程分配多少內存頁面? 每頁是4096,進程內存使用情況我有一些問題找到正確的值。當我在尋找國美電器系統顯示器時,在內存映射下有幾個值可供選擇。找出一個進程在Linux上使用多少內存頁面

謝謝。

這是爲了將內存使用量除以頁數並驗證頁面大小。

回答

5

很難準確地分配正確的內存量:存在與其他進程共享的頁面(庫的部分部分),從未使用由brk和匿名mmap分配的內存,mmaped文件不能從磁盤完全獲取由於高效的處理算法,只觸及文件的一小部分等,換出頁面,髒頁面將被寫入磁盤等。

如果你想處理所有這些複雜性,並找出真正的計數頁面上,詳細信息可在/proc/<pid>/smaps獲得,並且有工具,如mem_usage.pysmem.pl(易於使用)將其變爲或多或少可用的摘要。

0

這將是「駐留集大小」,假設您的進程不使用交換。

請注意,進程可能會分配更多的內存(「虛擬內存大小」),但只要它不寫入內存,它就不會由物理內存表示,無論是在RAM中還是在磁盤上。

一些系統工具,如top,顯示每個進程的「交換」的巨大價值 - 這當然是完全錯誤的,值是VMS和RSS之間的差異,很可能是那些未使用但分配的內存頁。

相關問題