Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Mike Lewis on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Problem with Informix checkpints. 1

Status
Not open for further replies.

AndrisS

IS-IT--Management
Oct 12, 2006
20
LV
Good day,

We have problem with full checkpoints on Informix DB.
Sometimes checkpoints are more then 6 sec.

Please help me to reslove problem.
Please see below oconfig file and output from onstat -F command.

oconfig

#**************************************************************************
#
# INFORMIX SOFTWARE, INC.
#
# Title: onconfig.std
# Description: Informix Dynamic Server Configuration Parameters
#
#**************************************************************************

# Root Dbspace Configuration

ROOTNAME rootdb # Root dbspace name
ROOTPATH /dev/rrootdb # Path for device containing root dbspace
ROOTOFFSET 0 # Offset of root dbspace into device (Kbytes)
ROOTSIZE 131072 # 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 plog # Location (dbspace) of physical log
PHYSFILE 16000 # Physical log file size (Kbytes)

# Logical Log Configuration

LOGFILES 785 # Number of logical log files
LOGSIZE 1024 # Logical log size (Kbytes)

# Diagnostics

MSGPATH /ctxtools/informix/online.log # System message log file path
CONSOLE /dev/null # System console message path
ALARMPROGRAM /ctxtools/informix/etc/log_full.sh # Alarm program path
TBLSPACE_STATS 1 # Maintain tblspace statistics

# System Archive Tape Device

TAPEDEV /ctxtools/informix/devices/tape # Tape device path
#TAPEBLK 16 # Tape block size (Kbytes)
TAPEBLK 32768
TAPESIZE 20971520 # Maximum amount of data to put on tape (Kbytes)

# Log Archive Tape Device

LTAPEDEV /ctxtools/informix/devices/ltape # Log tape device path
LTAPEBLK 16 # Log tape block size (Kbytes)
LTAPESIZE 104857600 # Max amount of data to put on log tape (Kbytes)

# Optical

STAGEBLOB # Informix Dynamic Server staging area

# System Configuration

SERVERNUM 0 # Unique id corresponding to a OnLine instance
DBSERVERNAME cortex_online # Name of default database server
DBSERVERALIASES cortex_local # List of alternate dbservernames
NETTYPE soctcp,8,128,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 4 # 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 0 # Affinity start processor
AFF_NPROCS 0 # Affinity number of processors

# Shared Memory Parameters

LOCKS 1000000 # Maximum number of locks
#BUFFERS 131072 # Maximum number of shared buffers
BUFFERS 65536
NUMAIOVPS # Number of IO vps
PHYSBUFF 64 # Physical log buffer size (Kbytes)
LOGBUFF 32 # Logical log buffer size (Kbytes)
CLEANERS 128 # Number of buffer cleaner processes
SHMBASE 0x30000000 # Shared memory base address
#SHMVIRTSIZE 131072 # initial virtual shared memory segment size
SHMVIRTSIZE 1048676
#SHMADD 65536 # Size of new shared memory segments (Kbytes)
SHMADD 262144
SHMTOTAL 0 # Total shared memory (Kbytes). 0=>unlimited
CKPTINTVL 30 # Check point interval (in sec)
LRUS 128 # Number of LRU queues
LRU_MAX_DIRTY 1 # LRU percent dirty begin cleaning limit
LRU_MIN_DIRTY 0 # LRU percent dirty end cleaning limit
TXTIMEOUT 0xa # Transaction timeout (in sec)
STACKSIZE 32


NOFUZZYCKPT 1
# 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.

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 10 # Default number of online worker threads

# Data Replication Variables
DRINTERVAL 0 # DR max time between DR buffer flushes (in sec)
DRTIMEOUT 15 # DR network timeout (in sec)
DRLOSTFOUND /ctxtools/informix/etc/dr.lostfound # 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 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 # CDR queue smart blob space
CDR_QDATA_SBFLAGS 0 # Log/no-log (default no log)


# Backup/Restore variables
BAR_ACT_LOG /ctxtools/informix/bar_act.log
# ON-Bar Log file - not in /tmp please
BAR_DEBUG_LOG /ctxtools/informix/bar_dbug.log
# ON-Bar Debug Log - not in /tmp please
BAR_MAX_BACKUP 0
BAR_RETRY 1
BAR_NB_XPORT_COUNT 10
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 # Number of pages to attempt to read ahead
RA_THRESHOLD # 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 tempdb # 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 /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 1 # 0: use internal time(fast), 1: get time from OS(slow)

