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