 |
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.
|
 |