farid

مدیر کل انجمن
عضو کادر مدیریت
مدیر کل انجمن
عضویت
20/5/15
ارسال ها
452
امتیاز
10
وب سایت
faraso.org
سلام
اگر دقت کرده باشید نمایش میزان مصرف رم در دستورات free و htop متفاوت است و htop میزان مصرف کمتری از free را نمایش می دهد سوال اینجاست که کدام یک میزان دقیق را نمایش می دهند و علت تفاوت نمایش مصرف رم در دستورات free و htop چیست؟.
مقدار نمایش داده شده توسط htop مقدار کل حافظه مصرف شده توسط پردازه ها ( پروسس ها ) می باشد. مابقی حافظه آزاد توسط کرنل ( kernel ) لینوکس برای buffering و disk cache استفاده می شود که در صورت نیاز براحتی توسط کرنل آزاد می شوند. اما مقدار نمایش داده شده توسط free شامل مجموع حافظه مصرفی پروسس ها و buffering و disk cache می باشد.
لذا مقدار صحیح و معنی دار مقداری باشد که htop نمایش می دهد.
نحوه محاسبات بصورت جدول زیر است:
کد:
#free:
Row   Column  | Corresponding /proc/meminfo entry
-----|--------|----------------------------------
Mem:

      total   : MemTotal
      used    : MemTotal - MemFree
      free    : MemFree
      shared  : MemShared
      buffers : Buffers
      cached  : Cached
-----|--------|----------------------------------
-/+ buffers/cache:

      used    : (MemTotal - MemFree) - (Buffers + Cached)
      free    :  MemFree             + (Buffers + Cached)

#htop:
    Used U*   : ((MemTotal - MemFree) - (Buffers + Cached)) / 1024

البته دقت کنید در ورژن های پچ شده و جدید free محاسبه حافظه استفاده شده مشابه htop شده است برای مثال در CentOS 7 از ورژن پچ شده استفاده می شود.

برای اطلاعات بیشتر لینک های اینجا و اینجا را مطالعه کنید.
 
بالا