Too much Windows Vista cache, a bad ting? Well, apparently yes, through Excessive Cached Write I/O and Excessive Cached Read I/O. As you probably know by now, cache is connected with boosting the performance of data accessing processes that target sluggish storage media. In an ideal scenario, the data or the code pages would be completely located within the system memory. The speed at which data is accessed, in the physical RAM, exceeds by far that of similar processes that involve a hard disk, by approximately 1 million times. But, because
of the usually limited amount of RAM, the operating system will have to deal with system cache.
"Too much cache is a bad thing; the memory manager works on a demand based algorithm. Physical pages are given to where the current demand is. If the demand isn't satisfied, the memory manager will start pulling pages from other areas, scrub them and send them to help meet the growing demand. Just like any process, the system file cache can consume physical memory if there is sufficient demand. Having a lot of cache is generally not a bad thing, but if it is at the expense of other processes it can be detrimental to system performance. There are two different ways this can occur - read and write I/O," revealed a member of the NTDebugging team.
The first example revolves around excessive cached write I/O. In this scenario, the operating system has to deal with a large volume of applications and services throwing write I/O files at the system file cache. However, the platform is prepared for such cases. Write I/O will be buffered and the working set of the system cache will expand. Ultimately, system threads will be dumped to the hard disk, and this is where the problem will occur, because of the differences in speed management between the disk's speed and that of the I/O write. The exception typically occurs when the cache manager, because of a faulty application or service, will be unable to handle throttling I/O. But at the same time, excessive cached read I/O will also present problems.
"While the SystemCacheDirtyPageThreshold registry value can tune the number of write/dirty pages in physical memory, it does not affect the number of read pages in the system cache. If an application or driver opens many files and actively reads from them continuously through the cache manager, then the memory manger will move more physical pages to the cache manager. If this demand continues to grow, the cache manager can grow to consume physical memory and other process (with less memory demand) will get paged out to disk. The system cache's working set limit can and typically does exceed how much memory is installed in the system," explained the member of the Microsoft NTDebugging team.
No comments:
Post a Comment