- Document processing monitoring via the Administration and Monitoring Console
- Hardware monitoring for each FlexiCapture server component using various Windows Performance Monitor counters
Key counters for every computer
Track these parameters on every computer, whatever its role inside FlexiCapture. A shortage of just one resource may lead to an overload on any component. For example, a shortage of RAM may lead to very intensive use of the hard drive. This is why the order in which you investigate parameters matters. Work through the sections in order.Memory
When both signals appear together, the computer probably has insufficient RAM.
The
Process(<All instances>)\Working Set counters show the number of memory pages allocated to each process.
- A process may withhold a large amount of memory while the total available memory is low. On its own, that does not mean the System is short of memory.
- A RAM bottleneck is likely when several processes enlarge their working sets while others shrink slightly. Confirm it with low available memory and constant
Pages/secspikes.
32-bit processes cannot allocate more than 2 GB of RAM even if there is a lot of available RAM in the System.
CPU
When both signals appear together, the CPU is most likely causing a bottleneck.
The
Process(<All instances>)\% Processor Time counter helps determine which processes are consuming the CPU time.
Hard disk
When checking the hard disk, make sure the System has enough RAM (see Memory). TheLogicalDisk(<All instances>)\Free Megabytes counter shows the free space on a logical disk. If the free space is not enough, System performance drops significantly.
When both signals appear together, the hard disk is probably causing a bottleneck.
Network
Network Interface(<All instances>)\Output Queue Length counts the outgoing network packets in a queue. When it constantly shows more than 2, the network adapter is most likely waiting for the connection and delaying requests from the server.
A constantly growing Network Interface(<All instances>)\Packets Outbound Discarded counter means the channel is overloaded. The buffer of the network adapter cannot handle all of the outgoing requests.
Network Interface(<All instances>)\Bytes Total/sec is the amount of information passing through the NIC. Compare it with Network Interface(<All instances>)\Current Bandwidth, the available NIC bandwidth. At 65% or more, use a channel with a higher bandwidth, or segment the network to minimize conflicts in the channel.
Counters to watch by component
Application Server
The Application Server is a web service on IIS, served byw3wp.exe processes. Monitor the CPU time and memory used by instances of these processes. Pay particular attention to the data connection network (DCN) load on the Application Server machine.
Use these counters to keep track of IIS loads:
Web Service(Default Web Site)\Bytes Received/secWeb Service(Default Web Site)\Bytes Sent/sec
- Increase the bandwidth
- Segment the network
- Add more computers running IIS, and balance the loads
W3SVC_W3WP(_Total)\Active Threads Count is the number of threads servicing requests. When it reaches W3SVC_W3WP(_Total)\Maximum Threads Count, the maximum available for servicing, IIS is heavily overloaded.
Use these counters to keep track of current activity spikes compared with previous activity:
W3SVC_W3WP(_Total)\Active Requests(the number of active requests)W3SVC_W3WP(_Total)\Requests/sec(the request processing rate)Web Service(Default Web Site)\Current Connections(the number of active connections between clients and the web service)
Processing Server
The Processing Server is a Windows service, theFlexiBrSvc.exe process.
FlexiCapture(Processing Server)\Cores Count indicates the total number of processing CPU cores on all Processing Stations in the Started state.
FlexiCapture(Processing Server)\Free Cores indicates the total number of available processing CPU cores that are not processing anything. This counter helps determine whether there are enough processing CPU cores in ABBYY FlexiCapture.
Some cores are always free while there is a queue at automatic processing stages. This may happen because:
- Some Processing Stations are configured for a dedicated type of task. When those Stations are free, other types of tasks still lack processing power.
- The Processing Server experiences a bottleneck:
- Check for a shortage of RAM, CPU, hard drive, or network resources on the Processing Server machine.
- Enlarge the task. Cores can finish tasks faster than the Processing Server can distribute them. For more information, see How to calculate the number of Processing Stations.
FlexiCapture(Processing Server)\Pending Tasks indicates the number of tasks requested from the Application Server but not assigned to any of the Processing Stations. Such tasks appear in the Processing Server Monitor with the Pending status.
You can view the whole queue of waiting tasks only in the Administration and Monitoring Console. The value of Pending Tasks should not exceed double the number of available cores (Cores Count).
A constantly growing number of pending tasks has two causes. Either some Stations have particular processing options disabled, or a Station and the Server cannot communicate. In that case the Server considers some Stations to be live but cannot deliver a task to them.
Licensing Server
The Licensing Server is a Windows service, theLicensingService.exe process.
You can monitor license statuses through the Licensing Server’s COM object. It rarely provides useful data on System performance.
Keep an eye on memory consumption, which may grow with the number of concurrent clients in the System. Consider adding more Licensing Servers when memory consumption is high and you need to support more clients.
