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