ifx performace: linux vs NT
Posted in 2000
Topics: Performance & Tuning, Storage & Space Management, SQL Development & Query Writing, Error Codes & Troubleshooting, Server Administration, Transactions, Locking & Isolation, Logging & Checkpoints, Networking & sqlhosts Configuration, Platform-Specific Issues, Versions, Editions & End-of-Life
This is a multi-part message in MIME format.
------=_NextPart_000_001B_01BF5CF2.35C4E380
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
Palmer: thanks for your input in this isssue. Let me tell you about the
tests:
I started with a set of queries against 5 tables: one with 150.000 rows,
other with 250.000 rows and the rest pretty small ones.
First, forcing the engine to sequential scan the whole table.
Then, queries of a single table, with a filter condition on a indexed field,
with and w/o the order by clause.
And last, a series of joins with filters conditions with and w/o the order
by clause.
In most of the tests the linux box was slower...twice I must say. For
example, the sequential scan took NT 1 min and linux 2.
I was going to continue with a series of more elaborated tests, but with
this figures I panic and post my onconfig for help. I belive I must be doing
something wrong. Anyone with a bright idea?
System:
Linux RedHat 6.0 / Kernel 2.2.5-15
Informix IDS 7.30 UC7
PII 350 Mhz, single cpu
128 RAM
NT 4.0
Informix IDS 7.30 TC 5
same HW
Cooked files on both, (unbuffered on NT). Statistics updated.
----- Mensaje original -----
De: richard palmer
Para: Diego
CC: Informix-list
Enviado: Martes, 11 de Enero de 2000 04:38 p.m.
Asunto: Re: special thanks and informix performance considerations
I took a look at the onconfig you attached. When you say you are
disappointed with the performance, what manner of testing did you
use ? Without an idea of your metrics, performance tuning is more a
shot in the dark as opposed to dealing with identified problem areas
and resolving these in an orderly manner.
I can state that (last I heard) you could not configure more than one
AIO VP on an NT system. This in itself can create a bottleneck
problem in terms of I/O. The onconfig I received showed NO entry
for AIO VPs, which defaults to one.
Configuration parameters that work efficiently on NT may not be
what works best on a unix based system like Linux. Try bumping
up the NUMAIOVPs to 1 per chunk or 2 per dbspace (opinions
vary on this, try both ?) to distribute the I/O. Also, try bumping up
CLEANERs to atleast one per chunk with a minimum of two.
have a nice day.
------=_NextPart_000_001B_01BF5CF2.35C4E380
Content-Type: application/octet-stream;
name="onconfig"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="onconfig"
#************************************************************************=
**=0A=
#=0A=
# INFORMIX SOFTWARE, INC.=0A=
#=0A=
# Title: onconfig.std=0A=
# Description: Informix Dynamic Server Configuration Parameters=0A=
#=0A=
#************************************************************************=
**=0A=
=0A=
# Root Dbspace Configuration=0A=
=0A=
ROOTNAME rootdbs # Root dbspace name=0A=
ROOTPATH /info1/rootdbs.000 # Path for device containing root =
dbspace=0A=
ROOTOFFSET 0 # Offset of root dbspace into device =
(Kbytes)=0A=
ROOTSIZE 50000 # Size of root dbspace (Kbytes)=0A=
=0A=# Disk Mirroring Configuration Parameters=0A=
=0A=
MIRROR 0 # Mirroring flag (Yes =3D 1, No =3D 0)=0A=
MIRRORPATH # Path for device containing mirrored =
root=0A=
MIRROROFFSET 0 # Offset into mirrored device (Kbytes)=0A=
=0A=# Physical Log Configuration=0A=
=0A=
PHYSDBS rootdbs # Location (dbspace) of physical log=0A=
PHYSFILE 1000 # Physical log file size (Kbytes)=0A=
=0A=# Logical Log Configuration=0A=
=0A=
LOGFILES 6 # Number of logical log files=0A=
LOGSIZE 500 # Logical log size (Kbytes)=0A=
=0A=
# Diagnostics=0A=
=0A=MSGPATH /opt/informix/online.log # System message log file path=0A=
CONSOLE /dev/null # System console message path=0A=
ALARMPROGRAM /opt/informix/etc/log_full.sh # Alarm program path=0A=
SYSALARMPROGRAM /opt/informix/etc/evidence.sh # System Alarm program path=0A=
TBLSPACE_STATS 1 =0A=
=0A=# System Archive Tape Device=0A=
=0A=
TAPEDEV /dev/null # Tape device path =0A=
TAPEBLK 16 # Tape block size (Kbytes)=0A=
TAPESIZE 10240 # Maximum amount of data to put on tape =
(Kbytes)=0A=
=0A=
# Log Archive Tape Device=0A=
=0A=
LTAPEDEV /dev/null # Log tape device path=0A=
LTAPEBLK 16 # Log tape block size (Kbytes)=0A=
LTAPESIZE 10240 # Max amount of data to put on log tape =
(Kbytes)=0A=
=0A=
# Optical=0A=
=0A=STAGEBLOB # Informix Dynamic Server/Optical =
staging area=0A=
=0A=
# System Configuration=0A=
=0A=
SERVERNUM 0 # Unique id corresponding to a Dynamic =
Server instance=0A=
DBSERVERNAME ol_linuxshm # Name of default database server=0A=
DBSERVERALIASES ol_linux # List of alternate dbservernames=0A=
NETTYPE ipcshm,1,10,CPU # Configure poll thread(s) for nettype=0A=
NETTYPE soctcp,1,10,NET # Configure poll thread(s) for nettype=0A=
DEADLOCK_TIMEOUT 60 # Max time to wait of lock in =
distributed env.=0A=
RESIDENT 0 # Forced residency flag (Yes =3D 1, No =
=3D 0)=0A=
=0A=
MULTIPROCESSOR 0 # 0 for single-processor, 1 for =
multi-processor=0A=
NUMCPUVPS 1 # Number of user (cpu) vps=0A=
SINGLE_CPU_VP 0 # If non-zero, limit number of cpu vps =
to one=0A=
=0A=#NOAGE 0 # Process aging=0A=
#AFF_SPROC 0 # Affinity start processor=0A=
#AFF_NPROCS 0 # Affinity number of processors=0A=
=0A=
# Shared Memory Parameters=0A=
=0A=
LOCKS 2000 # Maximum number of locks=0A=
BUFFERS 10000 # Maximum number of shared buffers=0A=
NUMAIOVPS # Number of IO vps=0A=
PHYSBUFF 32 # Physical log buffer size (Kbytes)=0A=
LOGBUFF 32 # Logical log buffer size (Kbytes)=0A=LOGSMAX 6 # Maximum number of logical log files=0A=
CLEANERS 1 # Number of buffer cleaner processes=0A=
SHMBASE 0x10000000 # Shared memory base address=0A=
SHMVIRTSIZE 8000 # initial virtual shared memory segment =
size=0A=
SHMADD 8192 # Size of new shared memory segments =
(Kbytes)=0A=
SHMTOTAL 0 # Total shared memory (Kbytes). =
0=3D>unlimited=0A=
CKPTINTVL 300 # Check point interval (in sec)=0A=
LRUS 4 # Number of LRU queues=0A=
LRU_MAX_DIRTY 60 # LRU percent dirty begin cleaning limit=0A=
LRU_MIN_DIRTY 50 # LRU percent dirty end cleaning limit=0A=
LTXHWM 50 # Long transaction high water mark =
percentage=0A=
LTXEHWM 60 # Long transaction high water m
Hi,
a few remarks regarding your ONCONFIG:
* SINGLE_CPU_VP should be set to 1, since you are not using multiple CPU VPs - this
should improve performance for CPU intensive tasks
* on NT KAIO is used automatically, therefore there is no need for AIOVP on NT. Linux
on the other hand doesn't support raw devices (yet) and there is no KAIO.
Therefore, I would recommend to increase the number of AIOVPs to be able to handle
multiple IO requests in parallel (depending on the number of disks).
Hope this helps, Heiko
Diego wrote:
> This is a multi-part message in MIME format.
>
> ------=_NextPart_000_001B_01BF5CF2.35C4E380
> Content-Type: text/plain;
> charset="iso-8859-1"
> Content-Transfer-Encoding: 7bit
>
> Palmer: thanks for your input in this isssue. Let me tell you about the
> tests:
>
> I started with a set of queries against 5 tables: one with 150.000 rows,
> other with 250.000 rows and the rest pretty small ones.
>
> First, forcing the engine to sequential scan the whole table.
> Then, queries of a single table, with a filter condition on a indexed field,
> with and w/o the order by clause.
> And last, a series of joins with filters conditions with and w/o the order
> by clause.
>
> In most of the tests the linux box was slower...twice I must say. For
> example, the sequential scan took NT 1 min and linux 2.
>
> I was going to continue with a series of more elaborated tests, but with
> this figures I panic and post my onconfig for help. I belive I must be doing
> something wrong. Anyone with a bright idea?
>
> System:
>
> Linux RedHat 6.0 / Kernel 2.2.5-15
> Informix IDS 7.30 UC7
> PII 350 Mhz, single cpu
> 128 RAM
>
> NT 4.0
> Informix IDS 7.30 TC 5
> same HW
>
> Cooked files on both, (unbuffered on NT). Statistics updated.
>
> ----- Mensaje original -----
> De: richard palmer
> Para: Diego
> CC: Informix-list
> Enviado: Martes, 11 de Enero de 2000 04:38 p.m.
> Asunto: Re: special thanks and informix performance considerations
>
> I took a look at the onconfig you attached. When you say you are
> disappointed with the performance, what manner of testing did you
> use ? Without an idea of your metrics, performance tuning is more a
> shot in the dark as opposed to dealing with identified problem areas
> and resolving these in an orderly manner.
> I can state that (last I heard) you could not configure more than one
> AIO VP on an NT system. This in itself can create a bottleneck
> problem in terms of I/O. The onconfig I received showed NO entry
> for AIO VPs, which defaults to one.
> Configuration parameters that work efficiently on NT may not be
> what works best on a unix based system like Linux. Try bumping
> up the NUMAIOVPs to 1 per chunk or 2 per dbspace (opinions
> vary on this, try both ?) to distribute the I/O. Also, try bumping up
> CLEANERs to atleast one per chunk with a minimum of two.
> have a nice day.
>
> ------=_NextPart_000_001B_01BF5CF2.35C4E380
> Content-Type: application/octet-stream;
> name="onconfig"
> Content-Transfer-Encoding: quoted-printable
> Content-Disposition: attachment;
> filename="onconfig"
>
> #************************************************************************=
> **=0A=
> #=0A=
> # INFORMIX SOFTWARE, INC.=0A=
> #=0A=
> # Title: onconfig.std=0A=
> # Description: Informix Dynamic Server Configuration Parameters=0A=
> #=0A=
> #************************************************************************=
> **=0A=
> =0A=
> # Root Dbspace Configuration=0A=
> =0A=
> ROOTNAME rootdbs # Root dbspace name=0A=
> ROOTPATH /info1/rootdbs.000 # Path for device containing root =
> dbspace=0A=
> ROOTOFFSET 0 # Offset of root dbspace into device =
> (Kbytes)=0A=
> ROOTSIZE 50000 # Size of root dbspace (Kbytes)=0A=
> =0A=> # Disk Mirroring Configuration Parameters=0A=
> =0A=
> MIRROR 0 # Mirroring flag (Yes =3D 1, No =3D 0)=0A=
> MIRRORPATH # Path for device containing mirrored =
> root=0A=
> MIRROROFFSET 0 # Offset into mirrored device (Kbytes)=0A=
> =0A=> # Physical Log Configuration=0A=
> =0A=
> PHYSDBS rootdbs # Location (dbspace) of physical log=0A=
> PHYSFILE 1000 # Physical log file size (Kbytes)=0A=
> =0A=> # Logical Log Configuration=0A=
> =0A=
> LOGFILES 6 # Number of logical log files=0A=
> LOGSIZE 500 # Logical log size (Kbytes)=0A=
> =0A=
> # Diagnostics=0A=
> =0A=> MSGPATH /opt/informix/online.log # System message log file path=0A=
> CONSOLE /dev/null # System console message path=0A=
> ALARMPROGRAM /opt/informix/etc/log_full.sh # Alarm program path=0A=
> SYSALARMPROGRAM /opt/informix/etc/evidence.sh # System Alarm program path=0A=
> TBLSPACE_STATS 1 =0A=
> =0A=> # System Archive Tape Device=0A=
> =0A=
> TAPEDEV /dev/null # Tape device path =0A=
> TAPEBLK 16 # Tape block size (Kbytes)=0A=
> TAPESIZE 10240 # Maximum amount of data to put on tape =
> (Kbytes)=0A=
> =0A=
> # Log Archive Tape Device=0A=
> =0A=
> LTAPEDEV /dev/null # Log tape device path=0A=
> LTAPEBLK 16 # Log tape block size (Kbytes)=0A=
> LTAPESIZE 10240 # Max amount of data to put on log tape =
> (Kbytes)=0A=
> =0A=
> # Optical=0A=
> =0A=> STAGEBLOB # Informix Dynamic Server/Optical =
> staging area=0A=
> =0A=
> # System Configuration=0A=
> =0A=
> SERVERNUM 0 # Unique id corresponding to a Dynamic =
> Server instance=0A=
> DBSERVERNAME ol_linuxshm # Name of default database server=0A=
> DBSERVERALIASES ol_linux # List of alternate dbservernames=0A=
> NETTYPE ipcshm,1,10,CPU # Configure poll thread(s) for nettype=0A=
> NETTYPE soctcp,1,10,NET # Configure poll thread(s) for nettype=0A=
> DEADLOCK_TIMEOUT 60 # Max time to wait of lock in =
> distributed env.=0A=
> RESIDENT 0 # Forced residency flag (Yes =3D 1, No =
> =3D 0)=0A=
> =0A=
> MULTIPROCESSOR 0 # 0 for single-processor, 1 for =
> multi-processor=0A=
> NUMCPUVPS 1 # Number of user (cpu) vps=0A=
> SINGLE_CPU_VP 0 # If non-zero, limit number of cpu vps =
> to one=0A=
> =0A=> #NOAGE 0 # Process aging=0A=
> #AFF_SPROC 0 # Affinity start processor=0A=
> #AFF_NPROCS 0 # Affinity number of processors=0A=
> =0A=
> # Shared Memory Parameters=0A=
> =0A=
> LOCKS 2000 # Maximum number of locks=0A=
> BUFFERS 10000 # Maximum number of shared buffers=0A=
> NUMAIOVPS # Number of IO vps=0A=
> PHYSBUFF 32 # Physical log buffer size (Kbytes)=0A=
> LOGBUFF 32 # Logical log b
Related threads
- Conversion to differeent characters sets
- Problem in changing locale via dbexport/dbimport
- RE: openlink error "Unable to load locale categories"