我需要找出進程分配多少內存頁面? 每頁是4096,進程內存使用情況我有一些問題找到正確的值。當我在尋找國美電器系統顯示器時,在內存映射下有幾個值可供選擇。找出一個進程在Linux上使用多少內存頁面
謝謝。
這是爲了將內存使用量除以頁數並驗證頁面大小。
我需要找出進程分配多少內存頁面? 每頁是4096,進程內存使用情況我有一些問題找到正確的值。當我在尋找國美電器系統顯示器時,在內存映射下有幾個值可供選擇。找出一個進程在Linux上使用多少內存頁面
謝謝。
這是爲了將內存使用量除以頁數並驗證頁面大小。
很難準確地分配正確的內存量:存在與其他進程共享的頁面(庫的部分部分),從未使用由brk
和匿名mmap
分配的內存,mmaped文件不能從磁盤完全獲取由於高效的處理算法,只觸及文件的一小部分等,換出頁面,髒頁面將被寫入磁盤等。
如果你想處理所有這些複雜性,並找出真正的計數頁面上,詳細信息可在/proc/<pid>/smaps
獲得,並且有工具,如mem_usage.py
或smem.pl
(易於使用)將其變爲或多或少可用的摘要。
這將是「駐留集大小」,假設您的進程不使用交換。
請注意,進程可能會分配更多的內存(「虛擬內存大小」),但只要它不寫入內存,它就不會由物理內存表示,無論是在RAM中還是在磁盤上。
一些系統工具,如top,顯示每個進程的「交換」的巨大價值 - 這當然是完全錯誤的,值是VMS和RSS之間的差異,很可能是那些未使用但分配的內存頁。