A-A+

为什么Debian 12占用内存比Debian 11高?根源是procps

2023年06月24日 VPS评价 等您评论

Debian 12于本月(2023年6月)推出,【VPS全科网vpsqk.com】在第一时间安装体验后,发现内存占用相比于Debian 11高了一大截。从Debian 11版本的70M内存占用突增到250M,不禁让人疑惑为什么Debian 12内存占用比Debian 11大了这么多。

事实上,内存占用根本没有变大,是procps的原因。

绝大部分人默认使用free命令查看内存占用,恰好free依赖的procps在4.0.2-1版本的更新中,修改了计算方法。具体日志如下。受此影响,包括但不限于freetop都无法"正确"的识别占用的内存了。

procps (2:4.0.2-1) unstable; urgency=medium    
* New libproc2 library moved into sid    
library: total new API    
free: Used field is now Total - Available    
free: Added Comitted memory option    
pgrep: -A to ignore ancestors    
pgrep: Can select version 2 cgroup paths    
ps: many new fields    
sysctl: Support systemd glob patterns    
sysctl: Check resolved path is under /proc/sys    
top: many new fields    
top: extra wide views for CPU and memory stats    
top: bottom window to display supplementary data    
-- Craig Small <csmall@debian.org>  Mon, 05 Dec 2022 21:59:09 +1100

但是,htop并没有依赖procps,所以是可以准确识别占用的内存的。对比如下:

首先是free命令,显示占用内存295M

然后是htop命令,显示占用内存110M

作为对比,我们直接从kernel中读取内存(内容如下),发现htop是正确的,而free则“错误”了。Debian 12确实比Debian 11需要更大内存,但是只是从70M变成了100M的水平,并不是250M的水平。

MemTotal:        2014492 kB    
MemFree:          372632 kB    
MemAvailable:    1703344 kB    
Buffers:          268300 kB    
Cached:          1114676 kB    
SwapCached:           36 kB    
Active:           993052 kB    
Inactive:         415376 kB    
Active(anon):       1220 kB    
Inactive(anon):    30716 kB    
Active(file):     991832 kB    
Inactive(file):   384660 kB    
Unevictable:       16644 kB    
Mlocked:           15108 kB

 

标签:

给我留言