svcadm(8)을 검색하려면 섹션에서 8 을 선택하고, 맨 페이지 이름에 svcadm을 입력하고 검색을 누른다.
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)