# Parallel Database Queries (pdq)
MAX_PDQPRIORITY 20 # Maximum allowed pdqpriority
DS_MAX_QUERIES 1000 # Maximum number of decision support queries
DS_TOTAL_MEMORY # Decision support memory (Kbytes)
DS_MAX_SCANS 1048576 # Maximum number of decision support scans
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 0 # 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 1

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 /ctxtools/informix/etc/evidence.sh # System Alarm program path

# Optimization goal: -1 = ALL_ROWS(Default), 0 = FIRST_ROWS
OPT_GOAL -1

ALLOW_NEWLINE 0 # embedded newlines(Yes = 1, No = 0 or anything but 1)

#
# 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 /ctxtools/informix/extend/krakatoa/jre
# JRE installation root directory
JVPHOME /ctxtools/informix/extend/krakatoa
# Krakatoa installation directory

JVPPROPFILE /ctxtools/informix/extend/krakatoa/.jvpprops # JVP property file
JVPLOGFILE /ctxtools/informix/jvp.log # JVP log file.

JDKVERSION 1.3 # JDK version supported by this server

# The path to the JRE libraries relative to JVPJAVAHOME
JVPJAVALIB /bin

# The JRE libraries to use for the Java VM

JVPJAVAVM hpi:jvm: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 /usr/informix/extend/krakatoa/krakatoa.jar:/usr/informix/extend/krakatoa/jdbc.jar


onstat -F

Fg Writes LRU Writes Chunk Writes
0 37681152 29571184

address flusher state data
5013b618 0 I 0 = 0X0
5013bc18 1 I 0 = 0X0
5013c218 2 I 0 = 0X0
5013c818 3 I 0 = 0X0
5013ce18 4 I 0 = 0X0
5013d418 5 I 0 = 0X0
5013da18 6 I 0 = 0X0
5013e018 7 I 0 = 0X0
5013e618 8 I 0 = 0X0
5013ec18 9 I 0 = 0X0
5013f218 10 I 0 = 0X0
5013f818 11 I 0 = 0X0
states: Exit Idle Chunk Lru
 
Can I ask for you e-mail, because outputs are very long, it is problem to past those here.
 
i was punished for posting my mailaddress in former times, so please don't ask for that :)

you must not post all of the output, just have a look at it and find out, if there are tables with a lot of extents.

if you have chunks with a lot of traffic, so called hot chunks, it would make sense to spread the contents across more chunks/disks.

furthermore you can place the indexes in an own tablespace using the syntax:

create index <myindex> on mytable (myfields) IN INDEXDBS;

where INDEXDBS ist the tablespace for the indexes.

i think we already started a big thread, lets not get confused by doing too many things at the same time.
 
so, here is output from
Select:

table fragments size
alog 171 229872
112_127 107 6848
444_8896 106 9960
442_8882 102 11333
107_81 99 49317
holdcodes 97 9120
443_8889 96 8673
crdaccupl 95 11437
217_1752 92 5060
montxnst 91 7360
eurobin 89 6656
112_4623 87 3356
390_4266 85 4613
226_1795 84 2604
monrspst 83 4936
acslog_usr_btree 82 40378
175_1157 76 2028
crddetmisc 75 3328
158_958 71 17610
crdlimit 70 2904
visapvv 70 4452
391_4271 69 1344
tlogerr 65 3608
cdsthst 61 24579
evlog_btree 60 1296
319_2985 58 901
158_3124 56 7013
199_1542 55 2068


 
#onstat -g iof

Informix Dynamic Server Version 9.30.UC3 -- On-Line -- Up

AIO global files:
gfd pathname totalops dskread dskwrite io/s
3 /dev/rrootdb 40041 8904 31137 0.4
4 /dev/rplog 327607 6 327601 3.5
5 /dev/rllog 730231 181959 548272 7.8
6 /dev/rtlogdataa 367528 238606 128922 3.9
7 /dev/rtlogdatab 873358 811646 61712 9.4
8 /dev/rtmpdb 89045 32930 56115 1.0
9 /dev/rcortexdbc 404990 310377 94613 4.3
10 /dev/rtlogdatac 710886 443418 267468 7.6
11 /dev/rtlogidxb 8559 3419 5140 0.1
12 /dev/rkarte 1206090 1177087 29003 12.9
13 /dev/rshdb 134767 82576 52191 1.4
14 /dev/rtlogidxa 2147943 578715 1569228 23.1
15 /dev/rcortexdba 737505 477186 260319 7.9
16 /dev/rcortexdbb 751178 625902 125276 8.1
17 /dev/rcortexidx 263527 85996 177531 2.8
18 /dev/rtempdb 471685 250801 220884 5.1
 
