Optimizing Proxy Server Performance

In order to optimize server performance for whatsoever reason, you need to start by monitoring the server. In most cases, before server monitoring commences, it is common practice to establish baseline performance metrics for the specific server. Baseline performance metrics are established by measuring the performance of a particular server under various conditions, at different times of the day, week, and month, and when the hardware and software configuration changes. Based on the baseline metrics which you define for the server, you would need to optimize the server when performance of the server by far exceeds your baseline metrics.

It is recommended to formulate a thorough server monitoring plan once you have established your baseline performance metrics for a specific server.

A few elements that should be incorporated into a server monitoring plan are:

  • Identify those server events which should be monitored.
  • Determine and set up monitors and alerts to inspect the events.
  • Determine whether filters are necessary to reduce the quantity of monitoring information which you want to collect and then configure any necessary filters.
  • Establish a logging strategy to log event data that should be analyzed. Alternatively, you can monitor and analyze server activity when it occurs.
  • View and analyze data collected by events in the Performance console.

Another key component to monitoring server performance is to identify bottlenecks. A bottleneck can be described as a condition which is created by a particular resource which in turn prevents other resources from operating optimally.Monitoring, Tuning and Troubleshooting Proxy Server

Bottlenecks occur when:

  • Certain settings are not configured correctly.
  • A resource is faulty and not functioning as it should be.
  • Insufficient resources exist, and a resource is being overused.
  • Where many instances of the same particular resource exist, the resources may not be handling load equally or efficiently.
  • A particular application(s) is hogging a resource.

The techniques that you can use to optimize Proxy Server performance are listed here:

  • Caching Web content improves performance. Cached information is accessed by users from a location on the Local Area Network (LAN). This means that bandwidth utilization to the Internet ends up being lowered because cached information does not need to be downloaded from the Internet. All of this leads to an improvement in the service experienced by users.
  • Proxy Server also provides a feature called proxy arrays. A proxy array is a solution whereby one or multiple proxy servers operate as a single cache for client requests. Benefits provided by the proxy array feature include scalable performance, and fault tolerance.
  • Network Load Balancing (NLB) can be used to distribute the processing load of inbound traffic over multiple proxy servers. This leads to high availability and performance optimization.
  • Round Robin DNS can also be used to load balance inbound traffic across multiple proxy servers, thereby also providing high availability and performance optimization.

The advantages of using proxy arrays as a Proxy Server optimization method are listed here:

  • Because Web content is cached over multiple servers, no single server hosts all Web content.
  • If one server in the proxy array fails, failover is immediately provided.
  • Additional fault tolerance is provided for the client.

The advantages of using Network Load Balancing (NLB) as a Proxy Server optimization method are listed here:

  • You can add or remove proxy servers residing in the NLB cluster.
  • Load balancing occurs dynamically over all proxy servers residing n the NLB cluster.
  • Because load balancing and the addition or removal of proxy servers occurs dynamically, availability and performance is improved.
  • The NLB cluster is automatically reconfigured when a proxy server happens to fail.

The advantages of using Round Robin DNS as a Proxy Server optimization method are listed here:

  • Load balancing is performed on all proxy servers in the round robin DNS.
  • Round Robin DNS can operate on all operating system platforms.
  • Performance is improved because traffic is basically load balanced over all proxy servers.

If you need to provide the highest possible level of server availability for your Proxy Server implementation, you should use Microsoft Windows Clustering.
Using Microsoft Windows Clustering provides the following benefits for your Proxy Server implementation:

  • The proxy servers all share a common cache.
  • If a server in the proxy array fails, failover is immediately provided.
  • Because the cache does not need to be built again when a server fails, restore occurs quite faster.

The following techniques can be used to optimize Internet access and reduce Internet traffic:

  • Use one of the Proxy Server caching methods to optimize Internet access: With passive caching, Proxy Server stores objects in the Proxy Server cache with each object obtaining a Time To Live (TTL) value. Before Proxy Server forwards requests to the Internet, it first checks the Proxy Server cache to determine if the request can be serviced from there. When the Proxy Server cache becomes full, Proxy Server removes objects from the cache, based on a combination of factors: object size, object age, and object popularity

