Kernel Parameters Summary
This post is simply to provide some guidelines for choosing values for HP’s HP-UX 11i v1, v2 and v3 Operating System for PeopleSoft Installations. It is not a definitive guide, set in stone, etc. It is simply a list of kernel parameters that are relevant to PeopleSoft Applications. I derived the list from HP’s documentation and based on several production/development HP PA-RISC and Itanium installations.
The values are based on PeopleSoft deployments structured around PeopleSoft’s PIA (Pure Internet Architecture), that divides the PeopleSoft architecture into the following components:
Web Server, Application Server, Process Scheduler (Batch) and Database tiers.
Unless noted the values are applicable to all tiers are intended to provide a starting point for tuning kernel parameters and you have to keep in mind all installations have their own unique characteristics that will drive the ultimate values.
HP-UX 11i (v1, v2, v3) provides some dynamic kernel parameter support and error checking by SAM (System Administration Manager for HP-UX) may prevent changing some of these parameters until After a reboot has been performed in order to avoid invalidating and/or causing problems with non-dynamic (static) kernel parameters in use for the current boot. A second boot will not be required just a second invocation of SAM in the event that you need to change some values, reboot and then invoke SAM to make the final change(s).
HP-UX 11i v1 is 11.11, v2 is 11.23 and v3 is 11.31. An “nc” in the below table indicates that no change is required or necessary.
| Parameter | Dynamic | Default Value | Recommended Value |
| maxuprc | 11i v1 : 75 | (NPROC/8->514 | |
| maxusers (11iv1 only) | 32 | 128 | |
| nproc | 11iv1 : (20+8*MAXUSERS) | (20+32*MAXUSERS)->4116 | |
| nproc (nc for v2/v3) | v2/v3 : 4200 | ||
| maxfiles_lim | yes | 11iv1 : 1024 | 2048 |
| maxfiles_lim (nc for v2/v3) | v2/v3 : 4096 | ||
| maxfiles | 11iv1 : 60 | 2048 | |
| maxfiles (nc for v2/v3) | v2/v3 : 2048 | ||
| max_thread_proc | 11iv1 : 64 | 1024 | |
| v2/v3 : 256 | |||
| maxdsize | 11iv1 : 0×10000000->256MB | 0xC0000000->3GB | |
| v2/v3 : 0×40000000->4GB | 0xC0000000->3GB | ||
| maxdsiz_64bit | 11iv1 : 0×40000000->1GB | 0×000003F000000000 | |
| v2/v3 : 0×10000000->4GB | ->4TB | ||
| maxssiz | 0×00800000->8MB | 0×04000000->64MB | |
| maxsize_64bit | 11iv1 : 0×00800000->8MB | 0×08000000->128MB | |
| maxsize_64bit (nc for v2/v3) | v2/v3 : 0×10000000->256MB | ||
| vx_ninode | 0 | (8*NPROC) | |
| dbc_min_pct | yes | 50 | 10 (or 5) |
| dbc_max_pct | 5 | 2 | |
| swapmem_on | 1 (but may be 0 for some) | 1 (set to 0 if configured device swap>=server memory) | |
| swchunk | 2048 | 16384 | |
| vps_ceiling | 16 | 256 |
NOTE: dbc_[min|max]_pct have been replaced with filecache_[min|max]
for HP-UX 11.31. Buffer cache settings are dynamic kernel parameters for HP-UX v2 and later.
Use of Formulas in HP-UX 11i V1
In the older HP-UX 11i v1 version of the Operating System, formulas were used for many kernel parameters and as a result changes to MAXUSERS and NPROC values would result in indirect changes to the following parameters:
| Parameter | Formula | Original Value | New Value |
| ncallout | (16+NKTHREAD) | 292 | 4132 |
| nclist | (100+16*MAXUSERS) | 2148 | |
| nkthread | ((NPROC*7)/4)+16) | 499 | 7219 |
| nfile | ~(16*(NPROC+MAXUSERS)/10) | 910 | 7208 |
| ninode | ~(NPROC+MAXUSERS) | 476 | 4412 |
Kernel Parameters Fixed Values and Obsoleted Parameters
HP-UX 11i v2 and v3 use fixed values for these parameters. Additionally, the NCALLOUT and MAXUSERS kernel parameters have been deprecated in those operating system versions. It is not necessary to modify the 11i v2 or v3 kernel to use the formulas because the fixed values are sufficient for most deployments and unless there is a demonstrated need it is best to not implement formulas for v2 and v3.
Summary of Changes
The changes to the max parameters show above are necessary to allow sufficient kernel resources for a typical production deployment. Servers that support multiple environments (development and test environments) may need higher values to accommodate the number of PeopleSoft environments. Error messages in the PeopleSoft log files should help provide insight into which configured parameters need to be adjusted. For example, error messages noting “process table full” or “fork of child process failed” are usually indicators that NPROC and/or MAXUPRC need to be increased.
The dbc_min_pct and dbc_max_pct values (filecahe_min and filecache_max for HP-UX 11i v3) should be set so as to restrict the kernel’s buffer cache to several hundred megabytes at most (10% of a 4 GB sever, 5% of an 8 GB server, and 1% of a 32 GB server). Database servers may require large file system buffer caches if the database instance is maintained on standard file systems and those file systems are configured to use buffered I/O in the first place (not a good practice and not recommended by Oracle or HP).
Setting a non-zero value for vx_ninode also has a positive impact on overall file system performance. An explicit value ensures that the kernel’s Veritas file system code does not inadvertently consume more resources than necessary for file-system intensive operations and applications. Changes in HP-UX 11i v2 require that the formula for vx_ninode be tied to a parameter with a fixed value (e.g. NPROC), not one that itself is another formula (e.g. NFILE).
Increasing swchunk faciliates adding swap space should it become necessary. Configuring additional storage as device swap does not require a reboot, modifying swchunk, however, does.
A higher setting for vps_ceiling allows the HP-UX kernel to minimize in-memory fragmentation of applications with large data footprints. This is particulary useful for PeopleSoft server processes and Oracle RDBMS processes, both of which allocate, contiguous memory at runtime.
PeopleSoft Enterprise / BEA Tuxedo Kernel Parameters
PeopleSoft Enterprise uses BEA Tuxedo’s Infrastructure, which requires additional kernel configuration changes. These settings are required on the application and batch server tiers. Below is a guideline for assigning values for the kernel parameters related to BEA Tuxedo and are based on HP’s recommendation documentation:
| Parameter | Dynamic | Default Value | Recommended Value | |
| msgssz | 11iv1 : 8 | 512 | ||
| v2/v3 : 96 | ||||
| msgmni | 11iv1 : 50 | 256 | ||
| v2/v3 : 512 | 256 | |||
| msgseg | 11iv1 : 2048 | 32767 | ||
| v2/v3 : 8192 | ||||
| msgtql | 11iv1 : 40 | 2046 | ||
| v2/v3 : 1024 | ||||
| msgmnb | yes | 16384 | 1048576 | |
| msgmax | yes | 8192 | 256000 | |
| msgmap | 11iv1 : (2+msgtql) | (2+msgtql) | ||
| v2/v3 : 1026 | ||||
| semmns | 11iv1 : 128 | 512 | ||
| (nc for v2/v3) | v2/v3 : 4096 | |||
| semmni | 11iv1 : 64 | (SEMMNS/2) | ||
| (nc for v2/v3) | v2/v3 : 2048 | |||
| semmnu | 11iv1 : 30 | (SEMMNS/4) | ||
| (nc for v2/v3) | v2/v3 : 256 | |||
| shmmax | yes | 11iv1 : 0×04000000 | 0×40000000 (1 GB) | |
| (nc for v2/v3) | v2/v3 : 0×40000000 |
Note: Systems that have multiple deployments (more than one PeopleSoft Environment) should use BEA’s utility tmloadcf to verify that there are sufficient allocation of IPC resources. In particular, semmnu will need to be increased for systems that will run multiple PeopleSoft instances simultaneously (e.g., we have 7 or more environments all running at the same time). I will post a follow-up note with information and samples of output for the BEA tmlaodcf utility to illustrate the kernel parameters we have deployed for this server.
2 responses so far ↓
Greg // June 15, 2009 at 12:30 pm |
Excellent post, thanks!
However, after applying the following kernel parms to our RP3340 HP-UX v11.23 PA8900/800 4×1000Mhz 16G application server running PT8.47.08, we are seeing lots of vfaults.
Any comments welcome! Thanks, Greg
Tunable old new
dbc_max_pct 50 3
dbc_min_pct 5 1
default_disk_ir 0 1
fs_async 0 1
max_thread_proc 1200 2048
maxdsiz 1073741824 90000000
maxdsiz_64bit 4294967296 4396972765184
maxssiz 8388608 200802304
maxuprc 256 1028
msgmap 1026 2048
msgmax 8192 256000
msgmnb 16384 1048576
msgmni 512 1024
msgseg 8192 32767
msgssz 96 512
msgtql 1024 2046
semmnu 256 4096
semmni 2048 2048
semmns 4096 4096
vps_ceiling 16 256
vx_ninode 0 33600
Greg // August 3, 2009 at 9:18 am |
Stan, thanks for your posts; unfortunately there were many issues with PT8.47.08 related to PSAPPSRV memory corruption which caused crashes and poor performance. We ave since upgraded to PT8.49.20 which seems more stable. I am working towards TUXEDO throughput testing as we are still running HP-UX out of the box. Certain pages in the application are taking a long time to build in the PSAPPSRV process, not due to SQL, but more related to volume. I am hoping the kernel changes will address this. I do see a lot of Waits on MESG and Waits on STRMS using glance.
-Greg