- File Cache Hits
- File Cache Hits %
- File Cache Misses
- File Cache Flushes
By monitoring the successful and failed hits, you can determine whether IIS has to rely on paging as opposed to going to cache. Keep in mind that the IIS file cache can use up to 4 GB of RAM for caching
Monitoring and Tuning Your Server
Suggestions for Optimizing Memory Usage
Servers running IIS 5.0, like other high-performance file servers, benefit from ample physical memory. Generally, the more memory you add, the more the servers use and the better they perform. IIS 5.0 requires a minimum of 64 MB of memory; at least 128 MB is recommended. If you are running memory-intensive applications, your server could require a much larger amount of memory to run optimally (for example, most of the servers that service the microsoft.com Web site have at least 512 MB of memory).
Adding RAM to your system is not the only option, however. Here are a few suggestions for optimizing memory performance without adding memory:
Improve Data Organization Keep related Web files on the same logical partitions of a disk. Keeping files together improves the performance of the File System Cache. Also, defragment your disks. Even well-organized files take more time to retrieve if they are fragmented.
Try Disk Mirroring or Striping The optimum configuration is to have enough physical memory to hold all static Web pages. However, if pages must be retrieved from disk, use mirroring or striping to make reading from disk sets faster. In some cases, a caching disk controller may help.
Replace or Convert CGI Applications CGI applications use much more processor time and memory space than equivalent ASP or ISAPI applications. For more information about ASP, ISAPI, and CGI applications, see Web Applications .
Enlarge Paging Files Add paging files and increase the size of the ones you have. The Windows 2000 operating system creates one paging file on the system disk, but you can also create a new paging file on each logical partition of each disk.
Retime the IIS Object Cache Consider lengthening the period that an unused object can remain in the cache (use the ObjectCacheTTL setting in the registry, as mentioned earlier in this section, to accomplish this).
Change the Balance of the File System Cache to the IIS 5.0 Working Set By default, servers running the Windows 2000 operating system are configured to give preference to the File System Cache over the working sets of processes when allocating memory space. Although IIS 5.0based servers benefit from a large File System Cache, the setting Maximize Throughput for File Sharing often causes the IIS 5.0 pageable code to be written to disk, which results in lengthy processing delays. To avoid these processing delays, set Server properties to the Maximize data throughput for network applications option.
To change Server properties
Limit Connections If your server doesnt have enough memory, limiting the number of connections on the server might help alleviate the shortage because some physical memory (about 10 KB per connection) is consumed by the data structures the system uses to keep track of connections.
To control the number of current connections
Eliminate Unnecessary Features You can also disable the performance boost for applications in the foreground. In addition, at times when you are not actively checking performance, you can disable performance-related logging in order to squeeze a bit more performance from your server.
Using PerfMon to Monitor the File System Cache
There are several counters in the Memory and Cache performance objects that you can use to monitor the size and effectiveness of the File System Cache. Table 5.3 lists these counters.
Table 5.3 Counters for Monitoring the File System Cache
Using PerfMon to Monitor Processor Activity
To monitor your servers processors, use PerfMon to log data from the counters listed in Table 5.4:
Table 5.4 Counters for Processor Activity Monitoring
System\ Processor Queue Length
Threads waiting for processor time. If this value exceeds 2 for a sustained period of time, the processor may be bottlenecked.
Processor\ % Processor Time (Total instance)
The sum of processor use on each processor.
Processor\ % Processor Time
Processor use on each processor (#0, #1, and so on). In a multiprocessor server, this counter reveals unequal distribution of processor load.
Processor\ % Privileged Time
Proportion of the processors time spent in privileged mode. In the Windows 2000 operating system, only privileged mode code has direct access to hardware and to all memory in the system. The Windows 2000 Executive runs in privileged mode. Application threads can be switched to privileged mode to run operating system services.
Processor\ % User Time
Proportion of the processors time spent in user mode. User mode is the processor mode in which applications like IIS 5.0 services run.
Process\ % Processor Time
The processor use attributable to each processor, either for a particular process or for the total for all processes. (These are shown in the list of instances.)
Processor\% Processor Time\_Total - just a handy idea of how 'loaded' the server is at any given time.
Processor\% Processor Time\_Instance - just a handy idea of how 'loaded' any particular CPU is at any given time.
System\Processor Queue Length - number of threads queued and waiting for time on the CPU. The number of non-running ready threads in the processor queue. There is a single queue for processor time even on computers with multiple processors. If a computer has multiple processors, you need to divide this value by the number of processors servicing the workload. A sustained processor queue of less than 10 threads per processor is normally acceptable, depending on workload. Divide this by the number of CPUs in the system. If the answer is less than 10, the system is most likely running well.
An indirect indicator of the activity of hardware devices that generate interrupts, such as the system clock, the mouse, disk drivers, data communication lines, network interface cards, and other peripheral devices.
Process (All processes)\Working Set
the set of recently touched memory pages for all processes. If free memory in the computer is above a threshold, pages are left in the Working Set of a process even if they are not in use. When free memory falls below a threshold, pages are trimmed from Working Sets. If they are needed they will then be soft-faulted back into the Working Set before leaving main memory. (more)
the rate at which pages are read from or written to disk to resolve hard page faults. This is a primary indicator of the kinds of faults that cause system-wide delays. It includes pages retrieved to satisfy faults in the file system cache.
Memory\ Page Reads /sec – The rate of page faults, although it cannot be used in isolation, is should be less than 20% of the I/O throughput capacity.
Process\Working Set\_Total (or per specific process) - this basically shows how much memory is in the working set, or currently allocated RAM.
Memory\Available MBytes - amount of free RAM available to be used by new processes.
Memory\Pages Input/Sec - The best indicator of whether you are memory-bound, this counter shows the rate at which pages are read from disk to resolve hard page faults. In other words, the number of times the system was forced to retrieve something from disk that should have been in RAM. Occasional spikes are fine, but this should generally flat line at zero.
Memory\%Committed Bytes in Use – Sum of main memory and paging file size and reflects what % of that total is in use.
Available Disk Space - Self explanatory
PhysicalDisk\% Disk Time
the percentage of elapsed time that the selected disk drive was busy servicing read or writes requests.
PhysicalDisk\Bytes/sec\_Total (or per process) - shows the number of bytes per second being written to or read from the disk.
PhysicalDisk\Current Disk Queue Length\driveletter - this is probably the single most valuable counter to watch. It shows how many read or write requests are waiting to execute to the disk. For single disks, it should idle at 2-3 or lower, with occasional spikes being okay. For RAID arrays, divide by the number of active spindles in the array; again try for 2-3 or lower. Because a shortage of RAM will tend to beat on the disk, look closely at the Memory\Pages Input/Sec counter if disk queue lengths are high.
Shows the percentage of elapsed time during the sample interval that the selected disk drive was idle
The recommended counter for measuring disk utilisation
\ Avg. Disk Queue Length
Shows the average number of both read and write requests that were queued for the selected disk during the sample interval
As a guide, a disk bottleneck may be identified when the average disk queue length is consistently greater than 2 * number physical disks and %Idle Time is consistently less than 20%
\ Avg. Disk sec/Transfer
Average response time across the disk subsystem in seconds
Includes all subsystem layers, e.g. device driver layer, I/O bus and I/O channel
Includes queuing time at these layers
Does not pinpoint where delays are occurring
\% Free Space
Shows the percentage of the total usable space on the selected disk that is free
As a guide for NTFS volumes, usable capacity is exhausted when this counter reaches 15%
\ Free Megabytes
Shows the unallocated space, in megabytes, on the disk
Should be employed with the previous counter in order to assess disk space capacity
Network Interface\Bytes Total/Sec\nic name - Measures the number of bytes sent or received.
Network Interface\Output Queue Length\nic name – is the number of packets in queue waiting to be sent. If there is a sustained average of more than two packets in queue, you should be looking to resolve a network bottleneck.
Network Interface\Packets Received Errors\nic name - packet errors that kept the TCP/IP stack from delivering packets to higher layers. This value should stay low.
Packet drop rates
Router CPU – CPU utilisation on router
Router memory – CPU memory utilisation
Latency – Measure of time taken for traffic to be sent and return from a given point. High latency may indicate congestion.
Errors- Measure of data packets dropped by network may indicate malfunctioning equipment.
Link Up/Link Down – Change in port status
Up time – Router availability
% availability – Availability over time