473,327 Members | 1,952 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,327 software developers and data experts.

DB2 9.7 High response time on 50 concurrent users

I am in the process of exploring the possibility of providing our products on databases other than Oracle.I am able to migrate the data, procedures etc without too much effort (latest version of DB2 seems to have improved a lot compared to the earlier ones).*
Unfortunately, I have limited knowledge of DB2, especially in setting the server parameters, their impact on an environment with high concurrency etc. As a result, we are getting very high response times for DB2. DB2 being an enterprise-grade database, I feel we are not doing this correctly and that is why we are getting such poor performance from DB2 compared to other databases.

Please find the configurations for my database named “PROF”.

Database Configuration for Database*

Database configuration release level = 0x0d00
Database release level = 0x0d00

Database territory = US
Database code page = 1208
Database code set = UTF-8
Database country/region code = 1
Database collating sequence = IDENTITY
Alternate collating sequence (ALT_COLLATE) =*
Number compatibility = ON
Varchar2 compatibility = ON
Date compatibility = ON
Database page size = 4096

Dynamic SQL Query management (DYN_QUERY_MGMT) = DISABLE

Statement concentrator (STMT_CONC) = OFF

Discovery support for this database (DISCOVER_DB) = ENABLE

Restrict access = NO
Default query optimization class (DFT_QUERYOPT) = 9
Degree of parallelism (DFT_DEGREE) = 2
Continue upon arithmetic exceptions (DFT_SQLMATHWARN) = NO
Default refresh age (DFT_REFRESH_AGE) = 0
Default maintained table types for opt (DFT_MTTB_TYPES) = SYSTEM
Number of frequent values retained (NUM_FREQVALUES) = 10
Number of quantiles retained (NUM_QUANTILES) = 20

Decimal floating point rounding mode (DECFLT_ROUNDING) = ROUND_HALF_UP

Backup pending = NO

All committed transactions have been written to disk = NO
Rollforward pending = NO
Restore pending = NO

Multi-page file allocation enabled = YES

Log retain for recovery status = NO
User exit for logging status = NO

Self tuning memory (SELF_TUNING_MEM) = ON
Size of database shared memory (4KB) (DATABASE_MEMORY) = 153600
Database memory threshold (DB_MEM_THRESH) = 10
Max storage for lock list (4KB) (LOCKLIST) = 6199
Percent. of lock lists per application (MAXLOCKS) = 97
Package cache size (4KB) (PCKCACHESZ) = 9600
Sort heap thres for shared sorts (4KB) (SHEAPTHRES_SHR) = AUTOMATIC(424)
Sort list heap (4KB) (SORTHEAP) = AUTOMATIC(64)

Database heap (4KB) (DBHEAP) = 4096
Catalog cache size (4KB) (CATALOGCACHE_SZ) = 300
Log buffer size (4KB) (LOGBUFSZ) = 1200
Utilities heap size (4KB) (UTIL_HEAP_SZ) = 16278
Buffer pool size (pages) (BUFFPAGE) = 15000
SQL statement heap (4KB) (STMTHEAP) = AUTOMATIC(2048)
Default application heap (4KB) (APPLHEAPSZ) = 4096
Application Memory Size (4KB) (APPL_MEMORY) = AUTOMATIC(150016)
Statistics heap size (4KB) (STAT_HEAP_SZ) = AUTOMATIC(4384)

Interval for checking deadlock (ms) (DLCHKTIME) = 10000
Lock timeout (sec) (LOCKTIMEOUT) = -1

Changed pages threshold (CHNGPGS_THRESH) = 80
Number of asynchronous page cleaners (NUM_IOCLEANERS) = 4
Number of I/O servers (NUM_IOSERVERS) = 6
Index sort flag (INDEXSORT) = YES
Sequential detect flag (SEQDETECT) = YES
Default prefetch size (pages) (DFT_PREFETCH_SZ) = AUTOMATIC

Track modified pages (TRACKMOD) = OFF

Default number of containers = 1
Default tablespace extentsize (pages) (DFT_EXTENT_SZ) = 32

Max number of active applications (MAXAPPLS) = 1200
Average number of active applications (AVG_APPLS) = 500
Max DB files open per application (MAXFILOP) = 30720

Log file size (4KB) (LOGFILSIZ) = 1024
Number of primary log files (LOGPRIMARY) = 13
Number of secondary log files (LOGSECOND) = 4
Changed path to log files (NEWLOGPATH) =*
Path to log files = /home/db2inst/db2inst/NODE0000/SQL00002/SQLOGDIR/
Overflow log path (OVERFLOWLOGPATH) =*
Mirror log path (MIRRORLOGPATH) =*
First active log file =*
Block log on disk full (BLK_LOG_DSK_FUL) = NO
Block non logged operations (BLOCKNONLOGGED) = NO
Percent max primary log space by transaction (MAX_LOG) = 0
Num. of active log files for 1 active UOW(NUM_LOG_SPAN) = 0

Group commit count (MINCOMMIT) = 1
Percent log file reclaimed before soft chckpt (SOFTMAX) = 520
Log retain for recovery enabled (LOGRETAIN) = OFF
User exit for logging enabled (USEREXIT) = OFF

HADR database role = STANDARD
HADR local host name (HADR_LOCAL_HOST) =*
HADR local service name (HADR_LOCAL_SVC) =*
HADR remote host name (HADR_REMOTE_HOST) =*
HADR remote service name (HADR_REMOTE_SVC) =*
HADR instance name of remote server (HADR_REMOTE_INST) =*
HADR timeout value (HADR_TIMEOUT) = 120
HADR log write synchronization mode (HADR_SYNCMODE) = NEARSYNC
HADR peer window duration (seconds) (HADR_PEER_WINDOW) = 0

First log archive method (LOGARCHMETH1) = OFF
Options for logarchmeth1 (LOGARCHOPT1) =*
Second log archive method (LOGARCHMETH2) = OFF
Options for logarchmeth2 (LOGARCHOPT2) =*
Failover log archive path (FAILARCHPATH) =*
Number of log archive retries on error (NUMARCHRETRY) = 5
Log archive retry Delay (secs) (ARCHRETRYDELAY) = 20
Vendor options (VENDOROPT) =*

Auto restart enabled (AUTORESTART) = ON
Index re-creation time and redo index build (INDEXREC) = SYSTEM (RESTART)
Log pages during index build (LOGINDEXBUILD) = OFF
Default number of loadrec sessions (DFT_LOADREC_SES) = 1
Number of database backups to retain (NUM_DB_BACKUPS) = 12
Recovery history retention (days) (REC_HIS_RETENTN) = 366
Auto deletion of recovery objects (AUTO_DEL_REC_OBJ) = OFF

TSM management class (TSM_MGMTCLASS) =*
TSM node name (TSM_NODENAME) =*
TSM owner (TSM_OWNER) =*
TSM password (TSM_PASSWORD) =*

Automatic maintenance (AUTO_MAINT) = ON
Automatic database backup (AUTO_DB_BACKUP) = OFF
Automatic table maintenance (AUTO_TBL_MAINT) = ON
Automatic runstats (AUTO_RUNSTATS) = ON
Automatic statement statistics (AUTO_STMT_STATS) = ON
Automatic statistics profiling (AUTO_STATS_PROF) = OFF
Automatic profile updates (AUTO_PROF_UPD) = OFF
Automatic reorganization (AUTO_REORG) = OFF

