我得到了meminfo和ps之间的内存使用情况差异。 Free报告的可用内存比根据ps显然使用的进程少得多。Linux内存报告不一致
据自由,我只有3188mb免费:
free -m
total used free shared buffers cached
Mem: 15360 13273 2086 0 79 1022
-/+ buffers/cache: 12171 3188
Swap: 0 0 0
我试图追查在内存用ps会(剪断低于非0 RSS值):
ps -A --sort -rss -o comm,pmem,rss
COMMAND %MEM RSS
mysqld 13.1 2062272
java 6.2 978072
ruby 0.7 114248
ruby 0.7 114144
squid 0.1 30716
ruby 0.0 11868
apache2 0.0 10132
apache2 0.0 9092
apache2 0.0 8504
PassengerHelper 0.0 5784
sshd 0.0 3008
apache2 0.0 2420
apache2 0.0 2228
bash 0.0 2120
sshd 0.0 1708
rsyslogd 0.0 1164
PassengerLoggin 0.0 880
ps 0.0 844
dbus-daemon 0.0 736
sshd 0.0 736
ntpd 0.0 664
squid 0.0 584
cron 0.0 532
ntpd 0.0 512
exim4 0.0 504
nrpe 0.0 496
PassengerWatchd 0.0 416
dhclient3 0.0 344
mysqld_safe 0.0 316
unlinkd 0.0 284
logger 0.0 252
init 0.0 200
getty 0.0 120
然而,这是没有意义的,因为加起来的RSS列导致总共只有大约3287mb的内存使用率,应该几乎留下12gb免费!
我在Amazon AWS上使用内核2.6.16.33-xenU#2 SMP x86_64。
我的记忆在哪里?任何人都可以阐明如何追踪这一点?
http://www.linuxatemyram.com/ – Erik 2011-03-28 19:09:27
这也可能更适合于unix.stackexchange.com。好的问题,以及来自Erik的相当有趣的(如果不是简短的)评论。另外,我刚刚注意到,在我的Fedora系统上,虽然顶级报告只有大约4GB可用,但free -m命令(来自Erik的链接)报告大约7GB免费。 gnome-system-monitor也考虑磁盘缓存。 – 2011-03-28 19:14:58
这与linuxatemyram.com不一样。注意我引用了3188mb免费的,这是正确的缓冲区/缓存空闲列。 – 2011-03-28 19:30:02