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

개요

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

ppgsz(1)

ppgsz(1)                         User Commands                        ppgsz(1)



NAME
       ppgsz - set preferred page size for stack, heap, and/or other anonymous
       segments

SYNOPSIS
       /usr/bin/ppgsz [-F] -o option[,option] cmd | -p pid...


DESCRIPTION
       The ppgsz utility sets the preferred page size for stack, heap,  and/or
       other  anonymous  segments  for  the  target  process(es), that is, the
       launched cmd or the process(es) in the pid list. ppgsz stops the target
       process(es) while changing the page size. See memcntl(2).

OPTIONS
       The following options are supported:

       -F

           Force.   Sets   the  preferred  page  size  options(s)  for  target
           process(es) even if controlled by other process(es). Caution should
           be exercised when using the -F flag. See proc(1).


       -o option[,option]

           The options are:

           heap=size     This option specifies the preferred page size for the
                         heap of the target process(es). heap is defined to be
                         the  bss  (uninitialized  data) and the brk area that
                         immediately follows the bss (see  brk(2)).  The  pre‐
                         ferred  heap  page  size is set for the existing heap
                         and for any additional heap memory allocated  in  the
                         future. See NOTES.


           stack=size    This option specifies the preferred page size for the
                         stack of the target process(es). The preferred  stack
                         page  size  is  set  for the existing stack and newly
                         allocated parts of the stack as it expands.


           anon=size     This option specifies the preferred page size for all
                         existing MAP_PRIVATE anonymous segments of the target
                         process(es), other than heap  and  stack,  which  are
                         large  enough to fit at least one aligned page of the
                         specified size.  For  the  segments  that  are  large
                         enough,  the  preferred  page size is set starting at
                         the first size-aligned address in  the  segment.  The
                         anon preferred pagesize is not applied to MAP_PRIVATE
                         anonymous  segments  created  in  the   future.   See
                         MAP_ANON in mmap(2).

                         Anonymous memory refers to MAP_PRIVATE pages that are
                         not directly associated with a file in some  filesys‐
                         tem.  The  ppgsz  command  uses memcntl(2) to set the
                         preferred  page  size  for  anonymous  segments.  See
                         MC_HAT_ADVISE in memcntl(2).

           At least one of the above options must be specified.

           size must be a supported page size (see pagesize(1)) or 0, in which
           case the system will select an appropriate  page  size.  See  memc‐
           ntl(2).

           size  defaults to bytes and can be specified in octal (0), decimal,
           or hexadecimal (0x). The numeric value can be qualified with K,  M,
           G,  or  T to specify Kilobytes, Megabytes, Gigabytes, or Terabytes,
           respectively. 4194304, 0x400000, 4096K, 0x1000K, and 4M are differ‐
           ent ways to specify 4 Megabytes.


       -p pid

           Sets  the  preferred page size option(s) for the target process(es)
           in the process-id (pid) list following the -p option. The pid  list
           can  also consist of names in the /proc directory. Only the process
           owner or the super-user is permitted to set page size.

           cmd is interpreted if -p is not specified. ppgsz launches  cmd  and
           applies page size option(s) to the new process.

           The  heap  and  stack  preferred  page  sizes  are inherited. Child
           process(es) created (see fork(2)) from the launched process or  the
           target  process(es)  in  the  pid  list  after ppgsz completes will
           inherit the preferred heap and stack page sizes. The preferred page
           sizes  of all segments are set back to the default system page size
           on exec(2) (see getpagesize(3C)). The preferred page size  for  all
           other  anonymous  segments  is  not  inherited  by  children of the
           launched or target process(es).


EXAMPLES
       Example 1 Setting the preferred heap and stack page size


       The following example sets the preferred heap page size to 4M  and  the
       preferred  stack  page size to 512K for all ora—owned processes running
       commands that begin with ora:


         example% ppgsz -o heap=4M,stack=512K -p `pgrep -u ora '^ora'`



       Example 2 Setting the preferred anonymous page size


       The following example sets the preferred page size of existing qualify‐
       ing anonymous segments to 512k for process ID 953:


         example% ppgsz -o anon=512k -p 953



EXIT STATUS
       If  cmd  is  specified and successfully invoked (see exec(2)), the exit
       status of ppgsz will be the exit status of cmd. Otherwise,  ppgsz  will
       exit with one of the following values:

       0      Successfully set preferred page size(s) for processes in the pid
              list.


       125    An error occurred in ppgsz. Errors  include:  invalid  argument,
                 invalid  page size(s) specified, and failure to set preferred
              page size(s) for one or more processes in the pid list or cmd.


       126    cmd was found but could not be invoked.


       127    cmd could not be found.


FILES
       /proc/*                     Process files.


       /usr/lib/ld/map.bssalign    A template link-editor mapfile for aligning
                                   bss (see NOTES).


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




       tab()   box;   cw(2.75i)  |cw(2.75i)  lw(2.75i)  |lw(2.75i)  ATTRIBUTE
       TYPEATTRIBUTE VALUE _  Availabilitysystem/core-os  Interface  Stabil‐
       ityCommitted


SEE ALSO
       ld(1),  mpss.so.1(1),  pagesize(1), pgrep(1), pmap(1), proc(1), brk(2),
       exec(2),  fork(2),  memcntl(2),  mmap(2),   sbrk(2),   getpagesize(3C),
       proc(4), attributes(5)


       Oracle Solaris 11.3 Linkers and Libraries         Guide

NOTES
       Due  to  resource  constraints,  the setting of the preferred page size
       does not necessarily guarantee that the target process(es) will get the
       preferred page size. Use pmap(1) to view the actual heap and stack page
       sizes of the target process(es) (see pmap -s option).


       Large pages are required to be mapped at addresses that  are  multiples
       of  the  size  of  the large page. Given that the heap is typically not
       large page aligned, the starting portions of the heap (below the  first
       large  page  aligned  address)  are  mapped with the system memory page
       size. See getpagesize(3C).


       To provide a heap that will be mapped with a large page size, an appli‐
       cation  can be built using a link-editor (ld(1)) mapfile containing the
       bss segment declaration directive. See Chapter 9, Mapfiles,  in  Oracle
       Solaris  11.3  Linkers  and Libraries         Guide for more details of
       this   directive    and    the    template    mapfile    provided    in
       /usr/lib/ld/map.bssalign.  Users are cautioned that an alignment speci‐
       fication may be machine-specific and may lose its benefit on  different
       hardware  platforms. A more flexible means of requesting the most opti‐
       mal underlying page size may evolve in future releases.


       mpss.so.1(1), a pre-loadable shared object, can also be used to set the
       preferred stack and/or heap page sizes.



SunOS 5.11                        16 Sep 2014                         ppgsz(1)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3