Welcome to Exchange Team Blog Sign in | Join | Help

Syndication

This Blog

Troubleshooting Virus Scanning API using Performance Counters

This post is the continuation of my VSAPI posts, but the first one that goes into troubleshooting. Please see part 1, part 2 and part 3 for architecture details.

The VSAPI is relatively simple, however due to the complex interactions with Independent Software Vendors (ISVs), it can sometimes be difficult to determine if problems are Information Store or vendor related. In this posting we'll take a look at the facilities available to help diagnose what is happening and some scenarios and the logic of breaking down the problem.

Performance Monitor Counters

In Exchange 2000, the VSAPI received several performance monitor counters allowing an administrator to monitor the status of the VSAPI interface.

Of the counters available the primary one our Support Team will look at when potentially dealing with a virus scanning issue is ‘MSExchangeIS\Virus Scan Queue Length’. This counter indicates the number of items currently in the Virus Scanning queue waiting for an available thread to pickup the next item and submit it to the virus scanning DLL. A consistently high number of items in the queue represents either a mis-configured value for scanning threads or a problem with the virus scanning DLL. Items will remain in the queue until a virus scanning thread picks up the item and submits it to the vendor or until a service restart clears the queue. Each item is handled in the context of a single thread. This thread performs the operation of picking up the next item to scan, calling into the vendor’s DLL to perform the scan, and waiting on the return result from the vendor before potentially deleting, quarantining the item or releasing it to the client.

Other relevant perfmon counters:

Counter

Description

Virus Scan Bytes Scanned

Total number of bytes of data processed by the virus scanner.

Virus Scan Files Cleaned

This number represents the number of attachments that has been cleaned by the virus scanning engine and in accordance with the above, marked as CLEANED. It is a cumulative value reset after each restart of the process.

Virus Scan Files Cleaned/sec

This is the rate at which the virus scanning engine is removing identifiable problems in messages and marking the items a CLEANED.

Virus Scan Files Quarantined

This is the total number of attachments that have been scanned and marked as PRESENT. When this occurs the Store disallows access to the entire message until a later scan determines the message is now safe.

Virus Scan Files Quarantined/sec

This is the rate at which attachments are being scanned and marked as PRESENT.

Virus Scan Files Scanned

This is the total number of attachments that has been processed by the virus scanning engine since the start of a service.

Virus Scan Files Scanned/sec

This is the rate at which attachments are being scanned.

Virus Scan Folder scanned in Background

This is the total number of folders (and associated content) that has been evaluated and potentially scanned by the virus scanning engine.

Virus Scan Messages Cleaned

This is the total number of messages identified as having a problem and successfully cleaned since the process was started.

Virus Scan Messages Cleaned/sec

This is the rate at which message are being cleaned.

Virus Scan Messages Deleted

Introduced in VSAPI 2.5 was the ability for a vendor to request a message be deleted from the system. This is the total number of messages that was removed per the virus scanning engine request since the process was started.

Virus Scan Messages Deleted/sec

This is the rate at which messages are being deleted from the system per the virus scanning engine request.

Virus Scan Messages Processed

This is cumulatively the number of messages either cleaned, deleted, or quarantined since the process started.

Virus Scan Messages Processed/sec

This is the rate at which messages are processed regardless of resulting status (PRESENT, CLEANED, NOT_PRESENT)

Virus Scan Messages Quarantined

This is the total number of messages quarantined since the process was started.

Virus Scan Messages Quarantined/sec

This is the rate at which messages are being quarantined.

Virus Scan Messages in Background

This is the total number of messages that has been scanned in the background since the process was started.

Baselining performance is a KEY element of troubleshooting performance issues when they are encountered. The baseline analysis establishes the expected, predictable results of a system and allows for comparisons to be made. Establishing baseline performance over time also allows for the development of triggers. For example, you may know from your baseline that no more than 3 messages per day are quarantined via virus scanning interface. Using this information, create a perfmon trigger to alert when more than 6 messages are quarantined per day. This would give you an early indication of a potential outbreak of virus messages in the environment.

In next post - event logging and few troubleshooting scenarios!

- Jeremy Kelly

Published Monday, November 22, 2004 9:51 AM by Exchange
Filed Under: , ,

Comments

No Comments
New Comments to this post are disabled

News


This blog and its contents are provided "AS IS" with no warranties, and they confer no rights. Use of any included script samples are subject to the terms specified in the Terms of Use.
New! Would you like to suggest a topic for the Exchange team to blog about? Send suggestions to us.

Exchange Server 2010 - Get the Beta



Poll:

Other Exchange Blogs from MSFT