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 a process with both {PRIV_PROC_OWNER} and at least as many
           privileges as the target process 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).


       -?
       --help

           Print usage message and immediately exit.



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(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 StabilityCommit‐
       ted


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(5), attributes(7), privileges(7)


       Oracle Solaris 11.4 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 10, Mapfiles in the
       Link-Editor in Oracle Solaris 11.4 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.


       For a more complete description of the privilege requirements  to  con‐
       trol an existing process, see the Programming Notes section of proc(5).



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