我将以下代码片段显示为我的顶级命令输出。这里的一个真正的快速问题是,Mem 的值以什么粒度显示?它们是字节数吗?
Mem: 8191488k total, 4277448k used, 3914040k free, 292356k buffers
Swap: 0k total, 0k used, 0k free, 3382180k cached
提出这个问题是因为free -m
命令给出的输出为
total used free shared buffers cached
Mem: 7999 4177 3822 0 285 3302
-/+ buffers/cache: 588 7410
Swap: 0 0 0
答案1
的手册页top
说:
2c.内存使用情况
该部分由两行组成,可以根据“E”交互式命令强制执行的缩放因子来表示以千字节 (KiB) 到艾字节 (EiB) 为单位的值。
它还包含千字节的定义,即在此超级用户答案中讨论。
手册页free
说它以千字节/兆字节为单位报告,但实际上它以千字节为单位报告,除非您添加该--si
标志。
因此,回答我认为是你的问题,top
报告 8191488k 和free -m
报告 7999m 的原因是 8191488 除以 1024 是 7999.5。单位按 1024 的幂计算,而不是 1000 的幂。
答案2
看到k
每个数字后面的数字了吗?千字节。 (free
如果您不提供 ,这也是 的默认值-m
。)