وبلاگ نت‌آرامآموزش، تجربه و راهکارهای زیرساخت

دستور free در لینوکس؛ تفسیر available و مصرف RAM

کم بودن ستون free همیشه نشانهٔ کمبود حافظه نیست؛ Linux از RAM برای cache استفاده می‌کند. ستون available تخمینی مفید از حافظهٔ قابل استفاده بدون swap است.

انتشار:
آخرین ویرایش:
توسط مصطفی جانقربان
۵ دقیقه زمان مطالعه
۱ دیدگاه
محتوای تخصصی، ساده و کاربردی
هماهنگ با هویت حرفه‌ای نت‌آرام
بازگشت به لیست مقالات
تصویر شاخص مقاله دستور free در لینوکس؛ تفسیر available و مصرف RAM در وبلاگ نت‌آرام
محتوای آموزشی وبلاگ نت‌آرام
لینوکس یک سیستم عامل متن باز و رایگان است که محبوبیت زیادی دارد و دستورات بسیار زیادی دارد، یکی از دستور های پرکاربرد لینوکس دستور free است، این دستور که مقدار حافظه RAM و SWAP را برای کاربران نمایش می دهد سوئیچ های زیادی دارد که در ادامه به توضیح انواع آن خواهیم پرداخت.

1-نمایش رم سیستم :

توسط این دستور می توانید اطلاعات در مورد رم فیزیکی سیستم و swap مشاهده کنید، این دستور مقدار رم و swap کلی و استفاده شده را به کیلوبایت نمایش می دهد.
کد / دستور# free total used free shared buffers cached Mem: 1021628 912548 109080 0 120368 655548 -/+ buffers/cache: 136632 884996 Swap: 4194296 0 4194296

2-نمایش رم به بایت Bytes :

دستور free با سوئیچ -b مقدار رم را به بایت نمایش می دهد.
کد / دستور# free -b total used free shared buffers cached Mem: 1046147072 934420480 111726592 0 123256832 671281152 -/+ buffers/cache: 139882496 906264576 Swap: 4294959104 0 4294959104

3-نمایش فضا رم به کیلوبایت :

با استفاده از سوئیچ -k مقدار رم به کیلوبایت نمایش داده می شود :
کد / دستور# free -k total used free shared buffers cached Mem: 1021628 912520 109108 0 120368 655548 -/+ buffers/cache: 136604 885024 Swap: 4194296 0 4194296

4-نمایش رم به مگابایت :

با استفاده از سوئیچ -m مقدار فضا رم به مگابایت نمایش داده می شود :
کد / دستور# free -m total used free shared buffers cached Mem: 997 891 106 0 117 640 -/+ buffers/cache: 133 864 Swap: 4095 0 4095

5-نمایش رم به گیگابایت :

توسط سوئیچ -g مقدار فضا استفاده شده و در دسترس رم به گیگابایت نمایش داده می شود :
کد / دستور# free -g total used free shared buffers cached Mem: 0 0 0 0 0 0 -/+ buffers/cache: 0 0 Swap: 3 0 3

6-نمایش مجموع کل هر ستون:

با سوئیچ -t مجموع هر ستون در خط آخر نمایش داده می شود :
کد / دستور# free -t total used free shared buffers cached Mem: 1021628 912520 109108 0 120368 655548 -/+ buffers/cache: 136604 885024 Swap: 4194296 0 4194296 Total: 5215924 912520 4303404

7-غیر فعال کردن خط Buffer Adjusted در خروجی نمایش :

در حالت پیش فرض دستور free، خط buffer adjusted در خروجی دستور نمایش داده می شود برای غیر فعال کردن آن از سوئیچ -o استفاده می کنیم :
کد / دستور# free -o total used free shared buffers cached Mem: 1021628 912520 109108 0 120368 655548 Swap: 4194296 0 4194296

8- بروزرسانی منظم بر اساس تایم زمانی صفحه خروجی دستور free :

با استفاده از سوئیچ -s می توانید مقدار را به ثانیه وارد کنید تا به طور منظم خروجی دستور بروزرسانی شود مثلا در صورتی که 5 وارد شود هر 5 ثانیه وضعیت رم به شما نمایش داده می شود :
کد / دستور# free -s 5 total used free shared buffers cached Mem: 1021628 912368 109260 0 120368 655548 -/+ buffers/cache: 136452 885176 Swap: 4194296 0 4194296

9-نمایش آمار کم و زیاد حافظه :

توسط سوئیچ -l در خروجی جزئیات کم و زیاد حافظه نمایش داده می شود :
کد / دستور# free -l total used free shared buffers cached Mem: 1021628 912368 109260 0 120368 655548 Low: 890036 789064 100972 High: 131592 123304 8288 -/+ buffers/cache: 136452 885176 Swap: 4194296 0 4194296
10-نمایش نسخه دستور free :
با سوئیچ -V می توانید نسخه دستور free خود را مشاهده فرمایید :
کد / دستور# free -V procps version 3.2.8
امیدارم مقاله بالا برای شما دوستان عزیز مفید باشد، در صورتی که نظری در مورد این مقاله دارید در قسمت دیدگاه های همین صفحه آن را به اشتراک بگذارید.

توضیح بیشتر برای انجام مراحل

این دستورها برای مشاهده‌اند و تنظیم حافظه را تغییر نمی‌دهند. برای مقایسه، زمان و بار برنامه را ثبت کنید.

خروجی فعلی

از free -h یا free -m استفاده کنید. ستون‌ها در procps جدید با تصاویر قدیمی buffers/cache تفاوت دارند و بعضی گزینه‌های قدیمی دیگر کاربرد ندارند.

فشار واقعی

available، swap و روند را در کنار vmstat، کندی و خطای OOM ببینید. swap استفاده‌شده به‌تنهایی فشار فعال را ثابت نمی‌کند.

پایش محدود

با -s و -c چند نمونه بگیرید و مصرف پردازش‌ها را جدا بررسی کنید. جمع کردن RSS همهٔ پردازش‌ها ممکن است حافظهٔ مشترک را دوباره بشمارد.

خواندن ستون‌های اصلی

total حافظهٔ در دسترس سیستم، free حافظهٔ کاملاً آزاد و available تخمین حافظهٔ قابل استفاده بدون swap شدید است. بخشی از RAM برای cache و buffer استفاده می‌شود و در صورت نیاز قابل بازپس‌گیری است؛ کم بودن free به‌تنهایی مشکل را نشان نمی‌دهد.

تشخیص فشار حافظه

وضعیت available، مصرف و رفت‌وبرگشت swap، کندی برنامه و رخداد OOM را کنار هم ببینید. خروجی لحظه‌ای free مصرف یک پردازش را مشخص نمی‌کند. در کانتینر، گزارش ابزار و سقف cgroup ممکن است متفاوت باشند؛ محدودیت سرویس را نیز کنترل کنید.
یک نمونهٔ لحظه‌ای برای تصمیم خرید RAM کافی نیست. بار واقعی، دورهٔ اوج و لاگ OOM را بررسی کنید.
کد / دستورfree -h free -m vmstat 1 5

منابع و ادامهٔ مطالعه

دیدگاه‌ها (۱)

دیدگاه‌های تاییدشده و پاسخ‌های تیم نت‌آرام

دانیال بهزادی

۱۳۹۴/۵/۴ ۱۵:۲۰:۳۱
پاسخ

البته لینوکس سیستم‌عامل نیست. لینوکس یه کرنل سیستم‌عامله و در کنار اجزای دیگهٔ سیستم‌عامل، تشکیل یه سیستم‌عامل رو می‌ده. معروف‌ترین سیستم‌عامل‌هایی که لینوکس توشون به عنوان کرنل به کار رفته، گنو/لینوکس و اندروید هستن.