  | 
 IDS Forum
 Re: Poor Performanc with Multiple DB's in one Inst
 Posted By: Keith Simmons Date: Friday, 30 January 2009, at 8:43 a.m.
In Response To: Re: Poor Performanc with Multiple DB's in one Inst (ANEES AHMAD)
  
2009/1/30 ANEES AHMAD <aanees@i2cinc.com>:
 > Hello,
 >
 > Please see my comments below.
 >
 > What OS and what versoin of IDS are you using?
 > [Anees Ahmad] We are using SunOS CA-MCPDB2 5.10 Generic_125100-09 sun4v sparc
 > SUNW,Sun-Fire-T200 and the IDS version is 10.0. It's a 6 core machine with 4
 > threads per core.
 >
 > How large is the buffer pool (BUFFERS from the onconfig file)?
 > [Anees Ahmad] This information is available in the onconfig file which is as
 > follows
 >
 > # vi /u/informix/etc/onconfig_mcp15
 > #**************************************************************************
 > #
 > # Licensed Material - Property Of IBM
 > #
 > # "Restricted Materials of IBM"
 > #
 > # IBM Informix Dynamic Server
 > # (c) Copyright IBM Corporation 1996, 2005 All rights reserved.
 > #
 > # Title: onconfig.std
 > # Description: IBM Informix Dynamic Server Configuration Parameters
 > #
 > #**************************************************************************
 >
 > # Root Dbspace Configuration
 >
 > ROOTNAME rootdbs_mcp15 # Root dbspace name
 > ROOTPATH /u1/ids_space/rootdbs_mcp15
 >
 > # Path for device containing root dbspace
 > ROOTOFFSET 0 # Offset of root dbspace into device (Kbytes)
 > ROOTSIZE 256000 # Size of root dbspace (Kbytes)
 >
 > # Disk Mirroring Configuration Parameters
 >
 > MIRROR 0 # Mirroring flag (Yes = 1, No = 0)
 > MIRRORPATH # Path for device containing mirrored root
 > MIRROROFFSET 0 # Offset into mirrored device (Kbytes)
 >
 > # Physical Log Configuration
 >
 > PHYSDBS rootdbs_mcp15 # Location (dbspace) of physical log
 > PHYSFILE 10000 # Physical log file size (Kbytes)
 >
 > # Logical Log Configuration
 >
 > LOGFILES 23 # Number of logical log files
 > LOGSIZE 50000 # Logical log size (Kbytes)
 > LOG_BACKUP_MODE CONT # Logical log backup mode (MANUAL, CONT)
 >
 > # Tablespace Tablespace Configuration in Root Dbspace
 >
 > TBLTBLFIRST 5120 # First extent size (Kbytes) (0 = default)
 > TBLTBLNEXT 5120 # Next extent size (Kbytes) (0 = default)
 >
 > # 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
 >
 > # IFX_EXTEND_ROLE:
 > # 0 (or off) => Disable use of EXTEND role to control who can register
 > # external routines.
 > # 1 (or on) => Enable use of EXTEND role to control who can register
 > # external routines. This is the default behaviour.
 > #
 > IFX_EXTEND_ROLE 1 # To control the usage of EXTEND role.
 >
 > # Diagnostics
 >
 > MSGPATH /u/informix/online_mcp15.log # System message log file path
 > CONSOLE /dev/console # System console message path
 >
 > # To automatically backup logical logs, edit alarmprogram.sh and set
 > # BACKUPLOGS=Y
 > ALARMPROGRAM /u/informix/etc/alarmprogram.sh # Alarm program path
 > ALRM_ALL_EVENTS 1 # Triggers ALARMPROGRAM for any event occur
 > TBLSPACE_STATS 1 # Maintain tblspace statistics
 >
 > # System Archive Tape Device
 >
 > TAPEDEV /u/ids_backup/data_mcp15 # Tape device path
 > TAPEBLK 128 # Tape block size (Kbytes)
 > TAPESIZE 2048000 # Maximum amount of data to put on tape (Kbytes)
 >
 > # Log Archive Tape Device
 >
 > LTAPEDEV /u/ids_backup/llog_mcp15 # Log tape device path
 > LTAPEBLK 128 # Log tape block size (Kbytes)
 > LTAPESIZE 2048000 # Max amount of data to put on log tape (Kbytes)
 >
 > # Optical
 >
 > STAGEBLOB # Informix Dynamic Server staging area
 >
 > # System Configuration
 >
 > SERVERNUM 15 # Unique id corresponding to a OnLine instance
 > DBSERVERNAME ids_rep15 # Name of default database server
 > DBSERVERALIASES ids_net_rep15 # List of alternate dbservernames
 > NETTYPE ipcshm,23,250,CPU # Configure poll thread(s) for nettype
 > NETTYPE tlitcp,23,250,NET # Configure poll thread(s) for nettype
 > 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 23 # Number of user (cpu) vps
 > SINGLE_CPU_VP 0 # If non-zero, limit number of cpu vps to one
 >
 > NOAGE 0 # Process aging
 > AFF_SPROC 0 # Affinity start processor
 > AFF_NPROCS 23 # Affinity number of processors
 >
 > # Shared Memory Parameters
 >
 > LOCKS 2000000 # Maximum number of locks
 > NUMAIOVPS 8 # Number of IO vps
 > PHYSBUFF 128 # Physical log buffer size (Kbytes)
 > LOGBUFF 128 # Logical log buffer size (Kbytes)
 > CLEANERS 16 # Number of buffer cleaner processes
 > SHMBASE 0x10a000000 # Shared memory base address
 > SHMVIRTSIZE 16384 # 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 2048000 # Total shared memory (Kbytes). 0=>unlimited
 > CKPTINTVL 300 # Check point interval (in sec)
 > TXTIMEOUT 0x12c # Transaction timeout (in sec) 300
 > STACKSIZE 128 # 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 0
 > LTXHWM 50
 > LTXEHWM 60
 >
 > # System Page Size
 > # BUFFSIZE - OnLine no longer supports this configuration parameter.
 > # To determine the page size used by OnLine 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
 > # DRAUTO: 0 manual, 1 retain type, 2 reverse type
 > DRAUTO 0 # DR automatic switchover
 > DRINTERVAL 30 # DR max time between DR buffer flushes (in sec)
 > DRTIMEOUT 30 # DR network timeout (in sec)
 > DRLOSTFOUND /u/informix/etc/dr.lostfound # DR lost+found file path
 > DRIDXAUTO 0 # DR automatic index repair. 0=off, 1=on
 >
 > # CDR Variables
 > CDR_EVALTHREADS 1,2 # evaluator threads (per-cpu-vp,additional)
 > CDR_DSLOCKWAIT 5 # DS lockwait timeout (seconds)
 > CDR_QUEUEMEM 4096 # Maximum amount of memory for any CDR queue (Kbytes)
 > CDR_NIFCOMPRESS 0 # Link level compression (-1 never, 0 none, 9 max)
 > CDR_SERIAL 0,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 => disable dynamic log addition
 > # >0 => limit the no. of dynamic log additions with the specified value.
 > # Max dynamic log requests that CDR can make within one server session.
 >
 > CDR_MAX_DYNAMIC_LOGS 0 # Dynamic log addition disabled by default
 >
 > # Backup/Restore variables
 > BAR_ACT_LOG /u/informix/bar_act.log # ON-Bar Log file - not in /tmp please
 > BAR_DEBUG_LOG /u/informix/bar_dbug.log # ON-Bar Debug Log - not in /tmp please
 > BAR_MAX_BACKUP 0
 > BAR_RETRY 1
 > BAR_NB_XPORT_COUNT 20
 > BAR_XFER_BUF_SIZE 31
 > RESTARTABLE_RESTORE on
 > BAR_PROGRESS_FREQ 0
 >
 > # Informix Storage Manager variables
 > ISM_DATA_POOL ISMData
 > ISM_LOG_POOL ISMLogs
 >
 > # Read Ahead Variables
 > RA_PAGES 30 # Number of pages to attempt to read ahead
 > RA_THRESHOLD 25 # Number of pages left before next group
 >
 > # DBSPACETEMP:
 > # OnLine equivalent of DBTEMP for SE. This is the list of dbspaces
 > # that the OnLine SQL Engine will use to create temp tables etc.
 > # If specified it must be a colon separated list of dbspaces that exist
 > # when the OnLine system is brought online. If not specified, or if
 > # all dbspaces specified are invalid, various ad hoc queries will create
 > # temporary files in /tmp instead.
 >
 > DBSPACETEMP tempdbs_mcp15 # Default temp dbspaces
 >
 > # DUMP*:
 > # The following parameters control the type of diagnostics information which
 > # is preserved when an unanticipated error condition (assertion failure)
 > occurs
 > # during OnLine operations.
 > # For DUMPSHMEM, DUMPGCORE and DUMPCORE 1 means Yes, 0 means No.
 >
 > DUMPDIR /u/informix/tmp # Preserve diagnostics in this directory
 > DUMPSHMEM 1 # Dump a copy of shared memory
 > DUMPGCORE 0 # Dump a core image using 'gcore'
 > DUMPCORE 0 # Dump a core image (Warning:this aborts OnLine)
 > DUMPCNT 1 # Number of shared memory or gcore dumps for
 >
 > # a single user's session
 >
 > FILLFACTOR 90 # Fill factor for building indexes
 >
 > # method for OnLine to use when determining current time
 > USEOSTIME 0 # 0: use internal time(fast), 1: get time from OS(slow)
 >
 > # Parallel Database Queries (pdq)
 > MAX_PDQPRIORITY 100 # Maximum allowed pdqpriority
 > DS_MAX_QUERIES # Maximum number of decision support queries
 > DS_TOTAL_MEMORY # Decision support memory (Kbytes)
 > DS_MAX_SCANS 1048576 # Maximum number of decision support scans
 > DS_NONPDQ_QUERY_MEM 512 # Non PDQ query memory (Kbytes)
 > DATASKIP off # List of dbspaces to skip
 >
 > # OPTCOMPIND
 > # 0 => Nested loop joins will be preferred (where
 > # possible) over sortmerge joins and hash joins.
 > # 1 => If the transaction isolation mode is not
 > # "repeatable read", optimizer behaves as in (2)
 > # below. Otherwise it behaves as in (0) above.
 > # 2 => Use costs regardless of the transaction isolation
 > # mode. Nested loop joins are not necessarily
 > # preferred. Optimizer bases its decision purely
 > # on costs.
 > OPTCOMPIND 2 # To hint the optimizer
 >
 > DIRECTIVES 1 # Optimizer DIRECTIVES ON (1/Default) or OFF (0)
 >
 > ONDBSPACEDOWN 2 # Dbspace down option: 0 = CONTINUE, 1 = ABORT, 2 = WAIT
 > OPCACHEMAX 0 # Maximum optical cache size (Kbytes)
 >
 > # HETERO_COMMIT (Gateway participation in distributed transactions)
 > # 1 => Heterogeneous Commit is enabled
 > # 0 (or any other value) => Heterogeneous Commit is disabled
 > HETERO_COMMIT 0
 >
 > SBSPACENAME # Default smartblob space name - this is where blobs
 >
 > # go if no sbspace is specified when the smartblob is
 >
 > # created. It is also used by some datablades as
 >
 > # the location to put their smartblobs.
 > SYSSBSPACENAME # Default smartblob space for use by the Informix
 >
 > # Server. This is used primarily for Informix Server
 >
 > # system statistics collection.
 >
 > BLOCKTIMEOUT 3600 # Default timeout for system block
 > SYSALARMPROGRAM /u/informix/etc/evidence.sh # System Alarm program path
 >
 > # Optimization goal: -1 = ALL_ROWS(Default), 0 = FIRST_ROWS
 > OPT_GOAL 0
 >
 > ALLOW_NEWLINE 0 # embedded newlines(Yes = 1, No = 0 or anything but 1)
 >
 > #Create Index Online Shared Memory usage limitation
 > ONLIDX_MAXMEM 5120 # Per pool per index (Kbytes)
 >
 > #Timeout for client connection request
 > LISTEN_TIMEOUT 10 # Timeout (in Seconds)
 >
 > #Following are the deprecated configuration parameters, instead of these
 > #use BUFFERPOOL configuration parameter
 > #BUFFERS, LRUS, LRU_MIN_DIRTY, LRU_MAX_DIRTY
 >
 > IFX_FOLDVIEW 1 # fold multiple tables or union all view with ansi joins
 > #
 > # The following are default settings for enabling Java in the database.
 > # Replace all occurrences of /usr/informix with the value of $INFORMIXDIR.
 >
 > #VPCLASS jvp,num=1 # Number of JVPs to start with
 >
 > JVPJAVAHOME /u/informix/extend/krakatoa/jre/
 >
 > # JRE installation root directory
 > JVPHOME /u/informix/extend/krakatoa # Krakatoa installation directory
 >
 > JVPPROPFILE /u/informix/extend/krakatoa/.jvpprops # JVP property file
 > JVPLOGFILE /u/informix/jvp.log # JVP log file.
 >
 > JDKVERSION 1.4 # JDK version supported by this server
 >
 > # The path to the JRE libraries relative to JVPJAVAHOME
 > JVPJAVALIB /lib/sparcv9/
 >
 > # The JRE libraries to use for the Java VM
 >
 > JVPJAVAVM hpi:server:verify:java:net:zip:jpeg
 >
 > # use JVPARGS to change Java VM configuration
 > #To display jni call
 > #JVPARGS -verbose:jni
 >
 > # Classpath to use upon Java VM start-up (use _g version for debugging)
 >
 > # JVPCLASSPATH
 > /usr/informix/extend/krakatoa/krakatoa_g.jar:/usr/informix/extend/krakatoa/jdbc_g.jar
 > JVPCLASSPATH
 > /u/informix/extend/krakatoa/krakatoa.jar:/u/informix/extend/krakatoa/jdbc.jar
 >
 > # The following parameters are related to the buffer pool
 > #BUFFERPOOL default,buffers=1000,lrus=8,lru_min_dirty=50,lru_max_dirty=60
 > BUFFERPOOL
 > size=2K,buffers=6000,lrus=23,lru_min_dirty=50.000000,lru_max_dirty=60.000000
 >
 > DEF_TABLE_LOCKMODE ROW
 >
 > How many users are connected to each database?
 > [Anees Ahmad]Around 200 users are connected to each database.
 >
 > [Anees Ahmad] onstat -p information is follows
 > Profile
 > dskreads pagreads bufreads %cached dskwrits pagwrits bufwrits %cached
 > 271298587 309917607 1355874794 79.99 945142 1401015 3611393 73.89
 >
 > isamtot open start read write rewrite delete commit rollbk
 > 1207750804 29722553 51104894 1035124601 390575 767451 160802 573155 219
 >
 > gp_read gp_write gp_rewrt gp_del gp_alloc gp_free gp_curs
 > 0 0 0 0 0 0 0
 >
 > ovlock ovuserthread ovbuff usercpu syscpu numckpts flushes
 > 0 0 0 127776.31 34386.69 1196 2398
 >
 > bufwaits lokwaits lockreqs deadlks dltouts ckpwaits compress seqscans
 > 4657818 489 1228094352 0 0 167 132651 641062
 >
 > ixda-RA idx-RA da-RA RA-pgsused lchwaits
 > 29115363 67044 3597317 32611572 1262355
 >
 >
 > *******************************************************************************
 > Forum Note: Use "Reply" to post a response in the discussion forum.
 >
 >
 Anees
 6000 buffers (12 Mb shared memory!) on any modern machine is
 ridiculous! Increase to 600,000 (1.2 Gb)
 and see what happens! Read and write % should get musch higher and
 your performance will inprove beyond recognition.
 Keith
 
  
Messages In This Thread
 
IDS Forum is maintained by Administrator with WebBBS 5.12.
  | 
  |