free - نمایش مقدار رم مصرفی و خالی

دستور free برای دیدن مقدار رم مصرفی و مقدار رم خالی است.

با زدن دستور free به تنهایی خروجی شبیه به زیر دریافت میکنین:

free
             total       used       free     shared    buffers     cached
Mem:       4049004    2398772    1650232          0     123132    1075004
-/+ buffers/cache:    1200636    2848368
Swap:      4881404          0    4881404

توضیح خروجی بالا

  • خط Mem
    • ستون total: مقدار رمی که در کل شما دارین رو نشون میده که من در بالا ۴۰۴۹۰۰۴ کیلوبایت (۴ گیگابایت) رم دارم.
    • ستون used: مقدار رم مصرف شده با احتساب disk caching و buffer (در آخر در مورد disk caching توضیح داده شده).
    • ستون free: مقدار رم خالی بدون اضافه کردن فضایی که برای disk caching استفاده شده.
    • ستون cashed: مقدار رمی که برای disk caching مورد استفاده قرار گرفته.
  • خط -/+ buffers/cache: در این سطر اعداد بدون احتساب disk caching نشون داده می‌شود.
    • ستون used: مقدار رم مصرفی شما بدون احتساب disk caching.
    • ستون free: مقدار رم خالی بدون احتساب disk caching.
  • خط swap
    • ستون total: مقدار فضای swap در دسترس.
    • ستون used: مقدار فضای مصرف شده از swap.
    • ستون free: مقدار فضای خالی swap.

نمایش بر اساس بایت، کیلوبایت، مگابایت، گیگابایت

از b،k،m،gبه ترتیب برای گیگابایت، مگابایت، کیلوبایت و بایت استفاده می‌شود.

نکته: آپشن g-عدد رو همیشه گرد می‌کنه یعنی اگر شما 3950 مگابایت رم  داشته باشین مقدار رم‌تون رو 3GB نشون میده.

مثلا به صورت مگابایت:

free -m
             total       used       free     shared    buffers     cached
Mem:          3935       2641       1294          0        220       1221
-/+ buffers/cache:       1199       2736
Swap:         2001          0       2001

آپدیت شدن خروجی بر اساس بازه زمانی با s-و تعیین تعداد آپدیت

برای آپدیت شدن خروجی هر چند ثانیه از s-استفاده کنین و برای تعیین تعداد دفعات آپدیت شدن از c-استفاده کنین.

free -m -s1 -c3
             total       used       free     shared    buffers     cached
Mem:          3935       2640       1294          0        220       1222
-/+ buffers/cache:       1197       2737
Swap:         2001          0       2001

             total       used       free     shared    buffers     cached
Mem:          3935       2640       1294          0        220       1222
-/+ buffers/cache:       1197       2738
Swap:         2001          0       2001

             total       used       free     shared    buffers     cached
Mem:          3935       2640       1294          0        220       1222
-/+ buffers/cache:       1197       2738
Swap:         2001          0       2001

نشون دادن مجموع اعداد به وسیله t-

با آپشن t-یک خط به خروجی اضافه می‌شود که مجموع اعداد سه خط swap ،buffer/cache ،Mem رو می‌نویسه.

free -tm
             total       used       free     shared    buffers     cached
Mem:          3954       2349       1604          0        120       1049
-/+ buffers/cache:       1180       2773
Swap:         4766          0       4766
Total:        8721       2349       6371

اگر از آپشن o-استفاده کنین خط -/+ buffers/cache رو نشون نمی‌ده.

disk caching

فرض کنین یک نرم‌افزار باز می‌کنین و ۵۰۰ مگابایت از رم سیستم شما به اون نرم‌افزار تعلق می‌گیره حالا اگر بیاین نرم‌افزار رو ببندین ممکنه ۴۰۰ مگابایت از رم شما خالی بشه. خوب این جا سیستم اومده ۱۰۰ مگابایت از اطلاعات رو نگاه داشته که اگر شما یک وقتی دوباره اون نرم‌افزار رو باز کردین مقدار کمتری اطلاعات، از روی هارد لود کنه که باعث بالا رفتن سرعت لود برنامه و کمتر مصرف شدن منابع سیستم می‌شود. اما به محض این که شما اون مقدار فضا یا به  مقداری از اون فضا احتیاج پیدا کردین سیستم بلافاصله فضا رو برای شما خالی می‌کنه پس مشکلی در روند کار سیستم پیش نمیاره.

اطلاعات بیشتر در این مورد:

http://www.linuxatemyram.com/

http://www.chrisjohnston.org/ubuntu/why-on-linux-am-i-seeing-so-much-ram...

پس برای این‌که بدونین چه مقدار رم خالی دارین عدد خط buffers/cache و ستون used رو بخونین که در زیر 2762 است.

free -m

             total       used       free     shared    buffers     cached
Mem:          3954       2360       1593          0        120       1049
-/+ buffers/cache:       1191       2762
Swap:         4766          0       4766

چند نکته

در دستور top  مقدار رم مصرفی با احتساب disk caching نشون داده می‌شه.
در دستور htop  مقدار رم مصرفی  بدون احتساب disk caching محاسبه می‌شود.

فایل proc/meminfo/

اطلاعات دقیق‌تر در مورد رم مصرفی در این فایل قرار دارد. بعضی دستورات مثل دستورات free , top , ps از این فایل استفاده می‌کنن.

اطلاعات بیشتر در مورد این فایل:

http://www.centos.org/docs/5/html/5.2/Deployment_Guide/s2-proc-meminfo.html

proc/sys/vm/drop_caches/

از این فایل برای فعال و غیرفعال کردن disk caching استفاده می‌شود.

اگر خواستین فضای اختصاص داده شده به  disk caching رو خالی کنین دستور زیر رو بزنین:

echo 3 > /proc/sys/vm/drop_caches

اطلاعات بیشتر در مورد این فایل:

http://www.linuxinsight.com/proc_sys_vm_drop_caches.html