The advantages of using passive caching in your Proxy Server implementation are:

  • The Internet connection is only initiated when users need to access the Internet.

  • No activity occurs when users are not accessing the Internet.

With active Caching, Proxy Server automatically generates requests for specific objects in the Proxy Server cache so that frequently requested objects remain cached. Proxy Server determines which objects should be flagged for active caching by considering object popularity, Time To Live (TTL) value of objects, and server load to determine the level of active caching performed.
The advantages of using active caching in your Proxy Server implementation are:

    • Processor overhead is reduced.
    • Internet traffic is reduced during times of peak utilization.
  • To reduce Internet traffic:
    • Reduce the occurrence of Proxy Server having to connect to the Internet. This is done by enabling the active caching feature.
    • Increase the Proxy Server cache size so that more information can be stored in the cache, and therefore obtained from the cache.
    • Increase the Time To Live (TTL) value of cached information.
    • Try to reduce the utilization of WinSock Proxy and Socks Proxy applications.

Monitoring Proxy Server Components

The various components to track when monitoring Proxy Server are listed here:

  • Monitoring of the CPU should be included when monitoring Proxy Server, even though Proxy Server does not really intensively utilize CPU resources.
  • A component that should be monitored when monitoring Proxy Server performance is memory usage.
  • Another typical component monitored when monitoring system performance is disk performance. Hard disk performance is especially important when a large quantity of information is going to be cached.
  • Network Monitor can be used to monitor bandwidth usage. Performance is negatively impacted when existing network traffic surpasses LAN bandwidth or WAN bandwidth.
  • The Proxy Server cache should also be monitored. You can increase the size of the cache to store more objects. You should though regularly monitor the cache to ensure that the most appropriate size is configured for the cache.

A few strategies which you can implement to ensure that disk performance copes with caching large volumes of information are listed here:

  • Use high performing drive controllers
  • Use a dedicated hard disk
  • Use a stripe set
  • Use hardware based RAID to optimize throughput

How to configure the Proxy Server caching

You can use the Internet Service Manager to configure caching for the Web Proxy service.

  1. Click Start, click Programs, click Microsoft Proxy Server, and then click Internet Service Manager.
  2. Double-click the Web Proxy service.
  3. The Web Proxy Service Properties dialog box is displayed.
  4. Click the Caching tab.
  5. To configure passive caching, select the Enable caching checkbox and select between the following options:
  • If you want to ensure that the cache has the most recent data, select the Updates are more important (more update checks) option. Bear in mind though that Proxy Server will initiate more traffic to the Internet to ensure that the cached information is the most recent.

  • If you want the recentness of the cached information and the performance of the proxy server to have equal importance, select the Equal importance option.

  • If you want to provide the best possible user response time, select the Fewer network accesses are more important (more cache hits) option.

6. To configure active caching, select the Enable active caching checkbox and select between the following options:

  • If you want to provide the best possible user response time, select the Faster user response is more important (more pre-fetching) option.

  • If you want the recentness of the cache information and the performance of the proxy server to have equal importance, select the Equal importance option.

  • If you want to minimize Internet traffic, select the Fewer network accesses are more important(less pre-fetching) option.

How to configure advanced caching options to enhance Proxy Server cache performance

  1. Open Internet Service Manager.
  2. Double-click the Web Proxy service.
  3. The Web Proxy Service Properties dialog box is displayed.
  4. Click the Caching tab.
  5. Click the Advanced button.
  6. The Advanced Caching Policy dialog box opens.
  7. You can limit the size of cached objects here. All objects that exceed the size which you define are not cached.
  8. For cases where an expired object in the cache cannot be updated due to the Web site not being accessible, you can configure the time duration for which these expired objects can still be utilized.
  9. You can specify the Time To Live (TTL) value for HTTP objects and for FTP objects.
  10. You can also configure cache filters which define whether objects should be/should not be cached from certain Internet sites.

Monitoring Proxy Server Performance Counters

Performance objects and counters are installed when you install Proxy Server.