Auto-Revalidation (AUTO_REVAL) = DEFERRED_FORCE
Currently Committed (CUR_COMMIT) = ON
CHAR output with DECIMAL input (DEC_TO_CHAR_FMT) = NEW
Enable XML Character operations (ENABLE_XMLCHAR) = YES
WLM Collection Interval (minutes) (WLM_COLLECT_INT) = 0
Monitor Collect Settings
Request metrics (MON_REQ_METRICS) = BASE
Activity metrics (MON_ACT_METRICS) = BASE
Object metrics (MON_OBJ_METRICS) = BASE
Unit of work events (MON_UOW_DATA) = NONE
Lock timeout events (MON_LOCKTIMEOUT) = NONE
Deadlock events (MON_DEADLOCK) = WITHOUT_HIST
Lock wait events (MON_LOCKWAIT) = NONE
Lock wait event threshold (MON_LW_THRESH) = 5000000
Please find the apache JMeter output for a flow of one application
Number of Threads: 50
Ramp up Period: 1
See the last seven threads (shown in bold). The time taken is little big. Rest is OK
1. Samples Start Time Thread Name Label Sample Time(ms) Status
1 30:04.7 Thread Group 1-3 Java Request 493 Success
2 30:04.8 Thread Group 1-5 Java Request 638 Success
3 30:04.7 Thread Group 1-2 Java Request 708 Success
4 30:04.7 Thread Group 1-4 Java Request 925 Success
5 30:04.8 Thread Group 1-8 Java Request 884 Success
6 30:04.9 Thread Group 1-11 Java Request 995 Success
7 30:04.7 Thread Group 1-1 Java Request 1296 Success
8 30:04.9 Thread Group 1-12 Java Request 1091 Success
9 30:04.8 Thread Group 1-9 Java Request 1219 Success
10 30:04.9 Thread Group 1-14 Java Request 1314 Success
11 30:04.9 Thread Group 1-10 Java Request 1518 Success
12 30:05.2 Thread Group 1-26 Java Request 1190 Success
13 30:05.4 Thread Group 1-36 Java Request 1046 Success
14 30:05.0 Thread Group 1-15 Java Request 1488 Success
15 30:05.3 Thread Group 1-33 Java Request 1175 Success
16 30:05.2 Thread Group 1-25 Java Request 1522 Success
17 30:04.9 Thread Group 1-13 Java Request 1814 Success
18 30:05.0 Thread Group 1-16 Java Request 1753 Success
19 30:05.1 Thread Group 1-23 Java Request 1715 Success
20 30:05.1 Thread Group 1-22 Java Request 1776 Success
21 30:05.3 Thread Group 1-31 Java Request 1611 Success
22 30:05.4 Thread Group 1-34 Java Request 1607 Success
23 30:05.5 Thread Group 1-39 Java Request 1699 Success
24 30:05.1 Thread Group 1-21 Java Request 2094 Success
25 30:05.5 Thread Group 1-40 Java Request 1716 Success
26 30:05.1 Thread Group 1-19 Java Request 2156 Success
27 30:05.5 Thread Group 1-42 Java Request 1680 Success
28 30:05.6 Thread Group 1-44 Java Request 1654 Success
29 30:05.7 Thread Group 1-49 Java Request 1571 Success
30 30:05.6 Thread Group 1-43 Java Request 1713 Success
31 30:05.4 Thread Group 1-35 Java Request 1903 Success
32 30:05.2 Thread Group 1-27 Java Request 2070 Success
33 30:05.7 Thread Group 1-50 Java Request 1603 Success
34 30:05.4 Thread Group 1-37 Java Request 1916 Success
35 30:05.5 Thread Group 1-41 Java Request 1834 Success
36 30:05.6 Thread Group 1-46 Java Request 1749 Success
37 30:05.0 Thread Group 1-17 Java Request 2359 Success
38 30:05.1 Thread Group 1-20 Java Request 2369 Success
39 30:05.0 Thread Group 1-18 Java Request 2434 Success
40 30:05.4 Thread Group 1-38 Java Request 2691 Success
41 30:05.6 Thread Group 1-45 Java Request 2615 Success
42 30:05.3 Thread Group 1-29 Java Request 3140 Success
43 30:05.3 Thread Group 1-32 Java Request 3809 Success
44 30:04.8 Thread Group 1-6 Java Request 35668 Success
45 30:05.6 Thread Group 1-47 Java Request 48985 Success
46 30:05.2 Thread Group 1-24 Java Request 52014 Success
47 30:05.7 Thread Group 1-48 Java Request 51951 Success
48 30:05.3 Thread Group 1-30 Java Request 57415 Success
49 30:05.2 Thread Group 1-28 Java Request 58674 Success
50 30:04.8 Thread Group 1-7 Java Request 60648 Success


