pmadvise(1) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

pmadvise(1)

pmadvise(1)                      User Commands                     pmadvise(1)



NAME
       pmadvise - applies advice about memory to a process

SYNOPSIS
       pmadvise [-Flv] [-o option[,option]
           [--scale[=item1,item2,...]] pid...

DESCRIPTION
       pmadvise  applies  advice  about  how  memory  is used in the specified
       process using madvise(3C).


       pmadvise allows users to apply advice to a specific sub-range at a spe‐
       cific  instant  in  time.  pmadvise  differs  from madv.so.1(1) in that
       madv.so.1(1) applies the advice throughout execution of the target pro‐
       gram to all segments of a specified type.

OPTIONS
       The following options are supported:

       -F

           Force  by  grabbing  the target process even if another process has
           control.

           You should exercise caution when using the -F option. See proc(1).


       -h

           On verbose output, memory sizes are scaled to a human readable for‐
           mat.  The  -h  option  is  equivalent to using the --scale=max,1024
           option.


       -l

           Show unresolved dynamic linker map names.


       -o

           Specify advice to apply in the following form:




             private=advice
             shared=advice
             heap=advice
             stack=advice
             address[:length]=advice

           where the advice can be one of the following:




             normal
             random
             sequential
             willneed
             dontneed
             free
             access_lwp
             access_many
             access_many_pset
             access_default



           An address and length can be given to specify a subrange  to  apply
           the advice. The address should be hexadecimal and the length should
           be in bytes by default.

           If length is not specified and the starting address refers  to  the
           start  of  a segment, the advice is applied to that segment. length
           can have a fractional part, and can be qualified with a K, M, G, T,
           P,  or  E  scale  factor, denoting kilobytes, megabytes, gigabytes,
           terabytes, petabytes, or exabytes respectively.


       -v

           Print verbose output. Display output as pmap(1) does, showing  what
           advice  is  being applied where. This can be useful when the advice
           is being applied to a named region (for example,  private,  shared,
           and  so forth) to get feedback on exactly where the advice is being
           applied.


       --scale[=item1,item2,...]

           On verbose output, memory sizes are scaled to a human readable for‐
           mat,  for  example,  14K,  234M,  2.7G, or 3.0T. Scaling is done by
           repetitively dividing by 1024, unless otherwise specified.

           --scale specified without arguments enables default scaled  output,
           and is equivalent to --scale=max,1024.

           --scale can be specified with the following arguments.

           binary

               Scaling  is  done by repetitively dividing by a scale factor of
               1024. The use of binary scaling is indicated by the addition of
               an 'i' modifier to the suffix (Ki, Mi, Gi, ...).


           max

               Values  are  scaled  to  the  largest unit for which the result
               retains a non-zero integer part. Up  to  2  decimal  places  of
               fractional output may be shown.


           min

               Values  are  scaled to the smallest unit capable of showing the
               full value within the allotted space of  5  columns,  and  dis‐
               played without the use of fractional output.


           minwide

               Values  are  scaled to the smallest unit capable of showing the
               full value within the allotted space of  8  columns,  and  dis‐
               played without the use of fractional output.


           1000

               Scaling  is  done by repetitively dividing by a scale factor of
               1000.


           1024

               Scaling is done by repetitively dividing by a scale  factor  of
               1024.



       -?
       --help

           Print usage message and immediately exit.




       pmadvise  tries  to  process  all  legal options. If an illegal address
       range is specified, an error  message  is  printed  and  the  offending
       option  is  skipped.  pmadvise quits without processing any options and
       prints a usage message when there is a syntax error.


       If conflicting advice is given on a region, the order of precedence  is
       from  most  specific  advice  to least, that is, most general. In other
       words, advice specified for an explicit address range takes  precedence
       over  advice  for  heap  and  stack which in turn takes precedence over
       advice for private and shared memory.


       Moreover, the advice in each  of  the  following  groups  are  mutually
       exclusive from the other advice within the same group:



         MADV_NORMAL, MADV_RANDOM, MADV_SEQUENTIAL
         MADV_WILLNEED, MADV_DONTNEED, MADV_FREE
         MADV_ACCESS_DEFAULT, MADV_ACCESS_LWP, MADV_ACCESS_MANY




OPERANDS
       The following operands are supported:

       pid    Process ID.


EXAMPLES
       Example 1 Applying Advice to a Segment at Specified Address



       The  following  example  applies  advice  to  a  segment at a specified
       address:




         % pmap $$ | grep heap
         00000001AEC8C000    8K rw-----  [ heap ]
         %
         % pmadvise -o 78000=access_lwp $$

         %


       Example 2 Using the -v Option



       The following example displays verbose output  from  pmadvise.  In  the
       interest of brevity, some output has been elided.



         % pmadvise -o heap=access_lwp,stack=access_default -v $$
         0000000100000000 1728K r-x----  [ text ] /usr/bin/sh
         00000001001B0000   56K r-x----  [ text ] /usr/bin/sh
         00000001002BE000    8K rwx----  [ data ] /usr/bin/sh
         00000001002C0000   64K rwx----  [ data ] /usr/bin/sh
         00000001002D0000   16K rwx----  [ data ] /usr/bin/sh
         0000000100300000   24K rw-----  [ bss ] /usr/bin/sh
         0000000EEBFC4000    8K rw-----  [ heap ]        <= access_lwp
         0007FCB434C00000 2176K r-x----  [ text ] /lib/sparcv9/libc.so.1
         ...
         0007FCB435000000  704K r-x----  [ text ] /lib/sparcv9/libm.so.2
         ...
         0007FCB435200000  256K r-x----  [ text ] /lib/sparcv9/ld.so.1
         ...
         0007FCB435370000  128K rw-----  [ anon ]
         ...
         FFFFFCFCE72A0000   64K rw-----  [ stack ]       <= access_default
         FFFFFCFCE72B0000   40K rw-----  [ stack ]       <= access_default




EXIT STATUS
       The following exit values are returned:

       0           Successful completion.


       non-zero    An error occurred.


FILES
       /proc/*            Process files


       /usr/prob/lib/*    proc tools support files


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       tab()  box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE TYPEAT‐
       TRIBUTE VALUE _  Availabilitysystem/core-os  _  Interface  StabilitySee
       below.



       The command syntax is Committed. The output formats are Uncommitted.

SEE ALSO
       madv.so.1(1), pmap(1), proc(1), madvise(3C), attributes(7)



Oracle Solaris 11.4             29 October 2021                    pmadvise(1)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3