• -------------------------------------------------------------
  • ====================================

CentOS 7中Mesos+Zookeeper+Marathon安装部署全程详解

技能 dewbay 6年前 (2019-04-12) 2258次浏览 已收录 0个评论 扫描二维码

老版的 free 命令长成这个样子:

较新版本的 Ubuntun、CentOS 等中的 free 命令是这个样子的:

主要的变化是 buff/cache 被合并为一列,并且增加了 available 这一列。

available 这一列的具体含义可以参见内核的这个 commit:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=34e431b0ae398fc54ea69ff85ec700722c9da773

天冷手冻,不详细解释和翻译了,具体直接看英文:

涉及到的代码改动如下:

diff –git a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt

index 22d89aa3..8533f5f 100644

— a/Documentation/filesystems/proc.txt

+++ b/Documentation/filesystems/proc.txt

@@ -767,6 +767,7 @@ The “Locked” indicates whether the mapping is locked in memory or not.

 MemTotal:     16344972 kB

 MemFree:      13634064 kB

+MemAvailable: 14836172 kB

 Buffers:          3656 kB

 Cached:        1195708 kB

 SwapCached:          0 kB

@@ -799,6 +800,14 @@ AnonHugePages:   49152 kB

     MemTotal: Total usable ram (i.e. physical ram minus a few reserved

               bits and the kernel binary code)

      MemFree: The sum of LowFree+HighFree

+MemAvailable: An estimate of how much memory is available for starting new

+              applications, without swapping. Calculated from MemFree,

+              SReclaimable, the size of the file LRU lists, and the low

+              watermarks in each zone.

+              The estimate takes into account that the system needs some

+              page cache to function well, and that not all reclaimable

+              slab will be reclaimable, due to items being in use. The

+              impact of those factors will vary from system to system.

      Buffers: Relatively temporary storage for raw disk blocks

               shouldn’t get tremendously large (20MB or so)

       Cached: in-memory cache for files read from the disk (the

diff –git a/fs/proc/meminfo.c b/fs/proc/meminfo.c

index a77d2b2..24270ec 100644

— a/fs/proc/meminfo.c

+++ b/fs/proc/meminfo.c

@@ -26,7 +26,11 @@ static int meminfo_proc_show(struct seq_file *m, void *v)

 unsigned long committed;

 struct vmalloc_info vmi;

 long cached;

+long available;

+unsigned long pagecache;

+unsigned long wmark_low = 0;

 unsigned long pages[NR_LRU_LISTS];

+struct zone *zone;

 int lru;

 /*

@@ -47,12 +51,44 @@ static int meminfo_proc_show(struct seq_file *m, void *v)

 for (lru = LRU_BASE; lru < NR_LRU_LISTS; lru++)

 pages[lru] = global_page_state(NR_LRU_BASE + lru);

+for_each_zone(zone)

+wmark_low += zone->watermark[WMARK_LOW];

+

+/*

  • * Estimate the amount of memory available for userspace allocations,
  • * without causing swapping.
  • *
  • * Free memory cannot be taken below the low watermark, before the
  • * system starts swapping.
  • */

+available = i.freeram – wmark_low;

+

+/*

  • * Not all the page cache can be freed, otherwise the system will
  • * start swapping. Assume at least half of the page cache, or the
  • * low watermark worth of cache, needs to stay.
  • */

+pagecache = pages[LRU_ACTIVE_FILE] + pages[LRU_INACTIVE_FILE];

+pagecache -= min(pagecache / 2, wmark_low);

+available += pagecache;

+

+/*

  • * Part of the reclaimable swap consists of items that are in use,
  • * and cannot be freed. Cap this estimate at the low watermark.
  • */

+available += global_page_state(NR_SLAB_RECLAIMABLE) –

+     min(global_page_state(NR_SLAB_RECLAIMABLE) / 2, wmark_low);

+

+if (available < 0)

+available = 0;

+

 /*

  * Tagged format, for easy grepping and expansion.

  */

 seq_printf(m,

 “MemTotal:       %8lu kB\n”

 “MemFree:        %8lu kB\n”

+”MemAvailable:   %8lu kB\n”

 “Buffers:        %8lu kB\n”

 “Cached:         %8lu kB\n”

 “SwapCached:     %8lu kB\n”

@@ -105,6 +141,7 @@ static int meminfo_proc_show(struct seq_file *m, void *v)

 ,

 K(i.totalram),

 K(i.freeram),

+K(available),

 K(i.bufferram),

 K(cached),

 K(total_swapcache_pages()),

另外,关于 free 命令里面的 cached、buffers 的区别,下面一幅图可以表达:



露水湾 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:CentOS 7中Mesos+Zookeeper+Marathon安装部署全程详解
喜欢 (0)
[]
分享 (0)
关于作者:
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址