Please help me resolve this issue f high response time towards the end.
Dec 14 '09 #1
1 5551
One thing sticks out here:

DFT_QUERY_OPT=9

This defaults to 5 which is usually an OK setting; 9 means the Optimizer will check out every possibility it can think of. Thus, if you have a lot of dynamic SQL (and you probably do, given Java), this will be chewing up a lot of elapsed (& CPU!) time.
Apr 27 '10 #2

Sign in to post your reply or Sign up for a free account.

Similar topics

7
by: Irmen de Jong | last post by:
Hi, Things like Twisted, medusa, etc.... that claim to be able to support hundreds of concurrent connections because of the async I/O framework they're based on.... can someone give a few...
3
by: PW | last post by:
Hi, I'm using WinXP-Pro, ASP classic, IIS 5.0. I regularly get this error, but I know I am the only user accessing the website at the time of the error. I looked it up on the MS support...
1
by: bluedolphin | last post by:
There seems to be a consensus that Access has a concurrent user limit of 200 users. I am working on a system that currently stands at approx. 1 gig and has a small number of users. However, there...
3
by: mgPA | last post by:
Short: How can I limit the number of concurrent logins to Access (2000) DB? Long: I seem to be having the problem discussed in previous postings of having more than 9 or 10 concurrent logins. ...
8
by: pnp | last post by:
Hi all, I've developed a win C# app that is actually database driven using SQL server 2000. The idea is that only one application will be installed on a server in a network and the program will be...
6
by: Bill Manring | last post by:
I have an ASP.NET application which my company sells comercially. We license on a concurrent user model, but we currently rely on the "honor" system for the customers to give us their best guess...
2
by: mgalvez | last post by:
I'm developing an interface that sends a file to the client. it works but the client also gets an "Action canceled" page (IE) how can I remove this page? or display the application home page? ...
2
by: mktselvan | last post by:
Hi, Existing running oracle application 11i (11.5.8) Database version is 8.1.7.4 There is any command / way to know the number of concurrent users for this application. ...
3
by: satishknight | last post by:
Hi, Can some one tell me how to change the validation sequence for the code pasted below, actually what I want it when any one enters the wrong login information (already registered users) then it...
0
by: DolphinDB | last post by:
Tired of spending countless mintues downsampling your data? Look no further! In this article, you’ll learn how to efficiently downsample 6.48 billion high-frequency records to 61 million...
0
by: ryjfgjl | last post by:
ExcelToDatabase: batch import excel into database automatically...
0
by: Vimpel783 | last post by:
Hello! Guys, I found this code on the Internet, but I need to modify it a little. It works well, the problem is this: Data is sent from only one cell, in this case B5, but it is necessary that data...
1
by: PapaRatzi | last post by:
Hello, I am teaching myself MS Access forms design and Visual Basic. I've created a table to capture a list of Top 30 singles and forms to capture new entries. The final step is a form (unbound)...
1
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
1
by: Defcon1945 | last post by:
I'm trying to learn Python using Pycharm but import shutil doesn't work
1
by: Shællîpôpï 09 | last post by:
If u are using a keypad phone, how do u turn on JavaScript, to access features like WhatsApp, Facebook, Instagram....
0
by: af34tf | last post by:
Hi Guys, I have a domain whose name is BytesLimited.com, and I want to sell it. Does anyone know about platforms that allow me to list my domain in auction for free. Thank you
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome former...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.