The general default Proxy Server performance counters installed are listed here:

  • %Processor Time; can be used to isolate issues with Proxy Server processing. The counter tracks the time utilized by the Inetinfo process and the WSPSRV process.
  • Active Sessions; can be used to track usage of the proxy server.
  • Cache Hit Ratio; can be usd to track the efficiency of the Proxy Server cache. The counter specifies the quantity of requests being serviced by the cache.
  • Requests/sec; tracks the rate of incoming requests to the Web Proxy server.
  • Current Average Milliseconds/request; indicates the time needed to process a request.

The main counters for monitoring Web Proxy service performance are:

  • Sites denied; can be used to determine whether access restrictions specified in your filters are defined correctly. You can use this counter to determine whether or not too many sites are being blocked.
  • Sites granted; this counter should be used with the Sites denied counter to determine whether access restrictions specified in your filters are defined correctly.
  • Total users; shows the total number of users that have accessed and used this server to this current date.
  • Current users; shows the number of users that are at this moment using the server.
  • Maximum users; the counter shows the maximum number of users that have concurrently used the server.
  • Inet bytes total/sec; the counter indicates the processing that have occurred between the server and the Internet.

The main counters used for monitoring Web Proxy service cache performance are:

  • Bytes in cache; the counter shows the size of the data currently stored in the cache. You would possibly have to increase the size of the cache when this counter starts moving close to the maximum cache size.
  • Max bytes cached; shows the maximum number of bytes which have been stored in the Proxy Server cache.
  • Active refresh bytes rate; this counter can be used to determine whether active caching should be increased/decreased.

How to set counters to track Proxy Server cache usage

  1. Open Performance Monitor.
  2. Click the View menu item, and then click Report.
  3. Click the Edit menu item, and then click Add to Report.
  4. Select Web Proxy Server Cache as the performance object.
  5. Select the URLs in Cache counter, the Total URLs Cached counter, and the Total URLs Retrieved counter as the counters to track, and then click Add.
  6. Click Done, and then close Performance Monitor.

How to view Web Proxy activity

  1. Open Performance Monitor.
  2. Click the View menu item, and then click Report.
  3. Click the Edit menu item, and then click Add to Chart.
  4. Select HTTP Service as the performance object.
  5. Select the Current Connections counter, the Maximum Connections counter, and the Connection Attempts counter as the counters to track and then click Add.
  6. Select Web Proxy Server Cache as the performance object.
  7. Select the Current users counter, the Maximum users counter, the Http Requests counter, and the Total Requests counter as the counters to track and then click Add.
  8. Click Done, and then close Performance Monitor.

How to verify current Proxy Server user sessions

  1. Establish a connection to the Internet from a client computer.
  2. Open Internet Service Manager.
  3. Double-click Web Proxy service to access its properties.
  4. The Web Proxy Service Properties dialog box opens.
  5. Click the Current Sessions button on the Service tab.
  6. Check whether there is a current user session for the client.

Proxy Server Logging

You can enable and configure Proxy Server logging to track Proxy Server performance and Internet usage. Proxy Server logging is enabled on the Logging tab of the Proxy Server service that you want to configure it for.

Before enabling Proxy Server logging for a Proxy Server service, you should plan your logging strategy:

  • Determne what aspect of Proxy Server performance you want to monitor.
  • Determine what Internet usage activities you want to monitor.
  • Determine how logged information is going to be analyzed. Logged files can be saved to a:
    • Text file
    • Database
  • Determine how Proxy Server computers should be configured after logged information is analyzed.

If you want to track Proxy Server performance issues, you should monitor the following components:

  • The processing performed by Proxy Server.
  • Items being cached.
  • Items not being cached.
  • The size of the Proxy Server cache.
  • Active caching.
  • The data transmitted via Proxy Server.

To enable logging for a Proxy Server service, you have to access the Properties sheet of that particular service through Internet Service Manager, click the Logging tab, and then select the Enable logging using…checkbox. You then have to choose the logging format to use. The logging format that you choose determines what logging fields are recorded.

