optimum usage of resources
Posted in 2010
A user running IDS 9.40.TC9 on Windows 2003 (8 cores, 16GB RAM) behind Baan IV asked why Informix only used 1-2 CPUs and ~1-2GB RAM, and why PDQPRIORITY had no effect (setting it as an env var broke Baan logins). Advice given: CLEANERS 1 was far too low (set to at least the number of LRUs/chunks, ~85); onstat -g iov showed Windows uses KAIO even for cooked files, so only 1-2 AIO VPs are needed; don't over-allocate CPU VPs (around 7 for 8 cores, not 24); raise BUFFERS substantially (buffers are 4K, so 60000 is only ~234MB) and check cache hit rate/buffer turnover; add temp dbspaces for parallel sorts. Low CPU use was attributed to I/O waits and workload, with Baan's FIRST_ROWS directives also suspected. No confirmation of the outcome is recorded.
Auto-generated by DrWatson from the posts below — may be imperfect; read the full thread.
Topics: Performance & Tuning, Storage & Space Management, Server Administration, Transactions, Locking & Isolation, Logging & Checkpoints, Networking & sqlhosts Configuration, Licensing & Editions, Versions, Editions & End-of-Life
Hi,
We are on IDS 9.4 TC9 on Windows 2003 EE OS.
The server has two quadcore processors. In windows task manager it actually
shows 16 processors (that's because of 8 cores x 2 because of Hyperthreading).
We have 16 GB of RAM.
We are using Informix as database for our Baan IV C4 ERP s/w.
The query is that the I never see more than 1 or 2 cpu getting used. The CPU
utilization remains at not more than 25% max. Even the max RAM getting used is
2 GB.
How do I make the server use more resources i.e.all 16 processors and 16 GB
ram to get max performance.
I tried to set parameter "PDQPRIORITY 80" but it has no effect.
When I set it as an Envoirnment variable Baan users were not able to log. In
informix log I found the following error "connection rejected - no calls
allowed for sqlexec " hence had to remove the variable.
(how do I attach onstat -a output to the message ?)
the ONCONFIG IS AS FOLLOWS :
==========================================
#**************************************************************************
#
# Licensed Material - Property Of IBM
#
# "Restricted Materials of IBM"
#
# IBM Informix Dynamic Server
# (c) Copyright IBM Corporation 1996, 2006 All rights reserved.
#
# Title: onconfig.std
# Description: IBM Informix Dynamic Server Configuration Parameters
#
#**************************************************************************
# Root Dbspace Configuration
ROOTNAME rootdbs # Root dbspace name
ROOTPATH G:\\\\IFMXDATA\\\\ol_baanerp\\\\rootdbs_dat.000 # Path for device containingroot dbspace
ROOTOFFSET 0 # Offset of root dbspace into device (Kbytes)
ROOTSIZE 51200 # Size of root dbspace (Kbytes)
# Disk Mirroring Configuration Parameters
MIRROR 1 # Mirroring flag (Yes = 1, No = 0)
MIRRORPATH K:\\\\IFMXDATA\\\\ol_baanerp\\\\rootdbs_mirr.000 # Path for device
containing mirrored root
MIRROROFFSET 0 # Offset into mirrored device (Kbytes)
# Physical Log Configuration
PHYSDBS baandb_plog # Location (dbspace) of physical log
PHYSFILE 2047788 # Physical log file size (Kbytes)
# Logical Log Configuration
LOGFILES 349 # Number of logical log files
LOGSIZE 5000 # Logical log size (Kbytes)
# Security
# DBCREATE_PERMISSION:
# By default any user can create a database. Uncomment DBCREATE_PERMISSON to
# limit database creation to a specific user. Add a new DBCREATE_PERMISSION
# line for each permitted user.
#DBCREATE_PERMISSION informix
# DB_LIBRARY_PATH:
# When loading a (C or C++) shared object (for a UDR or UDT), IDS checks that
# the user-specified path starts with one of the directory prefixes listed in
# the comma-separated list of prefixes in DB_LIBRARY_PATH. The string
# "$INFORMIXDIR/extend" must be included in DB_LIBRARY_PATH in order for
# extensibility and IBM supplied blades to work correctly.
# DB_LIBRARY_PATH $INFORMIXDIR/extend
# Diagnostics
MSGPATH f:\\\\Informix\\\\ol_baanerp.log # System message log file path
CONSOLE f:\\\\Informix\\\\conol_baanerp.log # System console message path
# To automatically backup logical logs, edit alarmprogram.bat and set
# BACKUPLOGS=Y
ALARMPROGRAM f:\\\\Informix\\\\etc\\\\alarmprogram.bat # Alarm program path
TBLSPACE_STATS 1 # Maintain tblspace statistics
# System Diagnostic Script.
# SYSALARMPROGRAM - Full path of the system diagnostic script (e.g.
# c:\\\\informix\\\\etc\\\\evidence.bat.) Set this parameter
# if you want a different Diagnostic Script than
# {INFORMIXDIR}\\\\etc\\\\evidence.bat, which is default.
# System Archive Tape Device
TAPEDEV \\\\\\\\.\\\\TAPE0 # Tape device path#TAPEDEV nul # Tape device path
TAPEBLK 16 # Tape block size (Kbytes)
TAPESIZE 419430400 # Maximum amount of data to put on tape (Kbytes)# CHANGED 23-05-2006 TAPESIZE 10240 # Maximum amount of data to put on tape
(Kbytes)
# Log Archive Tape Device
LTAPEDEV NUL # Log tape device path
LTAPEBLK 16 # Log tape block size (Kbytes)
LTAPESIZE 10240 # Max amount of data to put on log tape (Kbytes)
# Optical
STAGEBLOB # Informix Dynamic Server/Optical staging area
# System Configuration
SERVERNUM 0 # Unique id corresponding to a server instance
DBSERVERNAME ol_baanerp # Name of default Dynamic Server
DBSERVERALIASES # List of alternate dbservernames
NETTYPE onsoctcp,1,,NET # Override sqlhosts nettype parameters
DEADLOCK_TIMEOUT 60 # Max time to wait of lock in distributed env.
RESIDENT 0 # Forced residency flag (Yes = 1, No = 0)
MULTIPROCESSOR 1 # 0 for single-processor, 1 for multi-processor
NUMCPUVPS 12 # Number of user (cpu) vps
SINGLE_CPU_VP 0 # If non-zero, limit number of cpu vps to one
# need to comment NUMCPUVPS, NOAGE, AFF_SPROC, AFF_NPROCS
# VPCLASS cpu,num=12,aff=1-8,noage
# CHANGED 30-09-2006
# NOAGE 0 # Process aging
# AFF_SPROC 0 # Affinity start processor
# AFF_NPROCS 0 # Affinity number of processors
NOAGE 1 # Process aging
AFF_SPROC 1 # Affinity start processor
AFF_NPROCS 8 # Affinity number of processors
# Shared Memory Parameters
#LOCKS 2000 # Maximum number of locks
LOCKS 50000 # Maximum number of locks
#BUFFERS 5000 # Maximum number of shared buffers
BUFFERS 52428 # Maximum number of shared buffers# Need to increase it. Use onstat -p and see that % cached should be near 90%
# if it is less than that then increase BUFFERS
NUMAIOVPS 1 # Number of IO vps
PHYSBUFF 32 # Physical log buffer size (Kbytes)
#LOGBUFF 32 # Logical log buffer size (Kbytes)
LOGBUFF 64 # Logical log buffer size (Kbytes)
CLEANERS 1 # Number of buffer cleaner processes
SHMBASE 0xC000000L # Shared memory base address
#SHMVIRTSIZE 8192 # initial virtual shared memory segment size
#SHMVIRTSIZE 65536 # initial virtual shared memory segment size
SHMVIRTSIZE 1024000 # initial virtual shared memory segment size
#SHMADD 8192 # Size of new shared memory segments (Kbytes)
SHMADD 16384 # Size of new shared memory segments (Kbytes)
#EXTSHMADD 8192 # Size of new extension shared memory segments (Kbytes)
EXTSHMADD 16384 # Size of new extension shared memory segments (Kbytes)
SHMTOTAL 0 # Total shared memory (Kbytes). 0=>unlimited
CKPTINTVL 300 # Check point interval (in sec)
#LRUS 8 # Number of LRU queues
LRUS 32 # Number of LRU queues
#LRU_MAX_DIRTY 60 # LRU percent dirty begin cleaning limit
LRU_MAX_DIRTY 10 # LRU percent dirty begin cleaning limit
#LRU_MIN_DIRTY 50 # LRU percent dirty end cleaning limit
LRU_MIN_DIRTY 5 # LRU percent dirty end cleaning limit
#>>>>>>>>> TO BE ADDED LATER <<<<<<<<<<<<<<<
#** NEWLY ADDED PARAMETERS AS RECOMMENDED BY BAAN
# DD_HASHSIZE 71 # Number of hash buckets. Should be a prime number
# DD_HASHMAX 10 # Maximum number of Tables in a hash bucket
#** NEWLY ADDED PARAMETERS AS RECOMMENDED BY BAAN
TXTIMEOUT 300 # Transaction timeout (in sec)
STACKSIZE 64 # Stack size (Kbytes)
# Dynamic Logging
# DYNAMIC_LOGS:
# 2 : server automatically add a new logical log when necessary. (ON)
# 1 : notify DBA to add new logical logs when necessary. (ON)
# 0 : cannot add logical log on the fly. (OFF
Two problems that I see:
CLEANERS 1
NUMAIOVPS 1
AIO VPs:
Since you are using filesystem files for chunks, AIO VPs are handling all
IO, so you need many more than one. Start with the number of chunks + 25%
as a starting point and adjust up or down using onstat -g iov to monitor it
over time. If the io/wup shows 1.0 of higher for every AIO VP, then you
need more. If at least one AIO VP shows 0.9 or lower then you are probably
good. If more than one shows 0.0 io/wup then you can reduce the number of
AIO VPs by that number.
CLEANERS:
You have 32 LUR queues (LRUS 32) and I don't know how many chunks you have,
but you should have CLEANERS set to the greater of LRUS or the number of
chunks, so at least 32.
As far as why the server is only utilizing 2 CPU cores and not all 8 cores
(ignore the hyperthreads, you can't count them as full CPU cores, the reason
is probably that the CPUs are always waiting for IOs, so they can't take
advantage of any more CPU cycles. Fix the IOs as above and reevaluate in a
week or two. Let us know how it goes.
Art
Art S. Kagel
Advanced DataTools (www.advancedatatools.com)
IIUG Board of Directors (art@iiug.org)
Disclaimer: Please keep in mind that my own opinions are my own opinions and
do not reflect on my employer, Advanced DataTools, the IIUG, nor any other
organization with which I am associated either explicitly, implicitly, or by
inference. Neither do those opinions reflect those of other individuals
affiliated with any entity with which I am affiliated nor those of the
entities themselves.
On Fri, Aug 6, 2010 at 8:23 AM, VINEET AGARWAL <vineetsaddress@yahoo.com>wrote:
> Hi,
>
> We are on IDS 9.4 TC9 on Windows 2003 EE OS.
>
> The server has two quadcore processors. In windows task manager it actually
> shows 16 processors (that's because of 8 cores x 2 because of
> Hyperthreading).
>
> We have 16 GB of RAM.
>
> We are using Informix as database for our Baan IV C4 ERP s/w.
>
> The query is that the I never see more than 1 or 2 cpu getting used. The
> CPU
> utilization remains at not more than 25% max. Even the max RAM getting used
> is
> 2 GB.
>
> How do I make the server use more resources i.e.all 16 processors and 16 GB
> ram to get max performance.
>
> I tried to set parameter "PDQPRIORITY 80" but it has no effect.
> When I set it as an Envoirnment variable Baan users were not able to log.
> In
> informix log I found the following error "connection rejected - no calls
> allowed for sqlexec " hence had to remove the variable.
>
> (how do I attach onstat -a output to the message ?)
>
> the ONCONFIG IS AS FOLLOWS :
> ==========================================
> #**************************************************************************
> #
> # Licensed Material - Property Of IBM
> #
> # "Restricted Materials of IBM"
> #
> # IBM Informix Dynamic Server
> # (c) Copyright IBM Corporation 1996, 2006 All rights reserved.
> #
> # Title: onconfig.std
> # Description: IBM Informix Dynamic Server Configuration Parameters
> #
> #**************************************************************************
>
> # Root Dbspace Configuration
>
> ROOTNAME rootdbs # Root dbspace name
> ROOTPATH G:\\\\IFMXDATA\\\\ol_baanerp\\\\rootdbs_dat.000 # Path for device> containing
> root dbspace
> ROOTOFFSET 0 # Offset of root dbspace into device (Kbytes)
> ROOTSIZE 51200 # Size of root dbspace (Kbytes)>
> # Disk Mirroring Configuration Parameters
>
> MIRROR 1 # Mirroring flag (Yes = 1, No = 0)
> MIRRORPATH K:\\\\IFMXDATA\\\\ol_baanerp\\\\rootdbs_mirr.000 # Path for device
> containing mirrored root
> MIRROROFFSET 0 # Offset into mirrored device (Kbytes)>
> # Physical Log Configuration
>
> PHYSDBS baandb_plog # Location (dbspace) of physical log
> PHYSFILE 2047788 # Physical log file size (Kbytes)>
> # Logical Log Configuration
>
> LOGFILES 349 # Number of logical log files
> LOGSIZE 5000 # Logical log size (Kbytes)>
> # Security
> # DBCREATE_PERMISSION:
> # By default any user can create a database. Uncomment DBCREATE_PERMISSON
> to
> # limit database creation to a specific user. Add a new DBCREATE_PERMISSION
> # line for each permitted user.
>
> #DBCREATE_PERMISSION informix
>
> # DB_LIBRARY_PATH:
> # When loading a (C or C++) shared object (for a UDR or UDT), IDS checks
> that
> # the user-specified path starts with one of the directory prefixes listed
> in
> # the comma-separated list of prefixes in DB_LIBRARY_PATH. The string
> # "$INFORMIXDIR/extend" must be included in DB_LIBRARY_PATH in order for
> # extensibility and IBM supplied blades to work correctly.
>
> # DB_LIBRARY_PATH $INFORMIXDIR/extend
>
> # Diagnostics
>
> MSGPATH f:\\\\Informix\\\\ol_baanerp.log # System message log file path
> CONSOLE f:\\\\Informix\\\\conol_baanerp.log # System console message path
>
> # To automatically backup logical logs, edit alarmprogram.bat and set
> # BACKUPLOGS=Y
> ALARMPROGRAM f:\\\\Informix\\\\etc\\\\alarmprogram.bat # Alarm program path
> TBLSPACE_STATS 1 # Maintain tblspace statistics>
> # System Diagnostic Script.
> # SYSALARMPROGRAM - Full path of the system diagnostic script (e.g.
> # c:\\\\informix\\\\etc\\\\evidence.bat.) Set this parameter
> # if you want a different Diagnostic Script than
> # {INFORMIXDIR}\\\\etc\\\\evidence.bat, which is default.
>
> # System Archive Tape Device
>
> TAPEDEV \\\\\\\\.\\\\TAPE0 # Tape device path> #TAPEDEV nul # Tape device path
>
> TAPEBLK 16 # Tape block size (Kbytes)
> TAPESIZE 419430400 # Maximum amount of data to put on tape (Kbytes)> # CHANGED 23-05-2006 TAPESIZE 10240 # Maximum amount of data to put on tape
> (Kbytes)
>
> # Log Archive Tape Device
>
> LTAPEDEV NUL # Log tape device path
> LTAPEBLK 16 # Log tape block size (Kbytes)
> LTAPESIZE 10240 # Max amount of data to put on log tape (Kbytes)>
> # Optical
>
> STAGEBLOB # Informix Dynamic Server/Optical staging area
>
> # System Configuration
>
> SERVERNUM 0 # Unique id corresponding to a server instance
> DBSERVERNAME ol_baanerp # Name of default Dynamic Server
> DBSERVERALIASES # List of alternate dbservernames
> NETTYPE onsoctcp,1,,NET # Override sqlhosts nettype parameters
> DEADLOCK_TIMEOUT 60 # Max time to wait of lock in distributed env.
> RESIDENT 0 # Forced residency flag (Yes = 1, No = 0)
>
> MULTIPROCESSOR 1 # 0 for single-processor, 1 for multi-processor
>
> NUMCPUVPS 12 # Number of user (cpu) vps
>
> SINGLE_CPU_VP 0 # If non-zero, limit number of cpu vps to one>
> # need to comment NUMCPUVPS, NOAGE, AFF_SPROC, AFF_NPROCS
>
> # VPCLASS cpu,num=12,aff=1-8,noage
>
> # CHANGED 30-09-2006
> # NOAGE 0 # Process aging
> # AFF_SPROC 0 # Affinity start processor
> # AFF_NPROCS 0 # Affinity number of processors
>
> NOAGE 1 # Process aging
> AFF_SPROC 1 # Affinity start processor
> AFF_NPROCS 8 # Affinity number of processors>
> # Shared Memory Parameters
>
> #LOCKS 2000 # Maximum number of locks
> LOCKS 50000 # Maximum number of locks>
> #BUFFERS 5000 # Ma
Dear Art,
Thanks for the suggestions.
The total no of chunks is 85 hence need to define the cleaners as 85 atleast.
The output of onstat -g iov is as follows :
-----------------------------------------------------------------
IBM Informix Dynamic Server Version 9.40.TC9 -- On-Line -- Up 05:47:41 -- 1245952 Kbytes
AIO I/O vps:
class/vp s io/s totalops dskread dskwrite dskcopy wakeups io/wup errors
kio 0 i 82.4 1717579 1674889 42690 0 2253670085 -0.0 0
kio 1 i 51.5 1073227 1062084 11143 0 397368329 0.0 0
kio 2 i 111.8 2331722 2326221 5501 0 1518786265 0.0 0
kio 3 i 31.6 659839 550543 109296 0 605465227 0.0 0
kio 4 i 67.8 1414290 1406128 8162 0 740735324 0.0 0
kio 5 i 25.3 528008 479196 48812 0 404605608 0.0 0
kio 6 i 17.8 372012 364032 7980 0 267395920 0.0 0
kio 7 i 10.0 207826 199677 8149 0 177950275 0.0 0
kio 8 i 24.5 510927 493976 16951 0 343944857 0.0 0
kio 9 i 105.2 2194803 2185785 9018 0 2681861294 -0.0 0
kio 10 i 13.8 287036 281012 6024 0 182644744 0.0 0
kio 11 i 113.7 2371930 2364161 7769 0 494155796 0.0 0
msc 0 i 1.0 20044 0 0 0 40847 0.5 0
aio 0 i 0.0 148 14 0 0 20995 0.0 0
pio 0 i 0.0 0 0 0 0 20849 0.0 0
lio 0 i 0.0 0 0 0 0 20850 0.0 0
---------------------------------------------------------
One more thing : In the IDS 9.4 documentation I find that NUMAIOVPS (and other parameters) have been replaced with VPCLASS parameter.
Yes, NULAIOVPS was replaced by VPCLASS aio..., but it still works if you use
it instead. If both are present VPCLASS aio takes precedence. Anyway, from
your onstat -g iov output it looks like the windows version of Informix is
using the KAIO threads for IO even for cooked filesystem files, I wasn't
aware of that. This given, you probably only need one or two AIO VPs, but
the recommendation for CLEANERS (85?) stands.
Art
Art S. Kagel
Advanced DataTools (www.advancedatatools.com)
IIUG Board of Directors (art@iiug.org)
Disclaimer: Please keep in mind that my own opinions are my own opinions and
do not reflect on my employer, Advanced DataTools, the IIUG, nor any other
organization with which I am associated either explicitly, implicitly, or by
inference. Neither do those opinions reflect those of other individuals
affiliated with any entity with which I am affiliated nor those of the
entities themselves.
On Fri, Aug 6, 2010 at 10:43 AM, VINEET AGARWAL <
vineet.agarwal@samsonite.co.in> wrote:
> One more thing :
>
> In the IDS 9.4 documentation I find that NUMAIOVPS (and other parameters)
> have
> been replaced with VPCLASS parameter.
>
>
>
>
*******************************************************************************
> Forum Note: Use "Reply" to post a response in the discussion forum.
>
>
--001636459284356242048d2954e7
Does it mean that I need to increase NUMCPUVPS instead of NUMAIOVPS ?
I have made the following changes in the ONCONFIG file to begin with :
NUMAIOVPS (changed from 1 to 20)
NUMCPUVPS (changed from 12 to 24)
BUFFERS (changed from 52428 to 60000)
CLEANERS ( changed from 1 to 40)
I have other queries : like how to make IDS use more memory. (I have 16 GB)
I have observed that it only uses 1 GB of memory. I does not add new memory
segments ?
Is the temp dbspace being utilized optimally ? how can i check it ?
output of onstat -g iov after the change
IBM Informix Dynamic Server Version 9.40.TC9 -- On-Line -- Up 02:16:44 --1276992 Kbytes
AIO I/O vps:
class/vp s io/s totalops dskread dskwrite dskcopy wakeups io/wup errors
kio 0 i 1.9 15372 1381 13991 0 32701514 0.0 0
kio 1 i 24.3 199639 191772 7867 0 165434291 0.0 0
kio 2 i 3.3 26677 24911 1766 0 36824164 0.0 0
kio 3 i 5.8 47397 43348 4049 0 42777106 0.0 0
kio 4 i 1.1 8846 7479 1367 0 18218952 0.0 0
kio 5 i 0.4 3399 3037 362 0 6341006 0.0 0
kio 6 i 1.3 10563 6919 3644 0 16040849 0.0 0
kio 7 i 24.4 200369 65159 135210 0 493781655 0.0 0
kio 8 i 0.3 2775 1530 1245 0 6912098 0.0 0
kio 9 i 1.8 14576 14287 289 0 21486539 0.0 0
kio 10 i 0.5 4148 2958 1190 0 6658561 0.0 0
kio 11 i 2.2 18101 16083 2018 0 29385122 0.0 0
kio 12 i 1.3 10255 9524 731 0 19742284 0.0 0
kio 13 i 40.1 328857 328644 213 0 43290502 0.0 0
kio 14 i 2.5 20441 18230 2211 0 23338124 0.0 0
kio 15 i 1.7 13938 11648 2290 0 18775962 0.0 0
kio 16 i 1021.5 8380217 8379029 1188 0 1492187802 0.0 0
kio 17 i 1.9 15349 14944 405 0 13246450 0.0 0
kio 18 i 2.6 21375 19958 1417 0 21672379 0.0 0
kio 19 i 0.3 2538 1750 788 0 4775536 0.0 0
kio 20 i 1.5 12668 8185 4483 0 20233747 0.0 0
kio 21 i 2.1 16834 708 16126 0 36589380 0.0 0
kio 22 i 0.3 2619 1990 629 0 4706499 0.0 0
kio 23 i 0.2 1331 511 820 0 3456780 0.0 0
msc 0 i 0.2 2046 0 0 0 9679 0.2 0
aio 0 i 0.0 149 14 0 0 8345 0.0 0
aio 1 i 0.0 1 0 0 0 8195 0.0 0
aio 2 i 0.0 1 0 0 0 8195 0.0 0
aio 3 i 0.0 1 0 0 0 8195 0.0 0
aio 4 i 0.0 1 0 0 0 8195 0.0 0
aio 5 i 0.0 1 0 0 0 8195 0.0 0
aio 6 i 0.0 1 0 0 0 8195 0.0 0
aio 7 i 0.0 1 0 0 0 8195 0.0 0
aio 8 i 0.0 1 0 0 0 8195 0.0 0
aio 9 i 0.0 1 0 0 0 8195 0.0 0
aio 10 i 0.0 1 0 0 0 8195 0.0 0
aio 11 i 0.0 1 0 0 0 8195 0.0 0
aio 12 i 0.0 1 0 0 0 8195 0.0 0
aio 13 i 0.0 1 0 0 0 8195 0.0 0
aio 14 i 0.0 1 0 0 0 8195 0.0 0
aio 15 i 0.0 0 0 0 0 8196 0.0 0
pio 0 i 0.0 0 0 0 0 8199 0.0 0
lio 0 i 0.0 0 0 0 0 8200 0.0 0
The suggestions I have given offline to Vineet are :
After our whole day discussions :
Setting PDQPRIORITY at application environment level would have improved
the CPU usage but it seems its not feasible for BAAN
set config parameter CLEANER to 85 as we have 85 chunks
Increase BUFFER value to 60000
See if you can add 2 more tempdbspaces, this will do parallel sorting
Most important observation is that, all select queries are using optimizer
directive as {+ FIRST_ROWS, This option directs the optimizer to choose
the query plan that returns the first result record as soon as possible,
ignoring plans that would sort records or create a hash table. As per our
observations, this might be related to some BAAN setting which I am not
much exposed to. Hence requesting you to post your query to iiug to get
direct response from Informix+BAAN users.
Strongly recommend to move to 11.50 which is IDS latest version and you
can avail support facility from our support team directly all the time
NUMAIOVP is another good suggestion.
Regards,
Vaibhav S Dantale
___________________________________________________________
Challenge is source of strength
QA Manager, Informix Dynamic Server
Information Management
Address:
IBM India Software Labs,
Cell: +91-9503161335
Email: vdantale@in.ibm.com
My Blue page
"Art Kagel" <art.kagel@gmail.com>
Sent by: ids-bounces@iiug.org
08/06/2010 07:14 PM
Please respond to
ids@iiug.org
To
ids@iiug.org
cc
Subject
Re: optimum usage of resources [20763]
Two problems that I see:
CLEANERS 1
NUMAIOVPS 1
AIO VPs:
Since you are using filesystem files for chunks, AIO VPs are handling all
IO, so you need many more than one. Start with the number of chunks + 25%
as a starting point and adjust up or down using onstat -g iov to monitor
it
over time. If the io/wup shows 1.0 of higher for every AIO VP, then you
need more. If at least one AIO VP shows 0.9 or lower then you are probably
good. If more than one shows 0.0 io/wup then you can reduce the number of
AIO VPs by that number.
CLEANERS:
You have 32 LUR queues (LRUS 32) and I don't know how many chunks you
have,
but you should have CLEANERS set to the greater of LRUS or the number of
chunks, so at least 32.
As far as why the server is only utilizing 2 CPU cores and not all 8 cores
(ignore the hyperthreads, you can't count them as full CPU cores, the
reason
is probably that the CPUs are always waiting for IOs, so they can't take
advantage of any more CPU cycles. Fix the IOs as above and reevaluate in a
week or two. Let us know how it goes.
Art
Art S. Kagel
Advanced DataTools (www.advancedatatools.com)
IIUG Board of Directors (art@iiug.org)
Disclaimer: Please keep in mind that my own opinions are my own opinions
and
do not reflect on my employer, Advanced DataTools, the IIUG, nor any other
organization with which I am associated either explicitly, implicitly, or
by
inference. Neither do those opinions reflect those of other individuals
affiliated with any entity with which I am affiliated nor those of the
entities themselves.
On Fri, Aug 6, 2010 at 8:23 AM, VINEET AGARWAL
<vineetsaddress@yahoo.com>wrote:
> Hi,
>
> We are on IDS 9.4 TC9 on Windows 2003 EE OS.
>
> The server has two quadcore processors. In windows task manager it
actually
> shows 16 processors (that's because of 8 cores x 2 because of
> Hyperthreading).
>
> We have 16 GB of RAM.
>
> We are using Informix as database for our Baan IV C4 ERP s/w.
>
> The query is that the I never see more than 1 or 2 cpu getting used. The
> CPU
> utilization remains at not more than 25% max. Even the max RAM getting
used
> is
> 2 GB.
>
> How do I make the server use more resources i.e.all 16 processors and 16
GB
> ram to get max performance.
>
> I tried to set parameter "PDQPRIORITY 80" but it has no effect.
> When I set it as an Envoirnment variable Baan users were not able to
log.
> In
> informix log I found the following error "connection rejected - no calls
> allowed for sqlexec " hence had to remove the variable.
>
> (how do I attach onstat -a output to the message ?)
>
> the ONCONFIG IS AS FOLLOWS :
> ==========================================
>
#**************************************************************************
> #
> # Licensed Material - Property Of IBM
> #
> # "Restricted Materials of IBM"
> #
> # IBM Informix Dynamic Server
> # (c) Copyright IBM Corporation 1996, 2006 All rights reserved.
> #
> # Title: onconfig.std
> # Description: IBM Informix Dynamic Server Configuration Parameters
> #
>
#**************************************************************************
>
> # Root Dbspace Configuration
>
> ROOTNAME rootdbs # Root dbspace name
> ROOTPATH G:\\\\IFMXDATA\\\\ol_baanerp\\\\rootdbs_dat.000 # Path for device> containing
> root dbspace
> ROOTOFFSET 0 # Offset of root dbspace into device (Kbytes)
> ROOTSIZE 51200 # Size of root dbspace (Kbytes)>
> # Disk Mirroring Configuration Parameters
>
> MIRROR 1 # Mirroring flag (Yes = 1, No = 0)
> MIRRORPATH K:\\\\IFMXDATA\\\\ol_baanerp\\\\rootdbs_mirr.000 # Path for device
> containing mirrored root
> MIRROROFFSET 0 # Offset into mirrored device (Kbytes)>
> # Physical Log Configuration
>
> PHYSDBS baandb_plog # Location (dbspace) of physical log
> PHYSFILE 2047788 # Physical log file size (Kbytes)>
> # Logical Log Configuration
>
> LOGFILES 349 # Number of logical log files
> LOGSIZE 5000 # Logical log size (Kbytes)>
> # Security
> # DBCREATE_PERMISSION:
> # By default any user can create a database. Uncomment
DBCREATE_PERMISSON
> to
> # limit database creation to a specific user. Add a new
DBCREATE_PERMISSION
> # line for each permitted user.
>
> #DBCREATE_PERMISSION informix
>
> # DB_LIBRARY_PATH:
> # When loading a (C or C++) shared object (for a UDR or UDT), IDS checks
> that
> # the user-specified path starts with one of the directory prefixes
listed
> in
> # the comma-separated list of prefixes in DB_LIBRARY_PATH. The string
> # "$INFORMIXDIR/extend" must be included in DB_LIBRARY_PATH in order for
> # extensibility and IBM supplied blades to work correctly.
>
> # DB_LIBRARY_PATH $INFORMIXDIR/extend
>
> # Diagnostics
>
> MSGPATH f:\\\\Informix\\\\ol_baanerp.log # System message log file path
> CONSOLE f:\\\\Informix\\\\conol_baanerp.log # System console message path
>
> # To automatically backup logical logs, edit alarmprogram.bat and set
> # BACKUPLOGS=Y
> ALARMPROGRAM f:\\\\Informix\\\\etc\\\\alarmprogram.bat # Alarm program path
> TBLSPACE_STATS 1 # Maintain tblspace statistics>
> # System Diagnostic Script.
> # SYSALARMPROGRAM - Full path of the system diagnostic script (e.g.
> # c:\\\\informix\\\\etc\\\\evidence.bat.) Set this parameter
> # if you want a different Diagnostic Script than
> # {INFORMIXDIR}\\\\etc\\\\evidence.bat, which is default.
>
> # System Archive Tape Device
>
----- Original Message -----
From: "VINEET AGARWAL" <vineet.agarwal@samsonite.co.in>
To: <ids@iiug.org>
Sent: Saturday, August 07, 2010 12:03 AM
Subject: Re: optimum usage of resources [20774]
> I have other queries : like how to make IDS use more memory. (I have 16
> GB)
>
> I have observed that it only uses 1 GB of memory. I does not add new
> memory
> segments ?
If you want the engine to use more memory, increase the buffers. You now
have 60000, on Windows in 9.4 a buffer is 4K. This is only 234 MB.
I don't have much experience with Windows, so I'm not really sure what the
maximum amount of memory Informix on Windows can allocate.
Start out with 2 GB of buffers if you want Informix to use more of that 16
GB you have available.
2097152 KB / 4 KB buffers = 524288 buffers
This will hopefully mean more data cached in memory which should reduce I/O.
Which will help with a CPUVP not being able to do work because it is waiting
on I/O problem if you're having one.
Use onstat -p and look for a read cache hit % of at least 90%, the higher
the better, and onstat -P to see if all these buffers you have added are
getting used. I wrote a little bit about this on my blog,
http://www.informix-dba.com/2010/07/increasing-buffers-and-reducing-io-with.html
You will probably also want to increase LRUs to 63 when you do this.
24 CPUVPs may be too high for 8 cores. Try 7. Maybe you're not using all of
the CPU cycles because it isn't needed to satisfy your workload. I wrote a
little bit about this too,
http://www.informix-dba.com/2010/08/configuring-informix-virtual-processors_01.h
tml
Andrew
Try these settings and see how it goes. Separate from your CPU utilization
issue, do you have enough buffers? Calculate the Buffer Turnrover Rate
(BTR). The data you need are:
numbuf - number of buffers
stat_time - number of fractional hours since the last time the stats were
zero'd with onstat -z (or since startup if that's not been run since).
- Fractional hours: 6 minutes is 0.1 hour
pagread - from onstat -p
bufwrite - from onstat -p
The formula:
BTR = ((pagread + bufwrite) / numbuf) / stat_time = turnovers per hour
Ideally BTR should be less than 10 and is best maintained between 6 and 8.
If it is higher the indicates that you may need more buffers.
How many more? Hard to say. If you know the size of your working set of
data, use that value calculated into pages. Otherwise, there are two quick
and dirty methods I use:
1. Calculate the ratio between your calculated BTR and the desired one and
increase the number of buffers by that ratio.
2. Run onstat -P every 1-5 minutes for an hour or so saving the results into
separate files each time. Diff the files and identify partnums who's buffer
contents have increased or decreased by a significant amount (say more than
2% of the number of buffers). Add up the changes between each pair of files
and use the largest of these pair-wise diffs as the number of new buffers to
add.
Art
Art S. Kagel
Advanced DataTools (www.advancedatatools.com)
IIUG Board of Directors (art@iiug.org)
Disclaimer: Please keep in mind that my own opinions are my own opinions and
do not reflect on my employer, Advanced DataTools, the IIUG, nor any other
organization with which I am associated either explicitly, implicitly, or by
inference. Neither do those opinions reflect those of other individuals
affiliated with any entity with which I am affiliated nor those of the
entities themselves.
On Sat, Aug 7, 2010 at 1:03 AM, VINEET AGARWAL <
vineet.agarwal@samsonite.co.in> wrote:
> Does it mean that I need to increase NUMCPUVPS instead of NUMAIOVPS ?
>
> I have made the following changes in the ONCONFIG file to begin with :
>
> NUMAIOVPS (changed from 1 to 20)
> NUMCPUVPS (changed from 12 to 24)
> BUFFERS (changed from 52428 to 60000)
> CLEANERS ( changed from 1 to 40)>
> I have other queries : like how to make IDS use more memory. (I have 16 GB)
>
> I have observed that it only uses 1 GB of memory. I does not add new memory
> segments ?
>
> Is the temp dbspace being utilized optimally ? how can i check it ?
>
>
>
>
*******************************************************************************
> Forum Note: Use "Reply" to post a response in the discussion forum.
>
>
--e0cb4e887d1f09724f048d50b0fc
I sent you a reply the other day. It looks like Informix is using KAIO, so
the extra AIO VPs are redundant. I don't use Informix on Windows, so I was
not aware that on Windows Informix uses KAIO for COOKED filesystem chunks.
You can reduce NUMAIOVPS or the equivalent VPCLASS aio setting to 2, the
extra aio vps are not being used.
Art
Art S. Kagel
Advanced DataTools (www.advancedatatools.com)
IIUG Board of Directors (art@iiug.org)
Disclaimer: Please keep in mind that my own opinions are my own opinions and
do not reflect on my employer, Advanced DataTools, the IIUG, nor any other
organization with which I am associated either explicitly, implicitly, or by
inference. Neither do those opinions reflect those of other individuals
affiliated with any entity with which I am affiliated nor those of the
entities themselves.
On Sat, Aug 7, 2010 at 2:02 AM, VINEET AGARWAL <
vineet.agarwal@samsonite.co.in> wrote:
> output of onstat -g iov after the change
>
> IBM Informix Dynamic Server Version 9.40.TC9 -- On-Line -- Up 02:16:44 --> 1276992 Kbytes
>
> AIO I/O vps:
> class/vp s io/s totalops dskread dskwrite dskcopy wakeups io/wup errors
> kio 0 i 1.9 15372 1381 13991 0 32701514 0.0 0
> kio 1 i 24.3 199639 191772 7867 0 165434291 0.0 0
> kio 2 i 3.3 26677 24911 1766 0 36824164 0.0 0
> kio 3 i 5.8 47397 43348 4049 0 42777106 0.0 0
> kio 4 i 1.1 8846 7479 1367 0 18218952 0.0 0
> kio 5 i 0.4 3399 3037 362 0 6341006 0.0 0
> kio 6 i 1.3 10563 6919 3644 0 16040849 0.0 0
> kio 7 i 24.4 200369 65159 135210 0 493781655 0.0 0
> kio 8 i 0.3 2775 1530 1245 0 6912098 0.0 0
> kio 9 i 1.8 14576 14287 289 0 21486539 0.0 0
> kio 10 i 0.5 4148 2958 1190 0 6658561 0.0 0
> kio 11 i 2.2 18101 16083 2018 0 29385122 0.0 0
> kio 12 i 1.3 10255 9524 731 0 19742284 0.0 0
> kio 13 i 40.1 328857 328644 213 0 43290502 0.0 0
> kio 14 i 2.5 20441 18230 2211 0 23338124 0.0 0
> kio 15 i 1.7 13938 11648 2290 0 18775962 0.0 0
> kio 16 i 1021.5 8380217 8379029 1188 0 1492187802 0.0 0
> kio 17 i 1.9 15349 14944 405 0 13246450 0.0 0
> kio 18 i 2.6 21375 19958 1417 0 21672379 0.0 0
> kio 19 i 0.3 2538 1750 788 0 4775536 0.0 0
> kio 20 i 1.5 12668 8185 4483 0 20233747 0.0 0
> kio 21 i 2.1 16834 708 16126 0 36589380 0.0 0
> kio 22 i 0.3 2619 1990 629 0 4706499 0.0 0
> kio 23 i 0.2 1331 511 820 0 3456780 0.0 0
> msc 0 i 0.2 2046 0 0 0 9679 0.2 0
> aio 0 i 0.0 149 14 0 0 8345 0.0 0
> aio 1 i 0.0 1 0 0 0 8195 0.0 0
> aio 2 i 0.0 1 0 0 0 8195 0.0 0
> aio 3 i 0.0 1 0 0 0 8195 0.0 0
> aio 4 i 0.0 1 0 0 0 8195 0.0 0
> aio 5 i 0.0 1 0 0 0 8195 0.0 0
> aio 6 i 0.0 1 0 0 0 8195 0.0 0
> aio 7 i 0.0 1 0 0 0 8195 0.0 0
> aio 8 i 0.0 1 0 0 0 8195 0.0 0
> aio 9 i 0.0 1 0 0 0 8195 0.0 0
> aio 10 i 0.0 1 0 0 0 8195 0.0 0
> aio 11 i 0.0 1 0 0 0 8195 0.0 0
> aio 12 i 0.0 1 0 0 0 8195 0.0 0
> aio 13 i 0.0 1 0 0 0 8195 0.0 0
> aio 14 i 0.0 1 0 0 0 8195 0.0 0
> aio 15 i 0.0 0 0 0 0 8196 0.0 0
> pio 0 i 0.0 0 0 0 0 8199 0.0 0
> lio 0 i 0.0 0 0 0 0 8200 0.0 0
>
>
>
>
*******************************************************************************
> Forum Note: Use "Reply" to post a response in the discussion forum.
>
>
--0023544476f96491b2048d50c6d9
Hi,
Today i changed the following parameters
NUMCPUVPS (24 TO 48)BUFFERS (60000 TO 262144) set to 1 GB for buffers. I have 16 GB Ram on server.
NUMAIOVPS (20 TO 4)
CLEANERS (40 TO 85)
LRUS (32 TO 63)
After changing the above in onconfig when I started the engine I got the
following error.
========================================
08:36:26 mt_shm_init: can't create virtual segment
08:36:26 shmat: [ENOMEM][12]: out of available data space, check system memory
parameters (e.g. MAXMEM).
08:36:26 IBM Informix Dynamic Server Started.
=========================================
hence I changed the BUFFERS (from 262144 to 131072) and tried to bring the
engine to online mode.
In message log it was showing following (extract):
===============================================
08:39:52 Affinitied VP 31 to phys proc 6
08:39:52 Affinitied VP 26 to phys proc 1
08:39:51 Affinitied VP 45 to phys proc 4
.
.
.
08:39:51 Could not disable priority aging: errno = 0
08:39:51 Affinitied VP 49 to phys proc 8
08:39:51 Could not disable priority aging: errno = 0
08:39:51 Affinitied VP 24 to phys proc 7
08:39:51 Could not disable priority aging: errno = 0
08:39:51 Affinitied VP 47 to phys proc 6
08:39:51 Checkpoint loguniq 110858, logpos 0x15b018, timestamp: 0xd0a5e80c
08:39:51 Checkpoint Completed: duration was 6 seconds.
08:39:43 Dataskip is now OFF for all dbspaces
08:39:43 Onconfig parameter NUMCPUVPS modified from 24 to 48.
08:39:43 Onconfig parameter LRUS modified from 32 to 63.
08:39:43 Onconfig parameter CLEANERS modified from 40 to 85.
08:39:43 Onconfig parameter BUFFERS modified from 60000 to 131072.
=================================================
As in the ISA Browser it was not showing online mode I put it offline and
tried to again bring it online..
In message log it gave the following error :
==========================================
08:43:22 mt_shm_init: can't create virtual segment
08:43:22 shmget: [EEXIST][17]: key 52564802: shared memory already exists
08:43:22 IBM Informix Dynamic Server Started.
========================================
I rebooted the server after this and when i tried to bring the engine online
in the ISA browser it was giving the following message at the top :
=====================================================
ol_baanerp.1 (MapViewOfFileEx: w32ec=487 at nt_shm.c:671)
08:51:14 Client could not attach server shared memory segment, use
IFX_XFER_SHMBASE.
=====================================================
the error message against the onstat command in informix command prompt was as
follows :
==============================================
"MapViewOfFileEx: w32ec=487 at nt_shm.c:671"
08:59:03 shmat: [22]: operating system error
08:59:03 Client could not attach server shared memory segment, use
IFX_XFER_SHMBASE.
onstat: Cannot attach to shared memory. errno = 22
==============================================
after this i reduced the buffers to 80000 from 131072 and tried to bring
server online
twice and got the following error
===================================
09:01:48 mt_shm_init: can't create virtual segment
09:01:47 shmget: [EEXIST][17]: key 52564802: shared memory already exists
09:01:47 IBM Informix Dynamic Server Started.
===================================
===================================
09:03:54 mt_shm_init: can't create virtual segment
09:03:54 shmget: [EEXIST][17]: key 52564802: shared memory already exists
09:03:54 IBM Informix Dynamic Server Started.
===================================
finally I reverted to following parameters in onconfig file
NUMCPUVPS 24
BUFFERS 60000
NUMAIOVPS 4
CLEANERS 40
LRUS 63
and was able to bring the engine online.
The current onconfig is as follows :
==========================================
#**************************************************************************
#
# Licensed Material - Property Of IBM
#
# "Restricted Materials of IBM"
#
# IBM Informix Dynamic Server
# (c) Copyright IBM Corporation 1996, 2006 All rights reserved.
#
# Title: onconfig.std
# Description: IBM Informix Dynamic Server Configuration Parameters
#
#**************************************************************************
# Root Dbspace Configuration
ROOTNAME rootdbs # Root dbspace name
ROOTPATH G:\\\\IFMXDATA\\\\ol_baanerp\\\\rootdbs_dat.000 # Path for device containingroot dbspace
ROOTOFFSET 0 # Offset of root dbspace into device (Kbytes)
ROOTSIZE 51200 # Size of root dbspace (Kbytes)
# Disk Mirroring Configuration Parameters
MIRROR 1 # Mirroring flag (Yes = 1, No = 0)
MIRRORPATH K:\\\\IFMXDATA\\\\ol_baanerp\\\\rootdbs_mirr.000 # Path for device
containing mirrored root
MIRROROFFSET 0 # Offset into mirrored device (Kbytes)
# Physical Log Configuration
PHYSDBS baandb_plog # Location (dbspace) of physical log
PHYSFILE 2047788 # Physical log file size (Kbytes)
# Logical Log Configuration
LOGFILES 349 # Number of logical log files
LOGSIZE 5000 # Logical log size (Kbytes)
# Security
# DBCREATE_PERMISSION:
# By default any user can create a database. Uncomment DBCREATE_PERMISSON to
# limit database creation to a specific user. Add a new DBCREATE_PERMISSION
# line for each permitted user.
#DBCREATE_PERMISSION informix
# DB_LIBRARY_PATH:
# When loading a (C or C++) shared object (for a UDR or UDT), IDS checks that
# the user-specified path starts with one of the directory prefixes listed in
# the comma-separated list of prefixes in DB_LIBRARY_PATH. The string
# "$INFORMIXDIR/extend" must be included in DB_LIBRARY_PATH in order for
# extensibility and IBM supplied blades to work correctly.
# DB_LIBRARY_PATH $INFORMIXDIR/extend
# Diagnostics
MSGPATH f:\\\\Informix\\\\ol_baanerp.log # System message log file path
CONSOLE f:\\\\Informix\\\\conol_baanerp.log # System console message path
# To automatically backup logical logs, edit alarmprogram.bat and set
# BACKUPLOGS=Y
ALARMPROGRAM f:\\\\Informix\\\\etc\\\\alarmprogram.bat # Alarm program path
TBLSPACE_STATS 1 # Maintain tblspace statistics
# System Diagnostic Script.
# SYSALARMPROGRAM - Full path of the system diagnostic script (e.g.
# c:\\\\informix\\\\etc\\\\evidence.bat.) Set this parameter
# if you want a different Diagnostic Script than
# {INFORMIXDIR}\\\\etc\\\\evidence.bat, which is default.
# System Archive Tape Device
TAPEDEV \\\\\\\\.\\\\TAPE0 # Tape device path
TAPEBLK 16 # Tape block size (Kbytes)
TAPESIZE 419430400 # Maximum amount of data to put on tape (Kbytes)
# Log Archive Tape Device
LTAPEDEV NUL # Log tape device path
LTAPEBLK 16 # Log tape block size (Kbytes)
LTAPESIZE 10240 # Max amount of data to put on log tape (Kbytes)
# Optical
STAGEBLOB # Informix Dynamic Server/Optical staging area
# System Configuration
SERVERNUM 0 # Unique id corresponding to a server instance
DBSERVERNAME ol_baanerp # Name of default Dynamic Server
DBSERVERALIASES # List of alternate dbservernames
NETTYPE onsoctcp,1,,NET # Override sqlhosts nettype parameters
DEADLOCK_TIMEOUT 60 # Max time to wait of lock in distributed env.
RESIDENT 0 # Forced residency flag (Yes = 1, No = 0)
MULTIPROCESSOR 1 # 0 for single-processor, 1 for multi-processor
NUMCPUVPS 24 # Number of user (cpu) vps
SINGLE_CPU_VP 0 # If non-zero, limit number of cpu vps to one
NOAGE 1 # Process aging
AFF_SPROC 1 # Affinity start processor
AFF_NPROCS 8 # Affinity number of processors
# Shared Memory Parameters
LOCKS 50000 # Maximum number of locks
BUFFERS 60000 # Maximum number of shared buffers
NUMAIOVPS 4 # Number of IO vps
PHYSBUFF 32 # Physical log buffer size (Kbytes)
LOGBUFF 64 # Logical log buffer size (Kbytes)
CLEANERS 40 # Number of buffer cleaner processes
SHMBASE 0xC000000L # Shared memory base address
SHMVIRTSIZE 1024000 # initial virtual shared memory segment size
SHMADD 16384 # Size of new shared memory segments (Kbytes)
EXTSHMADD 16384 # Size of new extension shared memory segments (Kbytes)
SHMTOTAL 0 # Total shared memory (Kbytes). 0=>unlimited
CKPTINTVL 300 # Check point interval (in sec)
LRUS 63 # Number of LRU queues
LRU_MAX_DIRTY 10 # LRU percent dirty begin cleaning limit
LRU_MIN_DIRTY 5 # LRU percent dirty end cleaning limit
#>>>>>>>>> TO BE ADDED LATER <<<<<<<<<<<<<<<
#** NEWLY ADDED PARAMETERS AS RECOMMENDED BY BAAN
# DD_HASHSIZE 71 # Number of hash buckets. Should be a prime number
# DD_HASHMAX 10 # Maximum number of Tables in a hash bucket
#** NEWLY ADDED PARAMETERS AS RECOMMENDED BY BAAN
TXTIMEOUT 300 # Transaction timeout (in sec)
STACKSIZE 64 # Stack size (Kbytes)
# Dynamic Logging
# DYNAMIC_LOGS:
# 2 : server automatically add a new logical log when necessary. (ON)
# 1 : notify DBA to add new logical logs when necessary. (ON)
# 0 : cannot add logical log on the fly. (OFF)
#
# When dynamic logging is on, we can have higher values for LTXHWM/LTXEHWM,
# because the server can add new logical logs during long transaction rollback.
# However, to limit the number of new logical logs being added, LTXHWM/LTXEHWM
# can be set to smaller values.
#
# If dynamic logging is off, LTXHWM/LTXEHWM need to be set to smaller values
# to avoid long transaction rollback hanging the server due to lack of logical
# log space, i.e. 50/60 or lower.
#
# In case of system configured with CDR the difference between LTXHWM and
# LTXEHWM should be atleast 30% so that we could minimize log overrun issue.
DYNAMIC_LOGS 2
LTXHWM 70
LTXEHWM 80
# System Page Size
# BUFFSIZE - Dynamic Server no longer supports this configuration parameter.
# To determine the page size used by Dynamic Server on your platform
# see the last line of output from the command, 'onstat -b'.
# Recovery Variables
# OFF_RECVRY_THREADS:
# Number of parallel worker threads during fast recovery or an offline restore.
# ON_RECVRY_THREADS:
# Number of parallel worker threads during an online restore.
OFF_RECVRY_THREADS 10 # Default number of offline worker threads
ON_RECVRY_THREADS 1 # Default number of online worker threads
# Data Replication Variables
DRINTERVAL 30 # DR max time between DR buffer flushes (in sec)
DRTIMEOUT 30 # DR network timeout (in sec)
DRLOSTFOUND \\\\tmp # DR lost+found file path
# CDR Variables
CDR_EVALTHREADS 1,2 # evaluator threads (per-cpu-vp,additional)
CDR_DSLOCKWAIT 5 # DS lockwait timeout (seconds)
CDR_QUEUEMEM 4096 # Maximum memory for any CDR queue (Kbytes)
CDR_NIFCOMPRESS 0 # Link level compression (-1 never, 0 none, 9 max)
CDR_SERIAL 0 # Serial Column Sequence
CDR_DBSPACE # dbspace for syscdr database
CDR_QHDR_DBSPACE # CDR queue dbspace (default same as catalog)
CDR_QDATA_SBSPACE # List of CDR queue smart blob spaces
# CDR_MAX_DYNAMIC_LOGS
# -1 => unlimited
# 0 => disab
You have operating system kernel parameters limiting the amount of shared
memory that you can attach. I don't remember if you posted it, is this a
32bit release of Informix or 64bit release? It looks to me like someone had
made temporary changes to the OS kernel parameters that were lost when you
rebooted.
Art
Art S. Kagel
Advanced DataTools (www.advancedatatools.com)
IIUG Board of Directors (art@iiug.org)
Disclaimer: Please keep in mind that my own opinions are my own opinions and
do not reflect on my employer, Advanced DataTools, the IIUG, nor any other
organization with which I am associated either explicitly, implicitly, or by
inference. Neither do those opinions reflect those of other individuals
affiliated with any entity with which I am affiliated nor those of the
entities themselves.
On Tue, Aug 10, 2010 at 2:05 AM, VINEET AGARWAL <
vineet.agarwal@samsonite.co.in> wrote:
> Hi,
>
> Today i changed the following parameters
>
> NUMCPUVPS (24 TO 48)> BUFFERS (60000 TO 262144) set to 1 GB for buffers. I have 16 GB Ram on
> server.
> NUMAIOVPS (20 TO 4)
> CLEANERS (40 TO 85)
> LRUS (32 TO 63)>
> After changing the above in onconfig when I started the engine I got the
> following error.
> ========================================
> 08:36:26 mt_shm_init: can't create virtual segment
>
> 08:36:26 shmat: [ENOMEM][12]: out of available data space, check system
> memory
> parameters (e.g. MAXMEM).
> 08:36:26 IBM Informix Dynamic Server Started.
> =========================================
>
> hence I changed the BUFFERS (from 262144 to 131072) and tried to bring the
> engine to online mode.
>
> In message log it was showing following (extract):
> ===============================================
> 08:39:52 Affinitied VP 31 to phys proc 6
> 08:39:52 Affinitied VP 26 to phys proc 1
> 08:39:51 Affinitied VP 45 to phys proc 4
> ..
> ..
> ..
> 08:39:51 Could not disable priority aging: errno = 0
> 08:39:51 Affinitied VP 49 to phys proc 8
> 08:39:51 Could not disable priority aging: errno = 0
> 08:39:51 Affinitied VP 24 to phys proc 7
> 08:39:51 Could not disable priority aging: errno = 0
> 08:39:51 Affinitied VP 47 to phys proc 6
> 08:39:51 Checkpoint loguniq 110858, logpos 0x15b018, timestamp: 0xd0a5e80c
> 08:39:51 Checkpoint Completed: duration was 6 seconds.
> 08:39:43 Dataskip is now OFF for all dbspaces
> 08:39:43 Onconfig parameter NUMCPUVPS modified from 24 to 48.
> 08:39:43 Onconfig parameter LRUS modified from 32 to 63.
> 08:39:43 Onconfig parameter CLEANERS modified from 40 to 85.
> 08:39:43 Onconfig parameter BUFFERS modified from 60000 to 131072.
> =================================================
>
> As in the ISA Browser it was not showing online mode I put it offline and
> tried to again bring it online..
>
> In message log it gave the following error :
>
> ==========================================
> 08:43:22 mt_shm_init: can't create virtual segment
> 08:43:22 shmget: [EEXIST][17]: key 52564802: shared memory already exists
> 08:43:22 IBM Informix Dynamic Server Started.
> ========================================
>
> I rebooted the server after this and when i tried to bring the engine
> online
> in the ISA browser it was giving the following message at the top :
>
> =====================================================
> ol_baanerp.1 (MapViewOfFileEx: w32ec=487 at nt_shm.c:671)
> 08:51:14 Client could not attach server shared memory segment, use
> IFX_XFER_SHMBASE.
> =====================================================
>
> the error message against the onstat command in informix command prompt was
> as
> follows :
> ==============================================
> "MapViewOfFileEx: w32ec=487 at nt_shm.c:671"
> 08:59:03 shmat: [22]: operating system error
> 08:59:03 Client could not attach server shared memory segment, use
> IFX_XFER_SHMBASE.
> onstat: Cannot attach to shared memory. errno = 22
> ==============================================
>
> after this i reduced the buffers to 80000 from 131072 and tried to bring
> server online
> twice and got the following error
> ===================================
> 09:01:48 mt_shm_init: can't create virtual segment
> 09:01:47 shmget: [EEXIST][17]: key 52564802: shared memory already exists
> 09:01:47 IBM Informix Dynamic Server Started.
> ===================================
> ===================================
> 09:03:54 mt_shm_init: can't create virtual segment
> 09:03:54 shmget: [EEXIST][17]: key 52564802: shared memory already exists
> 09:03:54 IBM Informix Dynamic Server Started.
> ===================================
>
> finally I reverted to following parameters in onconfig file
> NUMCPUVPS 24
> BUFFERS 60000
> NUMAIOVPS 4
> CLEANERS 40
> LRUS 63>
> and was able to bring the engine online.
>
>
>
>
*******************************************************************************
> Forum Note: Use "Reply" to post a response in the discussion forum.
>
>
--e0cb4e887ee9e155f5048d7648e3
Hi Art, it is a 32 bit Informix as the OS is also 32 bit. But it is a Windows 2003 Enterprise Edition hence it supports upto 32 GB ram. We have 16 GB of physical RAM. No body has made any changes to the OS Kernal parameters... Actually I don't know how u can do it. But does it mean that a 32 bit Informix does not even support 512 MB or 1 GB buffer ??
32bit windows only supports up to about 3GB of memory and IB that processes can only address about 1.4GB or something like that. I'm not a windows expert by any stretch and the only windows copy of Informix I ever run is the one on my laptop that I use for demonstrations - and only reluctantly (it's been down for about 18 months and I just reinstalled the latest 11.50.TC7 release over .TC1 to get it working again so I can do the Advanced DataTools WEBEX Session on Informix Tuning that I'm doing on Aug. 24). AFAIK, you are correct, there are no Windows tunable's. Art Art S. Kagel Advanced DataTools (www.advancedatatools.com) IIUG Board of Directors (art@iiug.org) Disclaimer: Please keep in mind that my own opinions are my own opinions and do not reflect on my employer, Advanced DataTools, the IIUG, nor any other organization with which I am associated either explicitly, implicitly, or by inference. Neither do those opinions reflect those of other individuals affiliated with any entity with which I am affiliated nor those of the entities themselves. On Tue, Aug 10, 2010 at 7:44 AM, VINEET AGARWAL < vineet.agarwal@samsonite.co.in> wrote: > Hi Art, it is a 32 bit Informix as the OS is also 32 bit. But it is a > Windows > 2003 Enterprise Edition hence it supports upto 32 GB ram. We have 16 GB of > physical RAM. > > No body has made any changes to the OS Kernal parameters... Actually I > don't > know how u can do it. > > But does it mean that a 32 bit Informix does not even support 512 MB or 1 > GB > buffer ?? > > > > ******************************************************************************* > Forum Note: Use "Reply" to post a response in the discussion forum. > > --00163628515242c9b6048d772a98
Hello, sorry to interfere on your questions, but you´re dealing with architecture problems, rather than everything else... 32 bits hardware and software have several limits, including filesystem and memory. If you want Informix to "view" your 16 GB you should upgrade to an 64 bits version, and that would also need an OS upgrade ok? Best regards. Em 10/08/2010 07:44, VINEET AGARWAL escreveu: > Hi Art, it is a 32 bit Informix as the OS is also 32 bit. But it is a Windows > 2003 Enterprise Edition hence it supports upto 32 GB ram. We have 16 GB of > physical RAM. > > No body has made any changes to the OS Kernal parameters... Actually I don't > know how u can do it. > > But does it mean that a 32 bit Informix does not even support 512 MB or 1 GB > buffer ?? > > > ******************************************************************************* > Forum Note: Use "Reply" to post a response in the discussion forum. > > -- Alexandre Marini Tecnologia da Informação - DBA SEFAZ-MS / SGI-UGSR / Sistemas IBM-Informix Cert-Info-Mgmt_color <Cert-Info-Mgmt_color.jpg> IBM Informix Dynamic Server Certified Professional V10 / V11
So what is the optimum usage of the current h/w and s/w setup ? How much max RAM can i use with Windows 2003 EE and IDS 9.4 32 bit ?
We use a lot of Windows installs for IDS and found that the upper limit is 1.28GB for the engine in both 9.4 and 11.5 32 bit. IF you exceed the limit the "on" commands start to fail. We were told this was not going to be the case in 11.5 but have submitted a case to them showing that it will not exceed the 1.28GB without issues. We typically set out SHMVIRTSIZE = 512000 then between the locks (500000), and buffers(20-30% range) we can tune it to use about 1.28GB range. You also need to have the /3G setting in the boot.ini for the OS. John A. Chauvin Sr. Technical Consultant > -----Original Message----- > From: ids-bounces@iiug.org [mailto:ids-bounces@iiug.org] On Behalf Of > VINEET AGARWAL > Sent: Tuesday, August 10, 2010 09:34 > To: ids@iiug.org > Subject: Re: optimum usage of resources [20796] > > So what is the optimum usage of the current h/w and s/w setup ? > > How much max RAM can i use with Windows 2003 EE and IDS 9.4 32 bit ? > > > ************************************************************************ ******* > Forum Note: Use "Reply" to post a response in the discussion forum. >
Hi, You can use only about 1.4 GB of shared memory on a 32-bit system. The process address space is limited to 4 GB because that's the maximum 32-bit address. That is a limit of 32-bit systems, not Windows or Informix. Of that 4 GB, only about 1.4 GB is available to use for shared memory. The only way you can use more shared memory is to upgrade to a 64-bit system. Cheers, Dick Snoke IBM ChannelWorks dsnoke@us.ibm.com (404) 487-1595 From: "VINEET AGARWAL" <vineet.agarwal@samsonite.co.in> To: ids@iiug.org Date: 08/10/2010 10:36 AM Subject: Re: optimum usage of resources [20796] Sent by: ids-bounces@iiug.org So what is the optimum usage of the current h/w and s/w setup ? How much max RAM can i use with Windows 2003 EE and IDS 9.4 32 bit ? ******************************************************************************* Forum Note: Use "Reply" to post a response in the discussion forum.
If you were to use the /3GB boot switch then the upper limit for shared= memory for 32-bit Windows should be close to 2.6Gb. Regards, -- Mirav = From: "John Chauvin" <John.Chauvin@mediware.com> = = To: ids@iiug.org = = Date: 08/10/2010 10:05 AM = = Subject: RE: optimum usage of resources [20798] = = Sent by: ids-bounces@iiug.org = = We use a lot of Windows installs for IDS and found that the upper limit= is 1.28GB for the engine in both 9.4 and 11.5 32 bit. IF you exceed the limit the "on" commands start to fail. We were told this was not going to be the case in 11.5 but have submitted a cas= e to them showing that it will not exceed the 1.28GB without issues. We typically set out SHMVIRTSIZE =3D 512000 then between the locks (500000), and buffers(20-30% range) we can tune it to use about 1.28GB range. You also need to have the /3G setting in the boot.ini for the OS. John A. Chauvin Sr. Technical Consultant > -----Original Message----- > From: ids-bounces@iiug.org [mailto:ids-bounces@iiug.org] On Behalf Of= > VINEET AGARWAL > Sent: Tuesday, August 10, 2010 09:34 > To: ids@iiug.org > Subject: Re: optimum usage of resources [20796] > > So what is the optimum usage of the current h/w and s/w setup ? > > How much max RAM can i use with Windows 2003 EE and IDS 9.4 32 bit ? > > > ***********************************************************************= * ******* > Forum Note: Use "Reply" to post a response in the discussion forum. > ***********************************************************************= ******** Forum Note: Use "Reply" to post a response in the discussion forum. =
We tried that and it would not work. Even with the /userva setting added to limit the kernel memory. We could never get the instance above 1.3098GB without the "on" commands erroring out. We opened several cases and it was reproduced in both 9.4TC9 and below as well as 11.50 TC5. Not to say the engine won't add shared memory and go above that but when it does none of the "on" commands would work you get an error. So we limit all our 32 bit systems to 1.3GB and never had an issue after that. We are moving all to 64bit so we don't deal with the limitation anymore. John A. Chauvin Sr. Technical Consultant > -----Original Message----- > From: ids-bounces@iiug.org [mailto:ids-bounces@iiug.org] On Behalf Of Mirav > Kapadia > Sent: Tuesday, August 10, 2010 10:34 > To: ids@iiug.org > Subject: RE: optimum usage of resources [20806] > > If you were to use the /3GB boot switch then the upper limit for shared= > > memory for 32-bit Windows should be close to 2.6Gb. > > Regards, > > -- Mirav > > = > > From: "John Chauvin" <John.Chauvin@mediware.com> = > > = > > To: ids@iiug.org = > > = > > Date: 08/10/2010 10:05 AM = > > = > > Subject: RE: optimum usage of resources [20798] = > > = > > Sent by: ids-bounces@iiug.org = > > = > > We use a lot of Windows installs for IDS and found that the upper limit= > > is 1.28GB for the engine in both 9.4 and 11.5 32 bit. > IF you exceed the limit the "on" commands start to fail. We were > told this was not going to be the case in 11.5 but have submitted a cas= > e > to them showing that it will not exceed the 1.28GB without issues. > > We typically set out SHMVIRTSIZE =3D 512000 then between the locks > (500000), and buffers(20-30% range) we can tune it to use about 1.28GB > range. You also need to have the /3G setting in the boot.ini for the > OS. > > John A. Chauvin > Sr. Technical Consultant > > -----Original Message----- > > From: ids-bounces@iiug.org [mailto:ids-bounces@iiug.org] On Behalf Of= > > > VINEET AGARWAL > > Sent: Tuesday, August 10, 2010 09:34 > > To: ids@iiug.org > > Subject: Re: optimum usage of resources [20796] > > > > So what is the optimum usage of the current h/w and s/w setup ? > > > > How much max RAM can i use with Windows 2003 EE and IDS 9.4 32 bit ? > > > > > > > ***********************************************************************= > * > ******* > > Forum Note: Use "Reply" to post a response in the discussion forum. > > > > ***********************************************************************= > ******** > > Forum Note: Use "Reply" to post a response in the discussion forum. > > = > > > ************************************************************************ ******* > Forum Note: Use "Reply" to post a response in the discussion forum. >
A bit under 2GB total. Art Art S. Kagel Advanced DataTools (www.advancedatatools.com) IIUG Board of Directors (art@iiug.org) Disclaimer: Please keep in mind that my own opinions are my own opinions and do not reflect on my employer, Advanced DataTools, the IIUG, nor any other organization with which I am associated either explicitly, implicitly, or by inference. Neither do those opinions reflect those of other individuals affiliated with any entity with which I am affiliated nor those of the entities themselves. On Tue, Aug 10, 2010 at 10:33 AM, VINEET AGARWAL < vineet.agarwal@samsonite.co.in> wrote: > So what is the optimum usage of the current h/w and s/w setup ? > > How much max RAM can i use with Windows 2003 EE and IDS 9.4 32 bit ? > > > > ******************************************************************************* > Forum Note: Use "Reply" to post a response in the discussion forum. > > --0023544476f99efd4d048d7aaca4
IB that switch only affects the memory available to Windows itself, applications' virtual memory space is sttill limited to a bit under 2GB less code and stack space that leaves under 1.5GB for shared memory addressing. Art Art S. Kagel Advanced DataTools (www.advancedatatools.com) IIUG Board of Directors (art@iiug.org) Disclaimer: Please keep in mind that my own opinions are my own opinions and do not reflect on my employer, Advanced DataTools, the IIUG, nor any other organization with which I am associated either explicitly, implicitly, or by inference. Neither do those opinions reflect those of other individuals affiliated with any entity with which I am affiliated nor those of the entities themselves. On Tue, Aug 10, 2010 at 11:33 AM, Mirav Kapadia <mirav@us.ibm.com> wrote: > If you were to use the /3GB boot switch then the upper limit for shared= > > memory for 32-bit Windows should be close to 2.6Gb. > > Regards, > > -- Mirav > > = > > From: "John Chauvin" <John.Chauvin@mediware.com> = > > = > > To: ids@iiug.org = > > = > > Date: 08/10/2010 10:05 AM = > > = > > Subject: RE: optimum usage of resources [20798] = > > = > > Sent by: ids-bounces@iiug.org = > > = > > We use a lot of Windows installs for IDS and found that the upper limit= > > is 1.28GB for the engine in both 9.4 and 11.5 32 bit. > IF you exceed the limit the "on" commands start to fail. We were > told this was not going to be the case in 11.5 but have submitted a cas= > e > to them showing that it will not exceed the 1.28GB without issues. > > We typically set out SHMVIRTSIZE =3D 512000 then between the locks > (500000), and buffers(20-30% range) we can tune it to use about 1.28GB > range. You also need to have the /3G setting in the boot.ini for the > OS. > > John A. Chauvin > Sr. Technical Consultant > > -----Original Message----- > > From: ids-bounces@iiug.org [mailto:ids-bounces@iiug.org] On Behalf Of= > > > VINEET AGARWAL > > Sent: Tuesday, August 10, 2010 09:34 > > To: ids@iiug.org > > Subject: Re: optimum usage of resources [20796] > > > > So what is the optimum usage of the current h/w and s/w setup ? > > > > How much max RAM can i use with Windows 2003 EE and IDS 9.4 32 bit ? > > > > > > > ***********************************************************************= > * > ******* > > Forum Note: Use "Reply" to post a response in the discussion forum. > > > > ***********************************************************************= > ******** > > Forum Note: Use "Reply" to post a response in the discussion forum. > > = > > > > ******************************************************************************* > Forum Note: Use "Reply" to post a response in the discussion forum. > > --000e0cd20cfefca04c048d7ad47e
We run our IDS 11.50.tc2 on 32bit windows server 2003 standard edition and use
about 2.6Gb of user space for the instance.
onstat -g segSegment Summary:
id key addr size ovhd class blkused blkfree
1381386241 52564801 3000000 1828716544 10941968 R 445874 590
1381386242 52564802 80000000 987299840 5786176 V 124452 116588
Total: - - 2816016384 - - 570326 117178
We lower our base with: SHMBASE 0x3000000L and use SHMVIRTSIZE 563200, SHMADD
32768. Our buffer pool is: BUFFERPOOL size=4K,buffers=500000,...
The most important setting to stop the 'on' commands failing is to exclude the
system dll range from use:
SHMNOACCESS 0x70000000-0x7FFFFFFFBefore this parameter was available we had all sorts of problems with 'on'
commands.
Also check with ProcessExplorer that nothing is loading up in the memory space
between the base and system dll range for the oninit process - some time back
Microsoft released a few patches for some dll's that loaded into this address
range - somewhere around 0x50000000 from memory, but they have since been
updated to move them into the system dll range.
Regards,
Bryce Stenberg.
One of the required patches was for hnetcfg.dll ...
http://support.microsoft.com/kb/948656
Regards,
-- Mirav
=
From: "BRYCE STENBERG" <bryce@hrnz.co.nz> =
=
To: ids@iiug.org =
=
Date: 08/10/2010 04:58 PM =
=
Subject: Re: RE: optimum usage of resources [20828] =
=
Sent by: ids-bounces@iiug.org =
=
We run our IDS 11.50.tc2 on 32bit windows server 2003 standard edition =
and
use
about 2.6Gb of user space for the instance.
onstat -g segSegment Summary:
id key addr size ovhd class blkused blkfree
1381386241 52564801 3000000 1828716544 10941968 R 445874 590
1381386242 52564802 80000000 987299840 5786176 V 124452 116588
Total: - - 2816016384 - - 570326 117178
We lower our base with: SHMBASE 0x3000000L and use SHMVIRTSIZE 563200,
SHMADD
32768. Our buffer pool is: BUFFERPOOL size=3D4K,buffers=3D500000,...The most important setting to stop the 'on' commands failing is to excl=
ude
the
system dll range from use:
SHMNOACCESS 0x70000000-0x7FFFFFFFBefore this parameter was available we had all sorts of problems with '=
on'
commands.
Also check with ProcessExplorer that nothing is loading up in the memor=
y
space
between the base and system dll range for the oninit process - some tim=
e
back
Microsoft released a few patches for some dll's that loaded into this
address
range - somewhere around 0x50000000 from memory, but they have since be=
en
updated to move them into the system dll range.
Regards,
Bryce Stenberg.
***********************************************************************=
********
Forum Note: Use "Reply" to post a response in the discussion forum.
=
And how can I make IDS use more memory resources ?
By Increasing buffer size as mentioned in previous e-mails Regards, Vaibhav S Dantale ___________________________________________________________ Challenge is source of strength QA Manager, Informix Dynamic Server Information Management Address: IBM India Software Labs, Cell: +91-9503161335 Email: vdantale@in.ibm.com My Blue page "VINEET AGARWAL" <vineet.agarwal@samsonite.co.in> Sent by: ids-bounces@iiug.org 08/11/2010 04:04 PM Please respond to ids@iiug.org To ids@iiug.org cc Subject Re: optimum usage of resources [20832] And how can I make IDS use more memory resources ? ******************************************************************************* Forum Note: Use "Reply" to post a response in the discussion forum.
sorry actually I wanted to ask "How do i make use of more Processor Resources"
> sorry actually I wanted to ask "How do i make use of more Processor
> Resources"
Increase the workload?
Informix will use your CPU resources if it needs to. You could add a million
CPUVPs and get CPU utilization up to 100% because more work is being done to
coordinate these million CPUVPs but that would just use more processor
resources for the sake of using more processor resources, it doesn't mean
you'll have better performance.
Start with CPUVPS = physical cores - 1 (7 in your case, don't count
Hyperthreads as cores) and monitor your ready queues with 'onstat -r 1 -g
rea' during peak times, if no threads are showing up in the ready queues
then the CPUVPs you have configured are meeting demand and adding more
CPUVPs won't improve performance.
If you have DSS queries you can use PDQ (set pdqpriority N) and increase
PSORT_NPROCS (env variable) to take adavantage of available CPU.
If you think performance is poor and your CPU utilization is not maxed out
and nothing is in the ready queue then the performance problem is probably
not the CPU. It is most likely the disks and I don't mean AIO/KAIO config
either. I mean the physical disks are slow or the chunk layout does not
distribute I/O evenly across all disks (or both). If the CPUs are bored it
could be because they are waiting on I/O to finish so they can do work.
Andrew
2 Parameters in Onconfig
SHMVIRTSIZE
BUFFERPOOL
If your online log is not saying "Adding shared memory dynamically" then
do not increase SHMVIRTSIZE
You can increase BUFFERPOOL to allocate more memory.
Thanks
Amitava
"VINEET AGARWAL" <vineet.agarwal@samsonite.co.in>
Sent by: ids-bounces@iiug.org
08/11/2010 04:04 PM
Please respond to
ids@iiug.org
To
ids@iiug.org
cc
Subject
Re: optimum usage of resources [20832]
And how can I make IDS use more memory resources ?
*******************************************************************************
Forum Note: Use "Reply" to post a response in the discussion forum.
The onstat -g seg shows
IBM Informix Dynamic Server Version 9.40.TC9 -- On-Line -- Up 07:08:41 --1319232 Kbytes
Segment Summary:
id key addr size ovhd class blkused blkfree
1381386241 1381386241 c000000 302317568 226624 R 73772 36
1381386242 1381386242 1e050000 1048576000 32640 V 49865 206135
Total: - - 1350893568 - - 123637 206171 (* segment locked in memory)
here it shows that 206135 is free. so basically lot of shared memory is free !!
> here it shows that 206135 is free. so basically lot of shared memory is
> free
Monitor the unused memory in the Virtual segment (the one with 206135
blkfree, 1 block = 4KB) and if the blkfree remains constant this can mean
you have more Virtual memory configured than you need and you can reduce the
size of your virtual portion (SHMVIRTSIZE) and increase buffers.
At the time you ran the onstat -g seg command Informix had 824540KB in free
virtual memory (805 MB of your 1.3GB!). The virtual memory is used for
session data, sorting, grouping, PDQ, etc. and if it is free then Informix
doesn't currently have anything going on that can use that memory.
If blkfree remains constant, why not try reducing SHMVIRTSIZE from 1024000
to 512000 and increase BUFFERS by 128000 (I think this would be 188000
buffers total for your current config).
After making this change, monitor onstat -g seg again for a while and if
there is still a considerable amount of blkfree, reduce SHMVIRTSIZE futher
and add more buffers.
Be careful tho, you appear to be at the 1.3GB limit of 32 bit Informix on
Windows so the engine won't be able to dynamically add virtual memory
segments if load increases and more memory is needed to support more
sessions. So be sure to leave enough blkfree to handle spikes in workload
and normal growth.
Andrew
----- Original Message -----
From: "VINEET AGARWAL" <vineet.agarwal@samsonite.co.in>
To: <ids@iiug.org>
Sent: Thursday, August 12, 2010 6:20 AM
Subject: Re: RE: optimum usage of resources [20864]
> The onstat -g seg shows
>
> IBM Informix Dynamic Server Version 9.40.TC9 -- On-Line -- Up 07:08:41 --> 1319232 Kbytes
>
> Segment Summary:
>
> id key addr size ovhd class blkused blkfree
> 1381386241 1381386241 c000000 302317568 226624 R 73772 36
> 1381386242 1381386242 1e050000 1048576000 32640 V 49865 206135
> Total: - - 1350893568 - - 123637 206171 (* segment locked in memory)
>
> here it shows that 206135 is free. so basically lot of shared memory is
> free
> !!
>
>
>
*******************************************************************************
> Forum Note: Use "Reply" to post a response in the discussion forum.
>