Mail Performance Tuning

Download Report

Transcript Mail Performance Tuning

Joe Pearce
Manager
Performance & Benchmarking
Oracle Corporation
Messaging & Calendaring
with
Oracle Collaboration Suite
10g
Suite Architecture
 Distributed solution
–
–
Tune each system
Application
Tune connection pools
Servers
Storage
Servers
Directory
Server
Mail Service behavior
 Servers discover parameters in the Internet Directory
–
LDAP also used for authentication and name resolution
 Servers pin connection pools for all mail stores and
Mail Servers
directory as needed
Storage
Servers
Directory
Server
Overview of Mail Architecture
SMTP_OUT
SMTP_IN
ES_QUEUE ES_HEADER
ES_RECIPIENT
IMAP / POP
ES_EXT_HEADER
ES_SHELL ES_BODY
ES_INSTANCE
LIST SERVER
HOUSE KEEPING
OJMA
Tuning Sequence
 Tuning is an iterative
process
 1st tune the mail stores
 2nd tune the LDAP
 3rd tune the mail servers
–
connection pools
Tuning the
Mail Store
Tuning the Database
 Regular DBA tuning
–
Ensure fastest I/O layout, sufficient buffer size
and hit ratio, etc.
 At higher transaction rates, partition the tables
and increase the sequence cache size
 Run Housekeeper process only at night
 If using RAC in active/active mode, run the
SMTP processes against only one instance
Tuning the DB, cont’
 Shadow process memory should NEVER
page
–
–
Count all process connection pool maximums
Number of shadow processes x XXX
 Analyze tables when big change in data size
–
–
Do not analyze es_queue when system is down
Run oidstats.sh
 after the addition of many users
Schema Modifications
 Ensure Tablespaces are auto-spaced and
locally managed
 Increase Cache on Sequences
 Partition Indexes and tables
–
Not ES_INSTANCE
 Re-organize the ES_INSTANCE table
Real Application Clusters
SMTP_IN
 Mail access efficiently
scales
 Mail delivery does not
–
Point at a single
instance
IMAP / POP
Tuning the
Directory
Tuning OID
 Oidstats.sh
–
–
Analyzes tables
Creates cost based statistics
 Run after adding large number of users
Tuning the
Mail Servers
Mail Server Processes
SQL/NET Listener
Active Socket
Global
List
Context
Thread
User
Thread
User
Pool
Context
Thread
User
Pool
Context
Pool
Context
Mail Store
Connection Pool
LDAP
Connection
pool
Server Process Tuning
 Number of instances
 Number of threads per instance
 Concurrent listeners
 Connection Pool Configuration
–
–
–
Minimum
Increment
Maximum
Instances and Threads
 Keep maximum threads low in SMTP Relay
 Each instance of IMAP has a maximum limit
of 1024 concurrent sockets
–
Some fat clients use up two
Webmail considerations
 Create same number of OC4J_UM instances
as CPU’s on the host
–
Monitor CPU usage
 Ensure low latency between web server and
the Internet Directory
 Turn on HTTP compression
 Turn off sorting
 Set DB pool timing to ‘true’ during sizing
Determining optimal settings
 Database connections
–
–
Client failures vs. wasted resources
Shadow processes on the database
 .DUMP.Dbconnections.dump
–
–
–
Connection to usage falls off
Steep slope implies fast responses
Small usage is near max connection value
Determining optimal settings
 Directory connections
–
–
No direct tool available
Set minimum to small number
 But still greater than 1
–
–
Set increment to ‘1’
Use netstat to find number of connections
established
 Look for ‘ldap’ and ‘ESTABLISHED’
How far can you scale?
 Mutually independent
service processes
–
–
scale horizontally with
extremely high limits
Millions of
 Mailboxes
 Messages
 Folders
A store will be the eventual
constraint
 Multi-node systems
–
–
scale horizontally with
extremely high limits
Millions of
 Mailboxes
 Messages
 Folders
QUESTIONS
ANSWERS