You can choose between the following logging formats:

  • Regular: This is default format specified. Here, only a portion of the information that can be logged is logged:
    • Client machine name
    • Client user name
    • Destination name
    • Destination port
    • Log date
    • Log time
    • Object name
    • Object source
    • Protocol name
    • Result code
    • Service name
  • Verbose: Here, all the information that can be logged is logged:
    • Authentication status
    • Bytes received
    • Bytes sent
    • Client agent
    • Client machine name
    • Client platform
    • Client user name
    • Destination address
    • Destination name
    • Destination port
    • Log date
    • Log time
    • Object MIME
    • Object name
    • Object source
    • Operation
    • Processing time
    • Protocol name
    • Proxy name
    • Referring server name
    • Result code
    • Service name
    • Transport

As mentioned previously, you can log Proxy Server activity to either a text file or to a database. The default logging method enabled when Proxy Server is installed is logging to a text file. When logged data is recorded to a text file, you can view the logged information using either of the following methods:

  • Text editor
  • Export the log files to either a spreadsheet or a database.

When the Log To File logging method is chosen, you can specify the following configuration parameters on the Logging tab:

  • If you want a new log file opened rather than using the same log file all the time, you can select the Automatically open new log checkbox, and then choose when the new log file should be created. The existing log file is archived when the interval is reached, and a new log file is created for logging data.
  • Daily, Weekly, Monthly options: Used in conjunction with the Automatically open new log checkbox. Select between these options to specify when a new log file should be created.
  • You can enable the Limit number of old logs to checkbox to set how many log files are stored. When not selected, an infinite number of log files are stored.
  • When the Stop service if disk full checkbox is selected, and the hard disk runs out of capacity to store any further logs, you have to first remove files on the hard disk in order to restart the Proxy Server service.
  • You can use the Log file directory textbox and the accompanying Browse button to specify the location where log files are saved.
    When the Log To Database logging methodis chosen, you have to provide the following configuration parameters on the Logging tab:

      • ODBC Data Source Name (DSN) textbox; provide the ODBC DSN for the database to which information will be logged.
      • Table textbox; provide the specific table name in the database to which information will be logged.
      • User name textbox; provide a user name for the table.
      • Password textbox; provide the appropriate password.

    Tools for Troubleshooting Proxy Server

There are a number of tools and command-line utilities that you can use to monitor and troubleshoot Proxy Server issues.

When you install Proxy Server, performance objects and counters are also installed for Proxy Server. You can use Performance Monitor to view and monitor real-time performance data, choose which data you want to collect by selecting between various objects and counters, monitor processes and components that you want to optimize, plan for upgrades, and for troubleshooting purposes. You can also select the format or view in which you want to examine collected data.

To open Performance Monitor,

  • Click Start, click Programs, click Microsoft Proxy Server, and then click Monitor Microsoft Proxy Server Performance.

Event Viewer is used to monitor events that took place on a computer. Event Viewer stores events that are logged in a system log, application log, and security log. The system log contains events that are associated with the operating system. The application log stores events that pertain to applications running on the computer. Events that are associated with auditing activities are logged in the security log. This makes Event Viewer a good mechanism to monitor for, and troubleshoot problems.

Proxy Server errors are written to the system log and to the application log. When you double-click on a particular event, the description on the Event Properties tab of the Properties dialog box is displayed. This provides a detailed description of the event. You can save event descriptions as binary data files if you want to keep them.

The Event Header and Event Description hold important information on the event that you are examining. The information recorded in the Event Header is described below:

  • Type; indicates the severity of the event. Events are classified according to Information, Warning, Error, Success Audit, and Failure Audit.
  • Date and Time; indicates the date and time that the event took place.
  • Source; the software that logged the event. It could be a program name, operating system component, or driver.
  • Category indicates the manner in which the event source categorized the event.
  • User; if relevant, this is the name of the user that the event is associated with.
  • Event; the event number that indicates the type of event that was generated.
  • Computer; the name of the computer on which the event occurred.

You can use Network Monitor to monitor and log network activity as it occurs on the network. You can also use the information obtained from Network Monitor to optimize network traffic. Network Monitor stems directly from the Windows NT Network Monitor.

