User Tools

Site Tools


proc:smaps_file

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
proc:smaps_file [2017/04/05 09:52] – created peterproc:smaps_file [2020/07/15 09:30] (current) – external edit 127.0.0.1
Line 1: Line 1:
 ====== Proc - smaps file ====== ====== Proc - smaps file ======
 +
 +The **/proc/PID/smaps** is an extension based on maps, showing the memory consumption for each of the process's mappings.  This file is only present if the **CONFIG_MMU** kernel configuration option is enabled.
 +
 +For SMP CONFIG users.
 +
 +For making accounting scalable, RSS related information are handled in asynchronous manner and the value may not be very precise.  To see a precise snapshot of a moment, you can see **/proc/<pid>/smaps** file and scan page table.  It's slow but very precise.
 +
 +For each of mappings there is a series of lines such as the following:
 +
 +^address^perms^offset^dev^inode^pathname^
 +|08048000-080bc000|r-xp|00000000|03:02|13130|/bin/bash|
 +
 +This shows the same information as is displayed for the mapping in [[Proc:maps file|/proc/PID/maps]].
 +
 +Additional information is also shown:
 +
 +|Size:|1084 kB|
 +|Rss:|892 kB|
 +|Pss:|374 kB|
 +|Shared_Clean:|892 kB|
 +|Shared_Dirty:|0 kB|
 +|Private_Clean:|0 kB|
 +|Private_Dirty:|0 kB|
 +|Referenced:|892 kB|
 +|Anonymous:|0 kB|
 +|Swap:|0 kB|
 +|KernelPageSize:|4 kB|
 +|MMUPageSize:|4 kB|
 +
 +where:
 +
 +  * **Size** is the size of the mapping.
 +  * **RSS** is the amount of the mapping that is currently resident in RAM.
 +  * **PSS** is the process' proportional share of this mapping.
 +  * **Shared_Clean** is the number of clean shared pages in the mapping.
 +  * **Shared_Dirty** is the number of dirty shared pages in the mapping.
 +  * **Private_Clean** is the number of clean private pages in the mapping.
 +  * **Private_Dirty** is the number of dirty private pages in the mapping.
 +  * **Referenced** indicates the amount of memory currently marked as referenced or accessed.
 +  * **Anonymous** shows the amount of memory that does not belong to any file.
 +    * Even a mapping associated with a file may contain anonymous pages: when **MAP_PRIVATE** and a page is modified, the file page is replaced by a private anonymous copy.
 +  * **Swap** shows how much would-be-anonymous memory is also used, but out on swap.
 +  
 +**NOTE:**  Even a page which is part of a **MAP_SHARED** mapping, but which only has a single private mapped, i.e. is currently used by only one process, is accounted as __private__ and not as shared.  
  
proc/smaps_file.1491385955.txt.gz · Last modified: 2020/07/15 09:30 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki