Pagemapvisual
-------------------------------------
1. What is it?
    Pagemapvisual is simple script written in Python enables
    system administrators (or another user with root privileges)
    read kernel pagemap interface and show given data as charts using matplotlib.

   Some examples of use with output plots: 
        http://pholasek.fedorapeople.org/pagemapvisual-doc/

2. What is provided by pagemap interface?

   USS and PSS metrics
   shared memory per process statistics
   accurate swap count
   accurate amount of resident memory 
   a lot of flags for every physical page in system
    - further info Documentation/vm/pagemap.txt

3. Usage

    usage: pagemapvisual [-h] [--stat [STAT]] [--label [LABEL]]
                         [--filtery [FILTERY]] [--logy] [--limity [LIMITY]]
                         {pagecount,pageflags,pagemap} {bar,pie,csv}

    positional arguments:
      {pagecount,pageflags,pagemap}
                            source of data
      {bar,pie,csv}             type of chart

    optional arguments:
      -h, --help            show this help message and exit
      --stat [STAT]         type of statistics to plot STAT=[uss|pss|shr|swap|res]
                            uss is default
      --label [LABEL]       type of label on pagemap statistics LABEL=[name|pid]
      --filtery [FILTERY]   filter used for y-axis values FILTERY=[[from]:[to]]
      --logy                enable log scale on y-axis
      --limity [LIMITY]     eliminates results to first/last y-values
                            LIMITY=[[+|-]NUMBER]


4. Examples

pagemapvisual pagecount pie --filtery=1000: 
    - shows groups of all pages with same mapcount number which have more
      than 1000 members in pie graph

pagemapvisual pagecount bar --filtery=50000: 
    - shows groups of all pages with same mapcount number which have more
      than 1000 members in bar graph

pagemapvisual pagemap pie --filtery=:10000 --limity=10 
    - shows 10 largest groups of all pages with same mapcount number which
      have more than 1000 members in bar graph

pagemapvisual pagemap bar --filtery=:100000 --limity=10 --stat=swap
    - shows first 10 processes with more than 100000 kB in swap

pagemapvisual pagemap bar --limity=-10 --stat=shr
    - shows first ten processes with smallest amount of shared memory


5. Bugreports/bugfixes to:

Petr Holasek <pholasek@redhat.com>
