taking advantage of the emc captiva architecture - EMC Community ...
taking advantage of the emc captiva architecture - EMC Community ...
taking advantage of the emc captiva architecture - EMC Community ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
TAKING ADVANTAGE OF<br />
THE <strong>EMC</strong> CAPTIVA<br />
ARCHITECTURE<br />
Applying Best Practices to Optimize<br />
Performance<br />
Christopher Lund<br />
<strong>EMC</strong><br />
© Copyright 2011 <strong>EMC</strong> Corporation. All rights reserved.<br />
1
Agenda<br />
• How InputAccel works<br />
• InputAccel 6.5 Benchmark Results<br />
• Tuning<br />
– InputAccel Server<br />
– Batches<br />
– InputAccel Database<br />
– Client Modules<br />
– Capture Workflow<br />
• Diagnosing Performance Issues<br />
The <strong>EMC</strong> ® Captiva ® InputAccel ® and Dispatcher Version 6.5 Performance Sizing<br />
and Tuning Guide – which is available on PowerLink – provided much <strong>of</strong> <strong>the</strong> data for<br />
this presentation.<br />
© Copyright 2011 <strong>EMC</strong> Corporation. All rights reserved.<br />
2
How InputAccel Works<br />
A multi-machine capture application server<br />
InputAccel System<br />
Capture<br />
Capture<br />
Modules Capture<br />
Modules<br />
Modules<br />
WIP<br />
&<br />
Reports Tables<br />
Processing<br />
Processing<br />
Modules Processing<br />
Modules<br />
Modules<br />
InputAccel<br />
Servers<br />
Export<br />
Export<br />
Modules Export<br />
Modules<br />
Modules<br />
• Server is <strong>the</strong> data tier (memory<br />
mapped)<br />
• Server manages task queues<br />
• Server is multi-threaded…<br />
• VBA execution is single-threaded<br />
• DB writes are queued, but singlethreaded<br />
• Server uses asynchronous I/O<br />
• Most work done from a thread<br />
pool<br />
• Clients are <strong>the</strong> executing tier<br />
(where scaling comes from)<br />
© Copyright 2011 <strong>EMC</strong> Corporation. All rights reserved.<br />
3
How InputAccel Works<br />
An execution pipeline<br />
Execution Pipeline<br />
m1 m2 m3 m4<br />
t1<br />
t2<br />
t3<br />
t4<br />
t5<br />
t6<br />
t7<br />
t8<br />
t9<br />
B4<br />
B3<br />
B4<br />
B2 B3 B4<br />
B1<br />
B2<br />
B3<br />
B4<br />
A4<br />
B1<br />
B2<br />
B3<br />
A4<br />
B1<br />
B2<br />
A2<br />
A3<br />
A4<br />
B1<br />
A1<br />
A2<br />
A3<br />
A4<br />
A1<br />
A2<br />
A3<br />
• Task queues are not FIFO<br />
• Tasks are scheduled based on<br />
Priority, <strong>the</strong>n creation date<br />
• Recovery is through<br />
reprocessing<br />
• Not a repository<br />
• Assume short duration tasks<br />
• Work is pushed, no polling<br />
• Tasks may be prefetched<br />
© Copyright 2011 <strong>EMC</strong> Corporation. All rights reserved.<br />
4
How InputAccel Works<br />
Like a Petri net<br />
Petri Net<br />
• A ProcessFlow defines <strong>the</strong> steps<br />
and trigger levels.<br />
B<br />
B<br />
A<br />
D<br />
C<br />
C<br />
• Implicit fire when data is available<br />
• There is no predefined execution<br />
order<br />
• There is no end state – IADone<br />
triggered implies completed<br />
© Copyright 2011 <strong>EMC</strong> Corporation. All rights reserved.<br />
5
InputAccel 6.5 Benchmark Results<br />
• One 8-core IA Server, over 300 Client Modules<br />
• In-house, ideal conditions, your mileage will vary<br />
• Performance similar to IA 6.0 SP1<br />
Performance Level<br />
50 active batches<br />
w/reporting disabled<br />
1000 active batches<br />
w/reporting disabled<br />
1000 active batches<br />
w/reporting enabled<br />
Overall Task<br />
Processing Rate<br />
(tasks/hour)<br />
Processing<br />
Rate/CPU Core<br />
(tasks/hour)<br />
Avg. CPU<br />
Utilization/C<br />
PU Core<br />
2,672,007 324,001 67%<br />
1,990,892 248,862 53%<br />
1,384,910 173,114 32%<br />
VMware ESX 4.x degrades throughput by approx 27%<br />
© Copyright 2011 <strong>EMC</strong> Corporation. All rights reserved.<br />
6
Tuning – InputAccel Server…<br />
• It is a server application. It will use all available resources<br />
• Recommendation: use Windows 2008 R2 for best performance<br />
• CPU<br />
– ias.exe is multi-threaded<br />
– Recommendation: use at least a 4-core CPU for optimum throughput, 8+ is<br />
better<br />
• RAM<br />
– Recommendation: 4-8 GB RAM, no less than 4 GB<br />
– ias.exe is a 32-bit app, so 4 GB address space max<br />
– BatchMaxAddressSpaceK controls how much RAM IAS uses<br />
• 1.5 GB is <strong>the</strong> default<br />
• Set to 2 to 2.5 GB on 32-bit Windows with /3G option<br />
• Set to 3 to 3.5 GB on 64-bit Windows<br />
– Only as many batches as will fit in BatchMaxAddressSpaceK are kept in RAM,<br />
when <strong>the</strong>re are more, swapping occurs<br />
• Have your working set <strong>of</strong> batches small enough to all fit in RAM<br />
• Delete batches when you are done with <strong>the</strong>m<br />
© Copyright 2011 <strong>EMC</strong> Corporation. All rights reserved.<br />
7
…Tuning – InputAccel Server<br />
• Disk<br />
– Used heavily for batches and processes<br />
– RAID 1+0 is best – RAID 5 usually is not fast enough and is not recommended<br />
• Recommendation: use a caching controller with Read Ahead and Write Back<br />
– SAN is OK, NAS not recommended<br />
– Turn <strong>of</strong>f anti-virus scanning on IAS folder<br />
– IAS folder should be on a dedicated disk drive or array so it is not shared by o<strong>the</strong>r<br />
programs or <strong>the</strong> Windows swap file<br />
– #2 cause <strong>of</strong> slow performance: a slow hard drive<br />
• Network<br />
– InputAccel has a “chatty” protocol between client modules and <strong>the</strong> InputAccel Server<br />
– For best performance, client modules, <strong>the</strong> InputAccel Server, Administration Console, and<br />
DB should be on <strong>the</strong> same sub-net<br />
– WANs usually have low bandwidth with high latency, which may make it unsuitable<br />
• Connecting client modules to InputAccel Server via a WAN is doable with adequate performance – depends on<br />
<strong>the</strong> client modules, # batches on IA server, and IPP<br />
• InputAccel Server and IADB should not be connected by a WAN<br />
© Copyright 2011 <strong>EMC</strong> Corporation. All rights reserved.<br />
8
Tuning – Batches…<br />
• Batch size (IAB file)<br />
– 5 – 20 MB is ideal<br />
– < 100 MB is OK<br />
– > 100 MB not recommended, but is allowed<br />
– 10 – 100 pages per batch recommended<br />
– 1000 pages per batch degrades throughput by 10% or<br />
more<br />
– < 10 pages per batch leads to too many small batches and<br />
too much batch swapping<br />
© Copyright 2011 <strong>EMC</strong> Corporation. All rights reserved.<br />
9
…Tuning – Batches<br />
• Number <strong>of</strong> Batches<br />
– Throughput is best when <strong>the</strong> working set <strong>of</strong> batches fit in RAM<br />
• Typically 50 – 500 fit depending on batch size and<br />
BatchMaxAddressSpaceK<br />
– When <strong>the</strong>re are more batches than fit in RAM, IA Server swaps<br />
batches in/out as needed<br />
• Swapping decreases IA Server throughput<br />
– Up to 9,000 idle batches is possible with adequate performance<br />
• Idle means that all tasks within <strong>the</strong> batch have been processed and<br />
finished<br />
– IA Server startup is slower with 1000’s <strong>of</strong> batches because IAS<br />
must load all batches into RAM to extract data<br />
• After startup <strong>the</strong>y are swapped to disk and do not consume too many<br />
resources<br />
– #1 cause <strong>of</strong> slow performance: too many active batches causing<br />
excessive swapping<br />
© Copyright 2011 <strong>EMC</strong> Corporation. All rights reserved.<br />
10
Tuning – InputAccel Database<br />
System Requirements<br />
• InputAccel Server requires a database to run<br />
• Only MSSQL is supported, versions 2005 and 2008<br />
– Express supported only for low volume and no IA Reporting<br />
– Standard or Enterprise recommended for medium to high volume<br />
• IADB stores:<br />
– IA configuration data<br />
– Reporting data on completed batches/tasks<br />
– Work In Progress (WIP) status<br />
– Web services data<br />
© Copyright 2011 <strong>EMC</strong> Corporation. All rights reserved.<br />
11
Tuning – InputAccel Database<br />
System Requirements<br />
• Recommendation: 64-bit MSSQL server for best performance<br />
– 2-4 CPU cores<br />
– 4-8 GB RAM<br />
– RAID 1+0 with read/write caching controller w/ fast disks (15k RPM)<br />
• InputAccel Server requires fast, uninterrupted access to <strong>the</strong> DB<br />
– If <strong>the</strong> DB goes <strong>of</strong>fline, IA Server pauses<br />
• Recommendation: put <strong>the</strong> DB and InputAccel Server on <strong>the</strong><br />
same low-latency, high-bandwidth subnet<br />
• Reporting decreases <strong>the</strong> InputAccel Server throughput by about<br />
10-30%, although it can be more<br />
© Copyright 2011 <strong>EMC</strong> Corporation. All rights reserved.<br />
12
Tuning – InputAccel Database<br />
Data Volume and Rates<br />
• IADB File Size and Growth Rates<br />
– Configuration data - typically < 100 MB<br />
– WIP data - 1 MB × # batches<br />
• WIP is transient and grows and shrinks as needed<br />
– Error/Warning Log data – typically negligible and can be purged as needed<br />
– Reporting data<br />
• All reporting log rules <strong>of</strong>f – 0 MB<br />
• Some or all reporting log rules are on<br />
Typically data grows 100 MB – 3 GB per hour<br />
Shrinks only when purged<br />
But…<br />
» Growth rate depends on page volume and which log rules are on<br />
» Overall size depends on # days <strong>of</strong> data retained<br />
– Audit Log data<br />
• All audit log rules <strong>of</strong>f – 0 MB<br />
• All audit logs rules on – 2× <strong>the</strong> growth rate <strong>of</strong> Reporting data<br />
© Copyright 2011 <strong>EMC</strong> Corporation. All rights reserved.<br />
13
Tuning – InputAccel Database<br />
Data Volume and Rates<br />
• InputAccel Database transaction rates<br />
Log Rules Enabled<br />
Estimated Transaction Rate<br />
None IAS Tasks / Hour × 0.075<br />
Reports only (no Audit) IAS Tasks / Hour × 2.5<br />
Audit only (no Reports) IAS Tasks / Hour × 5.0<br />
Reports + Audit IAS Tasks / Hour × 7.5<br />
© Copyright 2011 <strong>EMC</strong> Corporation. All rights reserved.<br />
14
Tuning – InputAccel Database<br />
Improving Performance<br />
• Defragment and rebuild indexes<br />
– up_ReorganizeIndex – defragments all indexes<br />
– up_RebuildIndex – rebuilds all indexes<br />
• Purge reporting and auditing data<br />
– Reporting and Auditing tables grow continuously<br />
– You must schedule purges via <strong>the</strong> Admin Console<br />
• Recommendation: generate reports during non-peak hours<br />
– Generating Reports runs complex queries that place a heavy load on<br />
IADB and MSSQL<br />
• Store MSSQL transaction logs and data files on separate hard<br />
drives/controllers<br />
© Copyright 2011 <strong>EMC</strong> Corporation. All rights reserved.<br />
15
Tuning – Client Modules<br />
• Each client module has its own unique tuning characteristics<br />
– Example: val2xml slows as more IA Values are exported and is slower when triggered at<br />
level 1 than level 7<br />
– See “<strong>EMC</strong>® Captiva® InputAccel® and Dispatcher Version 6.5 Performance Sizing and<br />
Tuning Guide” for details<br />
• Parameters on <strong>the</strong> client machines can be modified to optimize performance<br />
– Stored in settings.ini located in %ALLUSERSPROFILE%\<strong>EMC</strong>\InputAccel<br />
– PrefetchDefault (default = 2) – <strong>the</strong> number <strong>of</strong> additional tasks <strong>the</strong> InputAccel Server<br />
sends to each client module<br />
– FileCacheSize (default = 8)<br />
– CacheSize (default = 1,048,576)<br />
– CacheCount (default = 200,000), previously 20,000 – <strong>the</strong> number <strong>of</strong> files and IA Values<br />
<strong>the</strong> client module caches<br />
– IAClientDebug (default = 0) – set to 1 to capture <strong>the</strong> debug log iaclient.log in<br />
%ALLUSERSPROFILE%\<strong>EMC</strong>\InputAccel (previously was created in C:\)<br />
© Copyright 2011 <strong>EMC</strong> Corporation. All rights reserved.<br />
16
Tuning – Client Modules<br />
• CPU intensive client modules like NuanceOCR &<br />
ImageEnhancement<br />
– Require fast CPUs<br />
– Run one instance for each CPU core.<br />
• e.g. 4 CPU cores, run 4 instances <strong>of</strong> NuanceOCR<br />
• Non-CPU intensive client modules like val2xml & Documentum<br />
Export<br />
– Performance is limited by o<strong>the</strong>r resources (disk, network)<br />
– Run at least one instance for each CPU core and possibly more<br />
© Copyright 2011 <strong>EMC</strong> Corporation. All rights reserved.<br />
17
Tuning – Client Modules<br />
Using InputAccel over a WAN…<br />
• InputAccel Server, Database and Administration Console<br />
– Require high-speed, low-latency connections<br />
– Must be on <strong>the</strong> same LAN as each o<strong>the</strong>r<br />
• Unattended client modules<br />
– Often require high-speed, low-latency connections for best throughput<br />
– Generally do not need to be remote from <strong>the</strong> InputAccel Server<br />
– Should be on <strong>the</strong> same LAN as <strong>the</strong> InputAccel Server<br />
• Attended client modules<br />
– Performance varies by environment and module<br />
– Detailed guidance is in <strong>the</strong> <strong>EMC</strong>® Captiva® InputAccel® and Dispatcher<br />
Version 6.5 Performance Sizing and Tuning Guide<br />
– Recommendation: do benchmark testing to ensure adequate performance<br />
© Copyright 2011 <strong>EMC</strong> Corporation. All rights reserved.<br />
18
Tuning – Client Modules<br />
…Using InputAccel over a WAN<br />
• Attended client module details<br />
– ScanPlus<br />
• Not recommended, but may perform acceptably with scanner hardware compression or small<br />
scanned images<br />
• Works best when bandwidth is ≥50 Mbps and round trip latency ≤25 ms<br />
– IndexPlus<br />
• Generally performs well over a WAN (except for thumbnail display)<br />
• Displaying <strong>the</strong> batch list takes about 25% longer<br />
• Works best when bandwidth is ≥1.5 Mbps and round-trip latency ≤50 ms<br />
– Dispatcher Classification Edit and Dispatcher Validation<br />
• Should not be used over a WAN<br />
• Recommendation: consider using VMware View or Citrix for remote operators<br />
– Module executes on <strong>the</strong> LAN, screen display is over <strong>the</strong> WAN<br />
– Supports remote scanning<br />
• ScanPlus is on <strong>the</strong> LAN, <strong>the</strong> scanner is on <strong>the</strong> remote machine<br />
• Use scanner hardware compression for best results<br />
– Maximizes InputAccel Server-to-client module throughput<br />
– <strong>EMC</strong> OnDemand uses VMware View<br />
© Copyright 2011 <strong>EMC</strong> Corporation. All rights reserved.<br />
19
Tuning – Capture Workflow<br />
Trigger Levels<br />
• Triggering at level 0 or 1<br />
– Usually gives better throughput than level 7<br />
– The tasks within a batch can be distributed among many client modules<br />
– Which results in faster end-to-end processing <strong>of</strong> any single batch<br />
• Triggering at level 7<br />
– Is less work for InputAccel Server as it has fewer tasks to manage<br />
– Under some circumstances may provide better overall throughput at <strong>the</strong><br />
expense that any single batch may take more time to process<br />
• Unsupported: accessing external resources in IPP VBA code<br />
– VBA execution with InputAccel Server is single-threaded<br />
– The external resource may be slow or not present<br />
– If InputAccel Server needs to wait for <strong>the</strong> resource, all o<strong>the</strong>r tasks block<br />
– Put more complicated custom code logic on <strong>the</strong> client through <strong>the</strong> .NET Code<br />
module or client scripting<br />
© Copyright 2011 <strong>EMC</strong> Corporation. All rights reserved.<br />
20
Diagnosing Performance Issues<br />
• IA Server Performance Counter<br />
– Batches loaded and loads/second<br />
– Connections<br />
– Disk bytes written & read/second<br />
– VBA calls/second & queue length<br />
– Processing Message Count<br />
– Network bytes written & read/second<br />
– Packets send & received/second<br />
– Pending I/O (~ # <strong>of</strong> asynchronous sends in progress)<br />
– Event (db) queue length<br />
• Data Access Layer Performance Counters<br />
– Data Requests/second<br />
– % Load Factor<br />
– Avg. Execution Time Millisec<br />
– Current connection count<br />
© Copyright 2011 <strong>EMC</strong> Corporation. All rights reserved.<br />
21
<strong>EMC</strong> OnDemand<br />
Captiva Instant Cloud Implementation<br />
© Copyright 2011 <strong>EMC</strong> Corporation. All rights reserved.<br />
22
IIG Applications on <strong>EMC</strong> OnDemand<br />
ENTERPRISE<br />
CAPTURE<br />
CONTENT<br />
MANAGEMENT<br />
CUSTOMER<br />
COMMUNICATIONS<br />
CASE<br />
MANAGEMENT<br />
INFORMATION<br />
GOVERNANCE<br />
Captiva<br />
Documentum<br />
ECM<br />
Document<br />
Sciences<br />
Documentum<br />
xCP<br />
SourceOne<br />
Cloud Management<br />
Virtualization and Security<br />
Storage<br />
Networks<br />
© Copyright 2011 <strong>EMC</strong> Corporation. All rights reserved.<br />
23
Summary/Key Takeaways<br />
• Focus on system throughput, not per-task time<br />
• Use high-speed hardware – disk drives and networks<br />
• Minimize disk I/O where possible<br />
– Keep active batches in memory<br />
– Avoid excessive reporting<br />
• Parallelize – multi-core CPUs and task granularity<br />
• Use performance counters to find bottlenecks<br />
© Copyright 2011 <strong>EMC</strong> Corporation. All rights reserved.<br />
24
Q&A<br />
Chris Lund<br />
chris.lund@<strong>emc</strong>.com<br />
(858) 320-1215<br />
© Copyright 2011 <strong>EMC</strong> Corporation. All rights reserved.<br />
25
Learn More About <strong>EMC</strong> Captiva<br />
Go to: www.<strong>EMC</strong>.com/Captiva<br />
© Copyright 2011 <strong>EMC</strong> Corporation. All rights reserved.<br />
26
Captiva @ Momentum 2011<br />
Thursday<br />
10:00 AM AP Automation: Best Practices for Capturing and<br />
Integrating Paper Invoices into your Accounts Payable<br />
Processes<br />
Galileo 705<br />
© Copyright 2011 <strong>EMC</strong> Corporation. All rights reserved.<br />
27
GET SOCIAL<br />
DOWNLOAD<br />
Apple: http://bit.ly/MMTM11<br />
O<strong>the</strong>r: http://bit.ly/MMTM<strong>emc</strong><br />
Come to <strong>the</strong> Momentum Lounge today<br />
to play, win, learn and more.<br />
© Copyright 2011 <strong>EMC</strong> Corporation. All rights reserved.<br />
28
© Copyright 2011 <strong>EMC</strong> Corporation. All rights reserved.<br />
29
THANK YOU<br />
© Copyright 2011 <strong>EMC</strong> Corporation. All rights reserved.<br />
30