Escolar Documentos
Profissional Documentos
Cultura Documentos
Philipp Salvisberg
Technology Manager
Application Performance Mgmt
philipp.salvisberg@trivadis.com
DOAG Conference
Nürnberg, 1st December 2008
Basel · Baden · Berne · Lausanne · Zurich · Düsseldorf · Frankfurt/M. · Freiburg i. Br. · Hamburg · Munich · Stuttgart · Vienna
Who am I?
Head of the
Business Logic
Presentation
Business Logic
Presentation
Integration
Rich Client (ESB, EIB Databases
Data Access)
Business Logic
Introduction
Queue Types
Case Study
Benchmarks
Comprehensive
Textmarkierung
Daten sind
Schrift Verdana
consultancy
Grösse 16 is
Recommendations
immer
Farbe weiss im Spiel.
the through ball
to your Conclusion
performance.
Bildmarkierung
… and dequeue
Examples:
Oracle Scheduler
Introduction
Queue Types
Case Study
Benchmarks
Comprehensive
Textmarkierung
Daten sind
Schrift Verdana
understanding
Grösse 16 is
Recommendations
immer
Farbe weiss im Spiel.
the through ball
to your Conclusion
performance.
Bildmarkierung
App A App B
Request Queue
enqueue dequeue
Producer Consumer
dequeue enqueue
Consumer Producer
Response Queue
Ready
Expired Waiting
Processed
*= additional sub-states exist, e.g. for ready: “in memory”, “deferred”, “spilled”, “deferred spilled”
AQ Design for Best Performance 10 © 2008
Single Consumer Queue – Table Structure
Column Type PK Index 1 Index 2 Comment
Q_NAME VARCHAR2(30) 1
MSGID RAW(16) 1 Generated GUID
CORRID VARCHAR2(128) Correlation ID
PRIORITY NUMBER 3 Message Priority
STATE NUMBER 2
DELAY TIMESTAMP(6)
EXPIRATION NUMBER
TIME_MANAGER_INFO TIMESTAMP(6) 1
LOCAL_ORDER_NO NUMBER 7
CHAIN_NO NUMBER 6
CSCN NUMBER
DSCN NUMBER
ENQ_TIME TIMESTAMP(6) 4
ENQ_UID VARCHAR2(30)
ENQ_TID VARCHAR2(30)
DEQ_TIME TIMESTAMP(6)
DEQ_UID VARCHAR2(30)
DEQ_TID VARCHAR2(30)
RETRY_COUNT NUMBER
EXCEPTION_QSCHEMA VARCHAR2(30)
EXCEPTION_QUEUE VARCHAR2(30)
STEP_NO NUMBER 5
RECIPIENT_KEY NUMBER
DEQUEUE_MSGID RAW(16)
SENDER_NAME VARCHAR2(30)
SENDER_ADDRESS VARCHAR2(1024)
SENDER_PROTOCOL NUMBER
USER_DATA SYS.AQ$_JMS_MESSAGE Payload
USER_PROP SYS.ANYDATA
App A App B
Producer Consumer
dequeue
enqueue B B B
C C C
App C
dequeue Consumer
AQ$_SAMPLE_MC_QT_G
*pfK MSGID
*pfK SUBSCRIBER#
*PK NAME
1 0..* 0..* 1
*PK ADDRESS#
SIG N
DBS_ SIGN
Introduction
Queue Types
Case Study
Benchmarks
Comprehensive
Textmarkierung
Daten sind
Schrift Verdana
understanding
Grösse 16 is
Recommendations
immer
Farbe weiss im Spiel.
the through ball
to your Conclusion
performance.
Bildmarkierung
KPIs Today:
B/W Printing
500 - 1000 pages per minute
Full-Color Printing
Up to 300 page per minute
“Tuning”
Double-sided printing on A3
Get 2 A4 pages by cutting
Quadruple Throughput
~ 4000 pages per minute
~ 67 pages per second
1st Transaction
2nd Transaction
3rd Transaction (per Document)
4th Transaction
5th
6th Transaction
5 Mio Docs
Control Flow
500 Input Files
2’000 Enq.
2’000 Deq.
Document Flow
10’000 Docs/File
5 Mio Enq.
5 Mio Deq.
Introduction
Queue Types
Case Study
Benchmarks
It's about sindtime for
Textmarkierung
Daten
Schrift Verdana
some
Grösse 16 results
Recommendations
immer
Farbe weiss im Spiel.
Conclusion
Bildmarkierung
DOP
1, 2, 4, 8, 16 Bulk?
No, Yes (10)
Payload Size
100 (~330) Payload Type
aq$_jms_message
16 GB RAM 27 GB RAM
MESSAGE_TYPE Persistent
3'500
VOLUME 16000
CONSUMER Single
OPERATION Enqueue
3'000 PAYLOAD_SIZE 100
MESSAGE_PROCESSING AS
2'500 2 - No - Private
2 - No - Shared
msg/sec
2 - Yes - Private
2'000
2 - Yes - Shared
8 - No - Private
1'500 8 - No - Shared
8 - Yes - Private
8 - Yes - Shared
1'000
500
0
1 2 4 8 16
DOP
AQ Design for Best Performance 26 © 2008
Single Consumer Enqueue – No Bulk
12'000 160'000
MESSAGE_TYPE Persistent
VOLUME 16000
CONSUMER Single
140'000 OPERATION Enqueue
10'000 PAYLOAD_SIZE 100
MESSAGE_PROCESSING AS
120'000 BLOCKSIZE 8
BULK_PROCESSING No
8'000 QUEUE_USAGE Private
100'000
Logical I/O
msg/sec
2'000
1'632 20'000
845
411
0 0
1 2 4 8 16
DOP
AQ Design for Best Performance 27 © 2008
Single Consumer Enqueue – Bulk 10 Msgs
3'500 180'000
MESSAGE_TYPE Persistent
VOLUME 16000
160'000
CONSUMER Single
3'000 OPERATION Enqueue
PAYLOAD_SIZE 100
140'000 MESSAGE_PROCESSING AS
2'591 BLOCKSIZE 8
2'500 BULK_PROCESSING Yes
120'000 QUEUE_USAGE Private
2'000
100'000
Logical I/O
1'864
msg/sec
60'000
1'000
779 40'000
500 547
20'000
0 0
1 2 4 8 16
DOP
AQ Design for Best Performance 28 © 2008
Single Consumer Dequeue – Overview
3'000 Blocksize - Bulk? - Queue Usage
MESSAGE_TYPE Persistent
VOLUME 16000
2'500
CONSUMER Single
OPERATION Dequeue
PAYLOAD_SIZE 100
MESSAGE_PROCESSING AS
2'000
2 - No - Private
2 - No - Shared
msg/sec
2 - Yes - Private
1'500
2 - Yes - Shared
8 - No - Private
8 - No - Shared
1'000
8 - Yes - Private
8 - Yes - Shared
500
0
1 2 4 8 16
DOP
AQ Design for Best Performance 29 © 2008
Single Cons. Dequeue – Private vs. Shared Queue
3'000 4'000'000 MESSAGE_TYPE Persistent
VOLUME 16000
2'814
CONSUMER Single
3'500'000 OPERATION Dequeue
2'500 PAYLOAD_SIZE 100
MESSAGE_PROCESSING AS
3'000'000 BLOCKSIZE 8
BULK_PROCESSING No
2'000
1'926
2'500'000
Logical I/O
msg/sec
1'000'000
661
500
339 500'000
167'112
0 0
1 2 4 8 16
DOP
AQ Design for Best Performance 30 © 2008
Single Cons. Enqueue – Private vs. Shared Queue
4'000 200'000 MESSAGE_TYPE Persistent
VOLUME 16000
180'000 CONSUMER Single
3'500 OPERATION Enqueue
3'425
PAYLOAD_SIZE 100
160'000 MESSAGE_PROCESSING AS
3'000 BLOCKSIZE 8
2'892 143'345 BULK_PROCESSING No
140'000
2'500
120'000
Logical I/O
msg/sec
60'000
1'000
845 40'000
500
411 20'000
0 0
1 2 4 8 16
DOP
AQ Design for Best Performance 31 © 2008
Summary AQ Throughput (Single Consumer)
5 Mio Enqueues
3'349 3'425
Shared Queue, 3500
Messages/Second
2500
3425 Mgs/sec, 1460 sec
2000
5 Mio Dequeues 1500 1'239
Shared Queue,
1239 Mgs/sec, 4035 sec 1000
Introduction
Queue Types
Case Study
Benchmarks
Comprehensive
Textmarkierung
Daten sind
Schrift Verdana
consultancy
Grösse 16 is
Recommendations
immer
Farbe weiss im Spiel.
the through ball
to your Conclusion
performance.
Bildmarkierung
Introduction
Queue Types
Case Study
Benchmarks
Comprehensive
Textmarkierung
Daten sind
Schrift Verdana
consultancy
Grösse 16 is
Recommendations
immer
Farbe weiss im Spiel.
the through ball
to your Conclusion
performance.
Bildmarkierung
Single and Multi Consumer Queues have similar throughput, but may
require different configuration (e.g. block size)
?
Basel · Baden · Berne · Lausanne · Zurich · Düsseldorf · Frankfurt/M. · Freiburg i. Br. · Hamburg · Munich · Stuttgart · Vienna