24.11.2014 Views

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 ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!