#onstat -g iov

Informix Dynamic Server Version 9.30.UC3 -- On-Line -- Up 58 days 13:40:56 -- 1403280 Kbytes

AIO I/O vps:
class/vp s io/s totalops dskread dskwrite dskcopy wakeups io/wup errors
kio 0 i 35.3 3288795 2093406 1195389 0 6624827 0.5 0
kio 1 i 37.5 3490802 2092470 1398332 0 6927683 0.5 0
kio 2 i 9.4 872152 339540 532612 0 1784922 0.5 0
kio 3 i 17.3 1614381 784440 829941 0 3264603 0.5 0
msc 0 i 0.3 32565 0 0 0 32539 1.0 0
aio 0 i 0.0 0 0 0 0 0 0.0 0
aio 1 i 0.0 0 0 0 0 0 0.0 0
aio 2 i 0.0 0 0 0 0 0 0.0 0
aio 3 i 0.0 0 0 0 0 0 0.0 0
aio 4 i 0.0 0 0 0 0 0 0.0 0
aio 5 i 0.0 0 0 0 0 0 0.0 0
aio 6 i 0.0 0 0 0 0 0 0.0 0
aio 7 i 0.0 0 0 0 0 0 0.0 0
aio 8 i 0.0 0 0 0 0 0 0.0 0
aio 9 i 0.0 0 0 0 0 0 0.0 0
aio 10 i 0.0 0 0 0 0 0 0.0 0
aio 11 i 0.0 0 0 0 0 0 0.0 0
aio 12 i 0.0 0 0 0 0 0 0.0 0
aio 13 i 0.0 0 0 0 0 0 0.0 0
aio 14 i 0.0 0 0 0 0 0 0.0 0
aio 15 i 0.0 0 0 0 0 0 0.0 0
aio 16 i 0.0 0 0 0 0 0 0.0 0
aio 17 i 0.0 0 0 0 0 0 0.0 0
aio 18 i 0.0 0 0 0 0 0 0.0 0
aio 19 i 0.0 0 0 0 0 0 0.0 0
aio 20 i 0.0 0 0 0 0 0 0.0 0
aio 21 i 0.0 0 0 0 0 0 0.0 0
aio 22 i 0.0 0 0 0 0 0 0.0 0
aio 23 i 0.0 0 0 0 0 0 0.0 0
aio 24 i 0.0 0 0 0 0 0 0.0 0
aio 25 i 0.0 0 0 0 0 0 0.0 0
aio 26 i 0.0 0 0 0 0 0 0.0 0
aio 27 i 0.0 0 0 0 0 0 0.0 0
aio 28 i 0.0 0 0 0 0 0 0.0 0
aio 29 i 0.0 0 0 0 0 0 0.0 0
aio 30 i 0.0 0 0 0 0 0 0.0 0
aio 31 i 0.0 0 0 0 0 0 0.0 0
pio 0 i 0.0 0 0 0 0 0 0.0 0
lio 0 i 0.0 0 0 0 0 0 0.0 0
 
your machine is working with kernel-io so set

NUMAIOVPS 1

since they are not needed.
 
This parameter will disable configuration of NUMAIOVPS?

I just searching for real good anser for NUMAIOVPS paramter why it is needed and why not? speciali for IBM mashine?

Could yoou please explain me if you can?
 
as you can see of the iov-stats there are 32 aio-vps running on your server, which actually do nothing, while the kio-processes do their work. my machine does not support kio so i dont have any kio-processes, but the aios are working.

so if you have kio you do not need asynchronous io, as long as you do not use cooked files, because the kernel-io writes directly, not through the system buffers.

as a rule of thumb you configure one aio-vp for each disk and add two for each buffered file-chunk.

 
So in that case maybe the problem with long checkpoints also?

If it posibble to increace kio? :)

So in the end of this about NUMAIOVPS parameter:

I will set it NUMAIOVPS 1 ?, right?
 
your cpus are very busy with not so important tasks, so we will gain additional cpu-cycles by concentrating on the important stuff. all of this will hopefully improve your throughput, but as you can see from my postings the task is kind of complex and not done by changing a single setting.

concerning your statement about fuzzy-checkpoints ... is it possible that you mixup checkpoints and transactions? this is not the same...
 
Hi AndrisS,

did you get any further with your problems?

Just curious :)
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top