我有一些关于linux的研究。其中一个问题是:
'在正在运行的系统上,前两行中free列中free的命令输出是否相同?你怎么强迫这个?'
我蠢蠢欲动,我相信我已经找到了这些价值观的含义。 如果我一起添加缓冲区和缓存,并将其添加到free,它会为缓冲区和缓存提供free值。这意味着,如果需要,应用程序可以使用的内存。
所以,我想可能是这两行的值可能相同,这取决于用法。但是,我不知道我怎么能
答案 0 :(得分:4)
第一行和第二行之间的区别在于第一行是不计算 free 列下的缓存和缓冲区,而第二行则不计算。这是一个例子:
total used free shared buffers cached
[1] Mem: 4028712 2972388 1056324 0 315056 835360
[2] -/+ buffers/cache: 1821972 2206740
used[2] = used[1] - buffers - cached
free[2] = free[1] + buffers + cached
所以问题的答案是:这两行可能是相同的(或者至少彼此非常接近),但不太可能在真实系统上,因为它需要你释放/耗尽所有缓存。如果您愿意尝试,请尝试how to drop cache中的一些建议或编写一个程序来消耗所有可用内存。