Attachment Processing Metrics

The following metrics illustrate 'best case' performance achieved with v 1.5.68, the times listed are total processing time as shown by JEMH audit drill down.

OS

Ubuntu 13_10 x64_64, virtualised on XenServer 6.1

Hardware

CPU

6 physical core i7-3930K @ 3.2GHz

Memory

3GB

Disk

SSD

Database

local Postgres

Version 1.5.68

Protocol

1MB

2MB

4MB

8MB

16MB

24MB

Protocol

1MB

2MB

4MB

8MB

16MB

24MB

POP

4901mS

8892mS

14922mS

34576mS

62429ms

 

 

 

 

 

 

 

 

Example 16MB case

In the 16MB case the following key timestamps were in the log

Timestamp

Duration

Event

Timestamp

Duration

Event

20:06:40,806

0

Message Received

20:06:54,341

13.5S

Audit Event written

20:07:42,508

48S

Get Body Content, ready to start processing

20:07:43,323

0.8S

All processing

Events

Message Received

The clock here started when the message arrived, therefore, transport related delays were not included.  The 0 point is when JEMH has been invoked by JIRA.

Audit Event written

In order to do awesome things, JEMH serializes the email on receipt as part of creating an audit event.  This action rebuilds a structured encoded TEXT document based on the object form email.  It takes a while because its converting a 16MB binary file to 7bit encoded text.

Get Body Content

In order to locate all manner of non-standard content like inline images that can be embedded within the 'directory like' structure of MIME/Multipart messages, JEMH scans all parts in turn.  

TODO: More profiling is required to see what is the chief bottleneck in this case.

All processing

The core JEMH processing is pretty quick.