The key administration tasks which you can perform using Network Monitor are summarized below:

  • You can capture frames directly from the network which you are monitoring.
  • You can configure capture filters to specify the type of information which should be captured by Network Monitor.
  • You can view captured frames immediately once the capture is complete, or at some later stage.
  • You can filter captured frames by creating display filters. This allows you to find specific information in a capture.
  • ou can create triggers if you want certain actions performed when the content of a packet(s) match a predefined condition.
  • You can edit captured frames and pass them on.
  • You can capture frames from a remote computer.

The command-line utilities which you can use to troubleshoot Proxy Server issues are:

  • Arp; for viewing the Address Resolution Protocol (ARP) table entries on the local computer.
  • Hostname; for checking the current host name details.
  • Ipconfig; to determine the current TCP/IP configuration settings and to modify existing TCP/IP configuration settings.
  • Nbtstat; to determine the current state of NetBIOS over TCP/IP connections and change the contents of the LMHOSTS cache.
  • Netstat; to determine the current state of TCP/IP connections and to view protocol statistical information.
  • Nslookup; queries Internet domain name servers for information on operating system, domain host aliases and services, and to view domain name server records.
  • Ping; to verify TCP/IP configuration and connectivity.
  • Route; to view the IP route table and modify its content.
  • Tracert; to verify a route to a remote system.

    Troubleshooting Common Proxy Server server-end issues

The common Proxy Server server-end issues that occur are:

  • Proxy Server server setup issues
  • Web Proxy service and Web Proxy cache issues
  • WinSock Proxy service issues
  • Socks Proxy service issues
  • Proxy Server array problems
  • Packet filtering issues

When you install Proxy Server, Setup records events to the locations listed below. These logs provide a good source of information for any issues that may arise when Proxy Server is installed in a computer:

  • Event Viewer
  • A log file called Mpssetup.log

To avoid external network adapter card issues;

  • Verify that you have the proper configuration parameters by checking this information with your specific Internet Service Provider (ISP). The information which you need to verify is listed here:
    • IP address
    • Subnet mask
    • Default gateway
    • For DNS servers used in name resolution, the DNS domain name and DNS server’s IP address(es).
  • The computer on which you install Proxy Server must only have one IP default gateway and it should be configured on the external network adapter card.
  • Ensure that the external network interface is not specified in the Local Address Table (LAT).

To avoid Proxy Server cache setup issues;

  • You should use an NTFS formatted partition to store the Proxy Server cache.
  • To enable Proxy Server caching, the following process has to be used:
    • Stop the Web Proxy service.
    • Enable Proxy Server caching.
    • Configure the size for the Proxy Server cache.
    • Save all configuration changes.
    • Restart the Web Proxy service.

A few common Web Proxy service and Web Proxy cache issues are listed here:

  • Because the Web Proxy service and the WWW service are tightly integrated, issues occur when you attempt to make configuration changes and one of these services is still running. For instance, you will receive an error message if you try to make configuration changes to the home folder properties for the WWW service while the Web Proxy service is running. After Proxy Server is installed, and you start or stop the Web Proxy service or the WWW service, the other service is also started or stoppd.
  • When you experience password issues, remember that the password authentication defined in the Properties sheet of the WWW service is utilized by Proxy Server to authenticate Web Proxy clients.
  • If you have experience cache issues, use chkdsk at the command prompt to check whether the issue is not hard disk related.
  • If you persistently experience Web Proxy cache issues and the issue is not hard disk related, stop the Web Proxy service and then select the Reset Defaults option on the Caching tab. Reinstall the Web Proxy service and check whether the issue persists.
  • Your last option would be to run the Proxy Server Setup program and use the Reinstall option.
    • On the Proxy Server installation CD, proceed to run Setup.
    • Click Reinstall on the Setup screen.
    • Follow the instructions displayed to restore Proxy Server settings/files.

A few common WinSock Proxy service issues are listed here:

  • Using third party TCP/IP implementations can cause errors, simply because Proxy Server has not been tested for these types of implementations.
  • Because the Administrator user logon account is the only account able to access ports by default, you may encounter issues when attempting to access different protocols. To solve this issue;
    • Verify that the IP address of the user’s computer is specified in the Local Address Table (LAT).
    • Verify that the user has permission to access the protocol. You can verify this in Internet Service Manager.
    • Verify that protocol is specified in Internet Service Manager.
  • Ensure that the IP address of an internal DNS server is specified in the Local Address Table (LAT) configured when you run the Proxy Server Setup program.

