HP-UX Programmer's Guide for Java 2
Table Of Contents
- Table of Contents
- 1 Introduction
- 2 HotSpot Technology Tools and Commands
- 3 Configuration for Java™ Support
- 4 Performance and Tuning
- 5 Measuring System Performance
- 6 Using Threads
- 7 Using Signals
- 8 Using Java™ 2 JNI on HP-UX
- 9 Expanding Memory
- Determine your requirements
- Memory layout under HP-UX 11.0 (PA-RISC only)
- Additional memory available under HP-UX 11i (PA-RISC only)
- Allocating physical memory and swap in the Java™ heap
- Useful key command-line options for allocating memory
- Application-dependent considerations using large heap size HP-UX 11i PA-RISC
- Expanding heap size in native applications on PA-RISC HP-UX 11.11 and later releases
- Expanding heap size in native applications on Integrity HP-UX 11.23 and later releases
- Expanding heap size in HP-UX PA-RISC
- Expanding heap size in HP-UX Integrity
- 10 Diagnosing Memory Leaks
- A JDK/JRE 6.0.n and 7.0.n Usage Notes
- Using Java 2 JNI on HP-UX
- Garbage collection
- Asian TrueType fonts and Asian locales
- Date/Time methods defaults
- Profiling
- Compatibility with previous releases
- Java Cryptography Extension (JCE) policy files
- Configuring the Java Runtime Plug-In
- CLASSPATH environment variable
- Java Web Start technology usage
- Upgrading from a previous Java Web Start version
- IPv6 support
- Allocation Site Statistics and Zero Preparation -Xverbosegc
- JDK 6.0.04 flags
- GC log-rotation support
- NUMA collector enhancements
- ThreadDumpPath support
- Garbage-First garbage collector (-XX:+UseG1GC)
- jmap, jinfo, and jstack tools included in JDK 6.0.03
- Additional Java Web Start documentation
- B JDK/JRE 5.0.n Usage Notes
- Using Java 2 JNI on HP-UX
- Garbage collectors: Parallel and Concurrent Mark Sweep
- Allocating physical memory and swap in the Java heap
- Asian TrueType fonts and Asian locales
- Date/Time methods defaults
- Profiling
- Closing a socket (PA-RISC only)
- Compatibility with previous releases
- Java Cryptography Extension (JCE) policy files
- Allocation Site Statistics and Zero Preparation -Xverbosegc
- IPv6 support on Java 5.0
- GC log-rotation support in 5.0
- ThreadDumpPath support in 5.0
- Dynamically loaded libraries in 5.0
- Performance improvement for String.intern()
- Configuring the Java Runtime Plug-In
- CLASSPATH environment variable
- Java Web Start technology usage
- C SDK/RTE 1.4.2.n Usage Notes
- Removing support for unwanted architectures in the JRE
- Support for dynamic thread local storage (TLS)
- Signal Chaining functionality
- Using Java 2 JNI on HP-UX
- HotSpot JVM options
- Garbage collectors: Parallel and Concurrent mark sweep
- Allocating physical memory and swap in the Java heap
- Asian TrueType fonts and Asian locales
- Date/Time methods defaults
- Profiling
- Closing a socket when accept or read is pending (PA-RISC) - new patch information!
- Compatibility with previous releases
- Runtime Plug-In usage and configuration
- GC log-rotation support
- ThreadDumpPath support
- D Additional Resources
- Index

3 Configuration for Java™ Support
Unless specified otherwise, the information in this chapter applies to both HP-UX
PA-RISC and
HP-UX Itanium® Processor Family systems.
In addition, we recommend the following tools, both of which are freely available on
this website:
• HPjconfig , an HP performance tuning tool to help you with kernel configuration.
HPjconfig provides kernel parameter recommendations tailored to your Java™
enterprise services and HP-UX hardware platform.
• Java™ Out-of-Box, a stand-alone tool that helps provide better "out of box" behavior
for Java™.
• HP OpenView GlancePlus, a performance monitoring and diagnostic tool that
provides immediate system information.
For additional information on kernel configuration and performance tuning techniques,
tools and tips, visit Performance Tuning Java™ for HP-UX.
Java™ programs can use threads and sockets heavily. Server applications commonly
spawn one or two threads for each client connected to the server, that is, one socket
connection to read and another to write.
Threads
The default values for HP-UX 11.0 and 11i are set too low for most Java™ applications.
Two kernel parameters need to be set so that the limit of the maximum number of
threads per process is not encountered. Usually you will see this problem as a Java™
Out of Memory error. You will want to set the value of the max_thread_proc higher
than the expected maximum number of simultaneously active threads for your
application. You can check the number of threads in your process by using the -eprof
option available as of JDK 1.1.8. Analyze the Java.eprof file using HPjmeter by
selecting the threads metric.
max_thread_proc
The maximum number of threads allowed in each process. The minimum value (and
default) is 64, often too low for most Java™ applications. The maximum value is the
value of nkthread.
nkthread
The total number of kernel threads available in the system. This parameter is similar
to the nproc tunable except that it defines the limit for the total number of kernel
threads able to run simultaneously in the system. The value must be greater than nproc.
The default is approximately twice that of nproc. The maximum is 30000. The suggested
value of nkthread is 2*max_thread_proc. If you have many Java™ processes
Threads 31