پر شدن حافظه رم (RAM) در لینوکس
با سلام
هنگامی که شما لینوکس جدید نصب میکنید ،سیستم عامل لینوکس جهت افزایش سرعت پردازش ها و همینطور کاهش فشار روی هارد دیسک مقداری از رم را به صورت کش (cache) نگهداری می کند.همچنین گاهی اوقات بعد از بسته شدن برنامه رم مورد استفاده برنامه آزاد نمیشود. برای آزاد کردن رم در هر بخش، از دستورات زیر استفاده میکنیم:
برای آزاد کردن page cache :
sync 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 -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 است و نشان دنده رمی است که در نهایت میتواند به برنامهها اختصاص یابد. در مثال بالا ۴۳۹ مگا بایت رم میتواند به برنامهها اختصاص یابد.