A few common Socks Proxy service issues are listed here:

  • Because the Socks Proxy service and the Web Proxy service are integrated, stopping the Web Proxy service also results in the Socks Proxy service stopping. If the Socks Proxy service is not running, check whether another administrator has disabled the Socks Proxy service through the registry.
  • If packet filtering is enabled, and you have not enabled dynamic filtering, your SOCKS clients might experience issues to establish connectivity with the Proxy Server.
  • Remember that all requests are not permitted by default.
  • The first rule which matches a request is used to determine whether the request should be permitted or denied. Requests that match no defined rules are dropped.
  • It is recommended that you utilize the WinSock Proxy service if you are working in a Windows environment, and especially if you are not knowledgeable on how SOCKS works.

A few common Proxy Server array issues are listed here:

  • A common Proxy Server array configuration issue is configuration conflicts occurring. To avoid array configuration conflicts, it is recommended that you manage one array member at any given time.
  • The recommended array size is no more than 20 Proxy Server computers.
  • It is recommended that you utilize user accounts in the domain for proxy arrays. The local user account should not be utilized.
  • To verify the status of a proxy array;
    • Open Internet Service Manager.
    • Double-click the Web Proxy service to display its Properties dialog box.
    • The Web Proxy Service Properties dialog box opens.
    • In the Shared services area of the Service tab, click the Array button.
    • The Array dialog box opens.
    • Verify that the name of the array members is listed in this dialog box.
    • Click OK.

    Troubleshooting Common Proxy Server client-end issues

The common Web Proxy client issues encountered are summarized here:

A few common event messages encountered by Web Proxy clients are listed below. These messages are sent by the IIS service and can occur with Web Proxy connections to the WWW service, FTP service, or Gopher service:

    • Access is denied; returned by the WWW service when a security issue or permission issue occurs.
    • A connection with the server could not be established; returned by WWW service, FTP service, or Gopher service when the server for the connection is unavailable.
    • Operation timed out; returned by WWW service, FTP service, or Gopher service when the server failed to respond within the specified time period.
    • Server returned an invalid or unrecognized response; returned by the WWW service when the HTTP request could not be interpreted.
  • To provide client access, the TCP/IP protocol or IPX protocol has to be enabled and configured correctly.
  • The C:Mpcsetup.log file is installed by Proxy Server Setup on the client computer. Use the information in this file when troubleshooting Web Proxy client setup specific issues. The Mspclnt.ini file can also be used to troubleshoot Web Proxy client problems.

The common WinSock Proxy client errors encountered are summarized here:

  • For WinSock Proxy client Setup issues;
    • Verify that the WinSock Proxy client was not disabled in WSP Client in the Control Panel utility.
    • Verify that the proper configuration information is in the System.ini file.
    • Verify that only one copy of the Winsock.dll exists. The Winsock.dll should be in the Windows directory.
  • If you have an issue with applications that cannot reach an internal subnet address, check that the LAT contains all the necessary internal subnet addresses.
  • Remember that WinSock Proxy supports passive FTP connections and PASV FTP connections.

A guideline for troubleshooting Proxy Server client issues follows:

  • Verify that connectivity exists between Proxy Server and the ISP you are using.
  • Check whether any of the Proxy Server services or the IIS service was stopped by another administrator.
  • Verify that the LAT contains all the necessary IP addresses.
  • Check the logged information in Event Viewer.
  • Attempt to access the Internet from the Proxy Server computer using Administrator account credentials.
  • Attempt to access the Internet from the Proxy Server computer or client workstation using the security credentials of the user.
  • On the client, verify the following:
    • Check that the proper protocol is being used.
    • Check that the IP address is correct.
    • Check that the proxy server configuration settings are specified correctly.
    • Attempt to ping the proxy server from the client.
    • Attempt to access the Internet.