###### Copy of part of heads up report for January 1999 from
###### Barbara Hopkins
###### NOTE: We are using HPUX 11.0 64 bit operating system.
**********************************************************************
*********
*** Performance hints for large multi_cpu HP-UX systems
***
**********************************************************************
*********
Here are some performance tips based on work an Informix consultant
performed with a customer who was using IDS 7.30 and a HP system
running HP-UX 11.0:
* Do not allocate more than 3 shared memory segments
On HP, due to the PA-RISC architecture, if more than 3
shared memory segments are allocated, there maybe a
performance impact incurred during shared memory access.
* Set RESIDENT to -1 in ONCONFIG to lock all segments in memory
In IDS 7.3, setting RESIDENT to -1 will make all resident and
virtual shared memory segments resident. Note that this should
only be set if there is enough physical memory do so.
* Use AFF_SPROC, AFF_NPROCS to bind CPU VPs
Using processor affinity to bind the CPU virtual processors to
the CPUs.
* As root run 'chatr +pd 64M +pi 4M $INFORMIXDIR/bin/oninit' to use
larger memory pages
In the customer's case, the use of this yielded significant
improvements
regarding CPU utilization.
Using chatr will set the binary to SHMEM_MAGIC, which will allow it
address up to 2.75 GB of shared memory, and the +pd option will
request
a particular virtual memory page size that should be used for data,
and +pi will request a particular virtual memory page size that
should be used for instructions.
**********************************************************************
*********
*** Maximizing Informix utilization of shared memory on HP-UX 10.20
***
**********************************************************************
*********
When using HP-UX 10.20, with the appropriate patches in place, the
system-wide shared memory maximum can be extended from 1.75GB to
2.75GB. (This capability is new to HP-UX 10.20. The size of shared
memory was restricted to 1.75GB or less in previous versions of
HP-UX.) However, there are some caveats in the details. This article
is
an attempt to present both a synopsis of the issue and details
relevant
to Informix customers.
HOW TO:
1. Install the appropriate HP-UX patches (see below for details).
2. Use the HP-UX chatr utility to modify ALL executables which are to
use shared memory (details below).
3. Test all 3rd party applications for compatibility.
REQUIRED HP-UX PATCHES:
Minimally required HP patches (some of these may be necessary for
development only; some may have been made obsolete by more recent
patches):
o PHSS_10926: s700_800 10.01-X0 ld(1) and developers tools cumulative
o PHKL_11086: s800 10.20 LVM, exec, ptrace, MMF, shmem, buf cache,
pstat, pdir
o PHCO_10964: s700_800 10.20 LVM commands cumulative patch
o PHKL_8327: advises 'chatr'ing the executables
o PHSS_15380: enables HP's debugger to attach to processes that have
been set to SHMEM_MAGIC.
USING CHATR:
In order to access 2.75 GB of shared memory some binaries have been
built with the linker's "-N" option to set them to EXEC_MAGIC. The
chatr command should be run on these binaries to set them to
SHMEM_MAGIC, which will enable them to access 2.75 GB.
The command line syntax is:
chatr -M <executable>
If the executable was not linked with the "-N" option to make it
EXEC_MAGIC, you will see the following error:
chatr:(error) - only EXEC_MAGIC files can be made SHMEM_MAGIC
If you plan to use this feature on any Informix executables, try to
use it on ALL Informix executables that reside on your server. If you
see the error message above, on more than one or two of the utilities,
check the version. You may need to upgrade.
Make sure that you read the HP-UX manual pages for chatr before using
it.
INFORMIX DYNAMIC SERVER:
Support for more than 1.75 GB of shared memory on HP-UX 10.20 went
largely undocumented within Informix products until very recently.
However, you will find that the following versions and versions that
have been released more recently all have support for 2.75 GB of
shared
memory on HP-UX 10.20:
o 7.23.UC4 (see caveats below)
o 7.24.UC4X1/7.24.UC5
o 7.30.UC3
If you plan to use this feature on any Informix executables, try to
use it on ALL Informix executables that reside on your server. If you
see the error message above, on more than one or two of the utilities,
check the version. You may need to upgrade.
CAVEATS:
* In versions of Informix Dynamic Server prior to 7.24.UC4X1/7.24.UC5
you cannot use OnBar if the SHMEM_MAGIC flag is set.
THE FINE DETAILS (reprinted from HP-UX PHKL_8346 documentation):
Current executable types cannot access more than 1.75 GB of shared
memory objects. With short pointer addressing on 32-bit PA
architecture, each pointer addresses one of four quadrants each of
which is 1 GB in size. Current executable types use quadrant 3 and
quadrant 4 for shared memory. In user mode, quadrant 1 and quadrant 2
are used for text and data, respectively. This results in a
system-wide
maximum of 1.75 GB (the last 0.25 GB in quadrant 4 is reserved for
IO).
A new executable type has been defined where user text, data and stack
share quadrant 1 and quadrant 2 is made available for shared memory.
This results in a system-wide maximum of 2.75 GB of shared memory
address space. An existing application must be re-linked as an
EXEC_MAGIC and then the executable can be chatr(1)'d to be the new
executable type SHMEM_MAGIC. This chatr(1) method is the only
supported
method to create the new executable type SHMEM_MAGIC.
Please note that this is an interim solution for increased shared
memory addressing until 64-bit HP-UX 11.0 becomes available. There are
several limitations:
o In the new SHMEM_MAGIC type, quadrant 2 is only available for system
V shared memory segments, unlike quadrants 3 and 4 which are also
used for shared libraries and shared memory mapped files.
o The maximum size of a single system V shared memory segment a
process can attach has not changed and still is limited to 1 GB
(shmmax <= 0x40000000).
o A single system V shared memory segment must be completely
contained in one quadrant. Quadrant 2 provides 1GB - 24KB, quadrant
3 provides 1 GB and quadrant 4 only has 0.75 GB of address space due
to the memory-mapped IO space in the last 0.25 GB.
o Shared libraries and shared memory mapped files may further reduce
the address space available for system V shared memory segments in
quadrants 3 and 4.
o Only executables that are linked to be the new SHMEM_MAGIC
executable type (or chatr(1)'d to be so) can benefit from this
feature. Other executables will continue to see a system wide
maximum of 1.75 GB of shared memory. Processes that execute other
types of executables will not be able to share the memory in
quadrant 2 with a process that is executing the new executable type.
o In the new executable type text is mapped at different virtual
addresses and so process intensive applications may not benefit. Any
increase in performance due to the larger shared memory may be
offset by decreases due to TLB inefficiency. Applications that use
one process per processor may however benefit.
o This will not be supported on future HP implementations of 64-bit
architectures (beyond PA 2.0), nor will it need to be as with a 64-
bit kernel the size of shared memory supported will be much larger
than 2.75 GB. Programs that need more than 1.75 GB of shared memory
on these architectures will have to be recompiled for these
architectures.
o Programs that are compiled as 64-bit executables on any 64-bit HP
implementation (including PA 2.0) cannot be marked as SHMEM_MAGIC
nor
do they need to be as they will already have access to more than
1.75
GB of shared memory.
############################################################################
###### Errors received back to the terminal from onbar command #######
TESTIT@hp13: /usr/adsm> onbar -b -L 0 rootdbs
/usr/lib/dld.sl: Can't shl_load() a library containing Thread Local Storage:
/us
r/lib/libpthread.1
/usr/lib/dld.sl: Exec format error
TESTIT@hp13: /usr/adsm>
###### Current portion of the bar_act_log ##########
1999-02-02 08:21:45 29451 29450 /inf730uc5/bin/onbar_d -b -L 0 rootdbs
1999-02-02 08:21:46 29451 29450 ERROR: An unexpected error occurred: .
Exec format error
1999-02-02 08:21:46 29451 29450 WARNING: Could not open XBSA library
/usr/adsm/api/libXApi.sl, so trying default path.
1999-02-02 08:21:46 29451 29450 ERROR: Version 0.0.0 of the XBSA shared
library is not compatible with version 1 o
f ON-Bar.
####### Onconfig BAR variables ##########
# Backup/Restore variables
BAR_BSALIB_PATH /usr/adsm/api/libXApi.sl
BAR_ACT_LOG/tmp/inftestit_bar_act.log
BAR_MAX_BACKUP2
BAR_RETRY3
BAR_NB_XPORT_COUNT100
BAR_XFER_BUF_SIZE15
BAR_DEBUG 9
BAR_DEBUG_LOG /tmp/inftestit_bar_debug.log
###### Most current portion of the onbar debug log ##########
1999-02-02 08:21:44 29451 29450 read_config:server testit_a1:9 max_backup
2 retry 3 actfd 3
1999-02-02 08:21:44 29451 29450 debugfd 6 debug 9 bootfd
4 log_blks 500
1999-02-02 08:21:44 29451 29450 buf size 30720 buf count 100
ltapedev /home/dba/inftestit/ltapedev
1999-02-02 08:21:44 29451 29450 read_config: return 0
1999-02-02 08:21:45 29451 29450 bar_main: server status 5
1999-02-02 08:21:45 29451 29450 do_args: enter 5
1999-02-02 08:21:45 29451 29450 do_args: got -b command
1999-02-02 08:21:45 29451 29450 do_args: got -L 0 command
1999-02-02 08:21:45 29451 29450 bar_add_dbslist: enter
1999-02-02 08:21:45 29451 29450 bar_add_dbslist: input dbs_name rootdbs
1999-02-02 08:21:45 29451 29450 bar_add_dbslist: return 0 (0x00)
1999-02-02 08:21:45 29451 29450 Removing the onbar_restore file
1999-02-02 08:21:45 29451 29450 do_args: workflags 3
1999-02-02 08:21:45 29451 29450 do_args: return 0
1999-02-02 08:21:45 29451 29450 bar_siginit: enter
1999-02-02 08:21:45 29451 29450 bar_siginit: return
1999-02-02 08:21:45 29451 29450 get_server_pid: enter
1999-02-02 08:21:45 29451 29450 get_server_pid: pid 19451
1999-02-02 08:21:45 29451 29450 get_server_pid: pid 19452
1999-02-02 08:21:45 29451 29450 bar_sighdlr: enter signal: 18
1999-02-02 08:21:45 29451 29450 wait_on_child: enter
1999-02-02 08:21:45 29451 29450 wait_on_child: child 29452 exited with
status 0
1999-02-02 08:21:45 29451 29450 get_wait_status: enter
1999-02-02 08:21:45 29451 29450 get_wait_status: input cpid 29452 status 0
1999-02-02 08:21:45 29451 29450 get_wait_status: return -1 (0xffffffff)
1999-02-02 08:21:46 29451 29450 wait_on_child: output child_exit_code -1
1999-02-02 08:21:46 29451 29450 wait_on_child: return -1 (0xffffffff)
1999-02-02 08:21:46 29451 29450 bar_sighdlr: return
1999-02-02 08:21:46 29451 29450 get_server_pid: pid 19453
1999-02-02 08:21:46 29451 29450 get_server_pid: pid 19454
1999-02-02 08:21:46 29451 29450 get_server_pid: pid 19455
1999-02-02 08:21:46 29451 29450 get_server_pid: pid 19456
1999-02-02 08:21:46 29451 29450 get_server_pid: pid 19457
1999-02-02 08:21:46 29451 29450 get_server_pid: pid 19458
1999-02-02 08:21:46 29451 29450 get_server_pid: pid 19459
1999-02-02 08:21:46 29451 29450 get_server_pid: pid 19460
1999-02-02 08:21:46 29451 29450 get_server_pid: pid 19461
1999-02-02 08:21:46 29451 29450 get_server_pid: pid 19462
1999-02-02 08:21:46 29451 29450 get_server_pid: pid 19463
1999-02-02 08:21:46 29451 29450 get_server_pid: pid 19464
1999-02-02 08:21:46 29451 29450 get_server_pid: pid 19465
1999-02-02 08:21:46 29451 29450 get_server_pid: pid 19466
1999-02-02 08:21:46 29451 29450 get_server_pid: pid 19467
1999-02-02 08:21:46 29451 29450 get_server_pid: pid 19468
1999-02-02 08:21:46 29451 29450 get_server_pid: pid 19469
1999-02-02 08:21:46 29451 29450 get_server_pid: pid 19470
1999-02-02 08:21:46 29451 29450 get_server_pid: pid 19471
1999-02-02 08:21:46 29451 29450 get_server_pid: pid 19472
1999-02-02 08:21:46 29451 29450 get_server_pid: pid 19473
1999-02-02 08:21:46 29451 29450 get_server_pid: pid 19474
1999-02-02 08:21:46 29451 29450 get_server_pid: pid 19475
1999-02-02 08:21:46 29451 29450 get_server_pid: pid 19476
1999-02-02 08:21:46 29451 29450 get_server_pid: pid 19477
1999-02-02 08:21:46 29451 29450 get_server_pid: pid 19478
1999-02-02 08:21:46 29451 29450 get_server_pid: pid 19479
1999-02-02 08:21:46 29451 29450 get_server_pid: pid 19480
1999-02-02 08:21:46 29451 29450 get_server_pid: pid 19481
1999-02-02 08:21:46 29451 29450 get_server_pid: pid 19482
1999-02-02 08:21:46 29451 29450 get_server_pid: pid 19483
1999-02-02 08:21:46 29451 29450 get_server_pid: pid 19484
1999-02-02 08:21:46 29451 29450 get_server_pid: pid 19485
1999-02-02 08:21:46 29451 29450 get_server_pid: pid 19486
1999-02-02 08:21:46 29451 29450 get_server_pid: return 0 (0x00)
1999-02-02 08:21:46 29451 29450 bar_exec: enter
1999-02-02 08:21:46 29451 29450 get_a_connection: enter
1999-02-02 08:21:46 29451 29450 bar_api_connect: enter
1999-02-02 08:21:46 29451 29450 bar_alarm: enter
1999-02-02 08:21:46 29451 29450 bar_alarm: input 600 seconds
1999-02-02 08:21:46 29451 29450 bar_alarm: return
1999-02-02 08:21:46 29451 29450 bar_alarm: enter
1999-02-02 08:21:46 29451 29450 bar_alarm: input 0 seconds
1999-02-02 08:21:46 29451 29450 bar_alarm: return
1999-02-02 08:21:46 29451 29450 bar_api_connect: output errtxt
1999-02-02 08:21:46 29451 29450 bar_api_connect: return 0 (0x00)
1999-02-02 08:21:46 29451 29450 get_a_connection: return 0
1999-02-02 08:21:46 29451 29450 bar_full_logs: enter
1999-02-02 08:21:46 29451 29450 bar_full_logs: select count(*) from
sysmaster:syslogs
1999-02-02 08:21:46 29451 29450 bar_full_logs: select got total_ct 3
1999-02-02 08:21:46 29451 29450 bar_full_logs: select count(*) from
sysmaster:syslogs where used != 0 and is_backed_up = 0
1999-02-02 08:21:46 29451 29450 bar_full_logs: select got full_ct 2
1999-02-02 08:21:46 29451 29450 bar_full_logs: output log_flag 1
1999-02-02 08:21:46 29451 29450 bar_full_logs: return 0 (0x00)
1999-02-02 08:21:46 29451 29450 barQueryApi: enter
1999-02-02 08:21:46 29451 29450 bar_ver_init: enter
1999-02-02 08:21:46 29451 29450 bar_ver_init: bar bsa sm sm version
1999-02-02 08:21:46 29451 29450 bar_ver_init: return
1999-02-02 08:21:46 29451 29450 BSAQueryApiVersion: enter
1999-02-02 08:21:46 29451 29450 BSAQueryApiVersion: enter
1999-02-02 08:21:46 29451 29450 bar_loadXBSA: enter
1999-02-02 08:21:46 29451 29450 bar_loadXBSA: return 0 (0x00)
1999-02-02 08:21:46 29451 29450 BSAQueryApiVersion: return
1999-02-02 08:21:46 29451 29450 BSAQueryApiVersion: return 0 (0x00)
1999-02-02 08:21:46 29451 29450 barQueryApi: BSA version 0.0.0
1999-02-02 08:21:46 29451 29450 barQueryApi: select * from systables where
tabname = bar_version
1999-02-02 08:21:46 29451 29450 bar_ver_sel: enter
1999-02-02 08:21:46 29451 29450 bar_ver_sel: input bar 1 bsa 0.0.0 sm name
version
1999-02-02 08:21:46 29451 29450 bar_ver_where: enter
1999-02-02 08:21:46 29451 29450 bar_ver_init: input bar 1 bsa 0.0.0 sm sm
version
1999-02-02 08:21:46 29451 29450 bar_ver_where: return where bar_version =
'1' and bsa_version = '0.0.0'
1999-02-02 08:21:46 29451 29450 bar_ver_sel: select * from bar_version
where bar_version = '1' and bsa_version = '0.0.0'
1999-02-02 08:21:46 29451 29450 bar_ver_sel: return 100
1999-02-02 08:21:46 29451 29450 barQueryApi: return 139 (0x8b)
1999-02-02 08:21:46 29451 29450 return from bar_exec 139
1999-02-02 08:21:46 29451 29450 bar_unloadXBSA: enter
1999-02-02 08:21:46 29451 29450 bar_unloadXBSA: return -1 (0xffffffff)
1999-02-02 08:21:46 29451 29450 bar_main: process exit 139 (0x8b)
1999-02-02 08:21:46 29451 29450 bar_cleanup: enter
1999-02-02 08:21:46 29451 29450 bar_api_disconnect: enter
1999-02-02 08:21:46 29451 29450 bar_alarm: enter
1999-02-02 08:21:46 29451 29450 bar_alarm: input 600 seconds
1999-02-02 08:21:46 29451 29450 bar_alarm: return
1999-02-02 08:21:46 29451 29450 bar_alarm: enter
1999-02-02 08:21:46 29451 29450 bar_alarm: input 0 seconds
1999-02-02 08:21:46 29451 29450 bar_alarm: return
1999-02-02 08:21:46 29451 29450 bar_api_disconnect: return
1999-02-02 08:21:46 29451 29450 bar_cleanup: return
############################################################################
>>>>>>>>>>>>>> Global CS Original External RFC822 Hdrs Begin <<<<<<<<<<<<<<
X-Env-Sender: tivoli AT tivprod.amstr DOT com
X-Env-Recipient: Bardsley.K AT amstr DOT com
X-End-of-Envelope:
Received: from tivprod (162.120.113.238) by adgcs01.amstr.com (NPlex 2.0.108)
fo Received: by tivprod. (SMI-8.6/SMI-SVR4)
id IAA09177; Tue, 2 Feb 1999 08:27:02 -0800
Date: Tue, 2 Feb 1999 08:27:02 -0800
From: tivoli AT tivprod.amstr DOT com (Tivoli ID)
Message-Id: <199902021627.IAA09177@tivprod.>
Subject: onbar
Content-Type: text
Apparently-To: Bardsley.K AT amstr DOT com
|