Informix is kidding us - never got it running on Intel SMP ?
Posted in 2003
Topics: Platform-Specific Issues, Versions, Editions & End-of-Life
Hi out there !
I had some nice conversation with informix support, they recommmend
not to activate "multiprocessor" feature. So, having a DUAL Xeon and
havin migrated from HP UX 10.20 (no more support worldwide by Compaq
since yesterday) i wondered, why IDS 9.30/9.40 crash.
Who has Informix running on what hardware and OS with/without KAIO, and
multiple processors really used (not just acvtivated SMP with oninit
processes bound to one cpu).
I never got Linux to run with /var/lib/libpthread.so.0 from informix.
What libraries do offer N:M or 1:1 threads and work together with informix ?
tnx in advance, Guido Stepken
Guido Stepken wrote:
> Hi out there !
>
> I had some nice conversation with informix support, they recommmend
> not to activate "multiprocessor" feature. So, having a DUAL Xeon and
> havin migrated from HP UX 10.20 (no more support worldwide by Compaq
> since yesterday) i wondered, why IDS 9.30/9.40 crash.
>
> Who has Informix running on what hardware and OS with/without KAIO, and
> multiple processors really used (not just acvtivated SMP with oninit
> processes bound to one cpu).
Please take a look to the article below how to install 9.40 on different
Linux distributions. As far as I know KAIO is not available in the official
sources of Linux 2.4.x kernels. But configuring multiprocessor in $ONCONFIG
should really work, e.g.
MULTIPROCESSOR 1 # 0 for single-processor, 1 for multi-processor
NUMCPUVPS 2 # Number of user (cpu) vps
SINGLE_CPU_VP 0 # If non-zero, limit number of cpu vps to one
Andreas
>
> I never got Linux to run with /var/lib/libpthread.so.0 from informix.
> What libraries do offer N:M or 1:1 threads and work together with informix
> ?
>
> tnx in advance, Guido Stepken
-----------------------------------------------------------------
The following article provides information about requirements for
installation of IDS 9.40.UC1 on RedHat, SuSE, Mandrake and Debian
Linux Distributions.
Content
=======
1. General requirements
2. Known installation problems and solutions
3. Using shared memory (excerpt from IDS machine notes)
1. General requirements
=======================
- i686 compatible processor
- disable Intel Hyper-Threading
- Linux kernel 2.4.7 or higher
- glibc 2.2.4 or higher (i686 version)
- do not use Reiser file system (reiserfs) for chunks due to
performance reasons
- further information is available in IDS machine notes:
$INFORMIXDIR/release/en_us/0333/ids_machine_notes_9.40.txt
2. Known installation problems and solutions
============================================
The listed distributions match the Linux kernel and glibc
requirements. Please note not all distributions install or deliver a
i686 version of glibc by default.
RedHat 7.2
----------
No installation problems known.
RedHat 7.3
----------
No installation problems known.
RedHat 8
--------
Update glibc to fix a TCP/IP problem. Available at
ftp://updates.redhat.com/8.0/en/os/i686/glibc-2.3.2-4.80.6.i686.rpm
RedHat 9
--------
"Incorrectly built binary which accesses errno, h_errno or _res
directly. Needs to be fixed." messages. Use 9.40.UC2 when available.
RedHat AS2.1
------------
No installation problems known.
SuSE 7.3
--------
i686 version of glibc not available. Upgrade to a higher SuSE version
is recommended.
SuSE 8.0
--------
Update to the i686 version of glibc available on CD #1:
rpm -U --oldpackage ./unsorted/glibc-i686/glibc-2.2.5-26.i686.rpm
Update to hwinfo-4.27. Available at
ftp://ftp.suse.com/pub/suse/i386/update/8.0/d1/hwinfo.rpm
SuSE 8.1
--------
Update to glibc-2.2.5-165. Available at
ftp://ftp.suse.com/pub/suse/i386/update/8.1/rpm/i686/glibc-2.2.5-165.i686.rpm
SuSE 8.2
--------
Update to the i686 version of glibc available on CD #1:
rpm -U --oldpackage ./suse/i686/glibc-2.3.2-5.i686.rpm
SLES 8 (United Linux 1.0)
-------------------------
Update to glibc-2.2.5-165. Available at http://support.suse.de/psdb
Mandrake 9.0
------------
No installation problems known.
Mandrake 9.1
------------
No installation problems known.
Debian 3.0r1
------------
Build a patched libpthread.so (see attached
libifxpthread-glibc225.patch) using following steps as user root:
# cp libifxpthread-glibc225.patch /tmp
Install kernel headers (Debian 3.0r1 official binary CD #6):
# apt-cdrom
# apt-get install kernel-headers
compile glibc sources (Debian 3.0r1 official source CD #1):
# apt-cdrom
# mkdir source
# cd source
# apt-get --compile source glibcPatch the glibc sources:
# cd glibc-2.2.5/glibc-2.2.5/linuxthreads
# cat /tmp/libifxpthread-glibc225.patch | patch -bCompile libpthread.so:
# cd ../../i386-linux/obj
# make
Install libifxpthread.so.4:
# export INFORMIXDIR=/opt/informix (example, IDS 9.40 directory)
# cp linuxthreads/libpthread.so $INFORMIXDIR/lib/libifxpthread.so.4
# chown informix:informix $INFORMIXDIR/lib/libifxpthread.so.4
# chmod 755 $INFORMIXDIR/lib/libifxpthread.so.4
# ln -s $INFORMIXDIR/lib/libifxpthread.so.4 /var/lib/libpthread.so.0Check oninit for right path to libpthread.so.0:
# ldd $INFORMIXDIR/bin/oninit
libpthread.so.0 => /var/lib/libpthread.so.0
3. Using shared memory (excerpt from IDS machine notes)
=======================================================
The ONCONFIG variable SHMBASE should be set to the following:
SHMBASE 0x10000000L
The default start address for shared libraries on Linux is 0x40000000.
Therefore, the maximum available space for shared memory is 768MB when
using 0x10000000L as the SHMBASE value.
SHMBASE can also be set to start above the shared library addresses.
When doing so, ensure that dynamically loaded shared libraries do not
collide with the shared memory segments.
The address space layout can be checked by the following command:
$ cat /proc/[pid of oninit process]/maps
Beginning with kernel version 2.4.19, Linux provides a way to
dynamically change the default start address for shared libraries on
a per-process basis. This feature is available, if the file
/proc/$$/mapped_base exists.
To change the start address for shared libraries of the oninit
processes, the new start address needs to be specified by the user
root in the shell from where oninit is started. For example, the
following sets the start address of shared libraries to 0xB0000000L:
$ echo $$29712
$ su root
Password:
# echo -1342177280 > /proc/29712/mapped_base
# exit
$ oninit
Assuming the onconfig parameter SHMBASE is 0x10000000L, this gives
2.5GB of contiguous address space available for the database server.