NAME
vps_chatr_ceiling — maximum (in kilobytes) of user selectable page size
VALUES
Allowed values
Minimum:
4 (KB)
Maximum:
1048576 (KB)
DESCRIPTION
The Translation Look-aside Buffer (TLB) is a microprocessor feature
for virtual memory, where the most recent physical to virtual address
translations are cached, in the expectation that these translations
are likely to be needed again soon.
This is based on the principles of spatial and temporal locality
of address references in programs.
Historically, the TLB was entirely managed within hardware to
achieve speed optimizations while sacrificing the flexibility
of software implementations.
For example, easily changed algorithms or table implementations.
In recent years, the flexibility of a software implementation
of the TLB has regained importance over pure hardware speed.
Specifically, the idea of logical grouping of physical frames
(whose size is fixed in hardware) into 'superpages' or
'large pages', which can be represented in software TLB
algorithms using a single base address translation for many
physical frames, significantly reduces the lost cycles due to
page faults assuming reasonable spatial and temporal locality.
For example, consider a scientific application working on an
array where each element requires 1K of memory.
Using the usual 4K physical frame size and referencing the array
sequentially causes a page fault that requires the page be
read into memory from disk or swap, and loads the TLB with the
frame base address translation every fifth element.
This tunable sets the upper bound for virtual page size requested
by a user application, as set with the
chatr
command on the binary.
Who is Expected to Change This Tunable?
Anyone.
Restrictions on Changing
Changes to this tunable take effect at the next reboot.
When Should the Value of This Tunable Be Raised?
This tunable should be raised when a user application with
known large memory set usage (such as a database) is expected to
need larger pages than the current value allows.
What Are the Side Effects of Raising the Value?
The side effects depend on the actual memory usage of the chatr'ed
application, and if many users on the system
chatr
their applications for no good reason.
In the first case, mistakenly chatr'ing an application to use
a large page size (512 MB or more) when the application uses
memory in a sparse pattern, or has a much smaller working set
in general. For example, an application uses a shell script which
only needs 64KB of memory total, or a scientific spare array analysis
program that works on large data sets, but only on very small
portions of the data where the rest can be swapped out or not
even allocated.
Setting this value for the application will result in several frames
of physical memory being wasted if any of a virtual large page
is in core memory then all of it must be there.
This is true because a virtual large page must be constructed
of contiguous physical frames, which may not always be available
in the quantity desired, leading to unneeded allocation delays.
In the second case, where several users
chatr
their application for no good reason, keeping this tunable low
minimizes the performance hit on the rest of the system.
When Should the Value of This Tunable Be Lowered?
This tunable should be lowered if no user application actually
needs large pages sized at the current tunable value to minimize
the chance of a mistaken or malicious user causing wasted
physical frames when using
chatr
with their applications.
What Are the Side Effects of Lowering the Value?
The only side effect is that applications must run with
smaller page sizes.
What Other Tunables Should Be Changed at the Same Time?
None.
WARNINGS
All HP-UX kernel tunable parameters are release specific.
This parameter may be removed or have its meaning changed in
future releases of HP-UX.
AUTHOR
vps_chatr_ceiling
was developed by HP.