‘free’命令显示可用 RAM 小于 buff/cache!

‘free’命令显示可用 RAM 小于 buff/cache!

我有一台运行 ubuntu 16.04 的笔记本电脑,内存为 4GB。我已经使用了大约一个月,最近我注意到,即使只运行 3-4 个应用程序,系统也会变慢很多。这是free -m打开终端并打开 gedit 后的输出。

       total        used        free      shared      buff/cache   available
Mem:    3872         797         842        1971            2232         848
Swap:   4015         141        3874

您可以看到可用内存小于缓存内存。缓存内存不应该包含在可用内存中吗?问题是,当我打开其他应用程序时,缓存内存大小会增加,而不是为新应用程序提供空间!这是打开 Firefox、文档查看器和 vscode 后“free -m”的输出。

              total        used        free      shared  buff/cache   available
Mem:           3872        1391         145        1923        2335         299
Swap:          4015         250        3765

sudo sync; echo 3>'/proc/sys/vm/drop_cache'没有多大帮助。

              total        used        free      shared  buff/cache   available
Mem:           3872        1368         239        1923        2265         324
Swap:          4015         256        3759

事实证明,我甚至无法在 Ubuntu 上同时打开 5 个应用程序。看来 2265mb 内存刚刚泄露了。这超过了我物理内存的一半!我该怎么办?

答案1

如果你想计算你的可用内存,试试这个

(它将以 MB 为单位打印)

在 bash 中创建脚本并添加这些

mem1=$( free | sed 'N;s/\n/ /;N;s/\n/ /' | awk '{ print $8 }' | awk '{ total = $1 / 1024 ; print total }' | sed 'N;s/\n/ /;N;s/\n/ /' | awk '{ print $1}' )
mem2c=$( free | sed 'N;s/\n/ /;N;s/\n/ /' | awk '{ print $10}' | awk '{ total = $1 / 1024 ; print total }' | sed 'N;s/\n/ /;N;s/\n/ /' | awk '{ print $1}' )
mem3=$( free | sed 'N;s/\n/ /;N;s/\n/ /' | awk '{ print $9}' | awk '{ total = $1 / 1024 ; print total }' | sed 'N;s/\n/ /;N;s/\n/ /' | awk '{ print $1}' )
mem2f=$( free | sed 'N;s/\n/ /;N;s/\n/ /' | awk '{ print $12}' | awk '{ total = $1 / 1024 ; print total }' | sed 'N;s/\n/ /;N;s/\n/ /' | awk '{ print $1}')
mem2=$(awk "BEGIN {print $mem2c+$mem2f; exit}")

然后就这样做

echo "$mem1 / $mem3 / $mem2"

来源:我自己的代码:)

https://github.com/ppigmans/Tool-box

相关内容