دستور 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.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
اطلاعات بیشتر در مورد این فایل: