我执行了该free -m
命令并得到了以下输出:
total used free shared buffers cached
Mem: 7842 2443 5398 205 167 1631
-/+ buffers/cache: 645 7197
Swap: 8048 0 8048
它说我目前正在使用 2443 mb 的 RAM。
之后我执行了以下命令,列出了使用最多内存的进程:
ps aux --sort=-%mem | awk 'NR<=10{print $0}'
并得到以下输出:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1346 3.6 2.0 623124 162464 tty7 Ssl+ 22:46 0:17 /usr/lib/xorg/Xorg -core :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch
ionut 2810 2.8 1.2 1005224 98508 ? Ssl 22:46 0:13 compiz
ionut 3232 0.0 0.6 879364 50680 ? Sl 22:46 0:00 /usr/lib/evolution/evolution-calendar-factory
mysql 6267 2.6 0.6 550068 48648 ? Ssl 22:54 0:00 /usr/sbin/mysqld
ionut 3115 0.1 0.5 1358024 46932 ? Sl 22:46 0:00 nautilus -n
root 4351 0.3 0.5 526508 46888 ? Ssl 22:46 0:01 /usr/bin/dockerd --raw-logs
ionut 3084 0.0 0.5 614568 42808 ? Sl 22:46 0:00 /usr/bin/python3 /usr/bin/indicator-stickynotes
ionut 2801 0.0 0.4 646080 35132 ? Ssl 22:46 0:00 /usr/lib/x86_64-linux-gnu/hud/hud-service
ionut 4761 1.4 0.3 616304 31388 ? Sl 22:47 0:06 gnome-terminal
这些进程使用的 RAM 似乎与输出中显示的已用 RAM 不一致free -m
。
答案1
一切都很好,你只是看到了错误的价值观。
您的应用程序“真正使用”的只有 645 MB RAM(-/+ b/c:已使用),还有 7197 MB(-/+ b/c:可用)仍然可供应用程序使用。
2443 MB(Mem:已使用)是系统正在使用的总 RAM 量,但包括磁盘缓存和其他可立即丢弃以支持应用程序(如果需要)的内容。这些类型的缓存可加快磁盘访问速度,而不会影响应用程序可用的 RAM 量。
另一方面,那 5398 MB(内存:可用)确实未被使用。甚至可以说它们目前毫无用处。