سیستمعامل لینوکس درصد زیادی از رم سیستم را به عنوان cache رزرو میکند. همچنین گاهی اوقات بعد از بسته شدن برنامه رم مورد استفاده برنامه آزاد نمیشود. برای آزاد کردن رم در هر بخش، از دستورات زیر استفاده میکنیم:
برای آزاد کردن رمی که بوسیله زامبیها استفاده میشود و هنوز آزاده نشده است از دستور زیر استفاده میکنیم.
sync
برای آزاد کردن page cache.
echo 1 > /proc/sys/vm/drop_caches
برای آزاد کردن dentry ها و inode ها.
echo 2 > /proc/sys/vm/drop_caches
و در انتها برای آزاد کردن page cache و inode ها و dentry ها.
echo 3 > /proc/sys/vm/drop_caches
نکته: رمی که در لینوکس به عنوان cache استفاده میشود در مواقعی که سیستم با کمبود رم مواجه است میتواند به صورت خودکار به برنامهها اختصاص یابد. در حقیقت لینوکس با اختصاص رم اضافه سیستم به عنوان کش سرعت دسترسی به هارد را افزایش میدهد و همزان در صورت کمبود رم این رم کش شده را به عنوان رم آزاد به برنامهها میدهد.
نکته: برای مشاهده رم قابل استفاده و رم کش شده از دستور free به شکل زیر استفاده میکنیم.
free -m total used free shared buffers cached Mem: 486 94 391 0 10 37 -/+ buffers/cache: 46 439 Swap: 99 0 99
اعداد مقابل بخش mem نشاندهنده رم استفاده شده سیستم با احتساب cache است اما اعداد مقابل بخش buffers/cache نشان دهنده رم سیستمی منهی cache است و نشان دنده رمی است که در نهایت میتواند به برنامهها اختصاص یابد. در مثال بالا ۴۳۹ مگا بایت رم میتواند به برنامهها اختصاص یابد.