User Tools

Site Tools


proc:smaps_file

This is an old revision of the document!


Proc - smaps file

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.

The /proc/PID/smaps is an extension based on maps, showing the memory consumption for each of the process's mappings. For each of mappings there is a series of lines such as the following:

08048000-080bc000r-xp0000000003:0213130/bin/bash
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

The first of these lines shows the same information as is displayed for the mapping in /proc/PID/maps. The remaining lines show the size of the mapping (size), the amount of the mapping that is currently resident in RAM (RSS), the process' proportional share of this mapping (PSS), the number of clean and dirty private pages in the mapping. Note that even a page which is part of a MAP_SHARED mapping, but has only a single pte mapped, i.e. is currently used by only one process, is accounted as private and not as shared. “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.

This file is only present if the CONFIG_MMU kernel configuration option is enabled.

proc/smaps_file.1491386333.txt.gz · Last modified: 2020/07/15 09:30 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki