Check out the new USENIX Web site. next up previous
Next: Bibliography Up: Adaptive Page Replacement to Previous: Related work

Conclusion

We have investigated the risk of system thrashing in page replacement implementations by examining the Linux kernel code of versions 2.0, 2.2, and 2.4, and running interacting memory-intensive programs in a Linux system. Our study indicates that this risk is hard to avoid in a non-adaptive replacement implementation due to the conflicting interests of requirements on CPU and memory utilizations. We have proposed and implemented a patch to enhance the existing replacement policy into an adaptive one in the Linux kernel to prevent the system from thrashing among interacting processes, and to improve the CPU utilization under heavy memory load. Conducting experiments and performance evaluation, we show that our method can effectively provide thrashing protection without negative effects to overall system performance for three reasons: (1) the privilege is granted only when a thrashing problem is detected; (2) although the protected process could lower the memory usage of the rest of the interacting processes for a short period of time, the system will soon become stable by the protection; and (3) Our patch is simple to implement with little overhead in the Linux kernels.

In our current experiment we always select the process which most possibly has the least memory shortage, because we intent to put least effort to fulfill our protection goal. However, this scheme may allow the same process to be protected more often than others. This may incur fairness concern. A simple solution is to let the protection privilege alternate among all the active processes. We would like include this in our future work.



Acknowledgments: We thank Phil Kearns for providing a kernel programming environment. We appreciate Bill Bynum for reading the paper and for his suggestions.


next up previous
Next: Bibliography Up: Adaptive Page Replacement to Previous: Related work
Song Jiang 2001-09-09