了解 Ubuntu 中的内存使用情况 - 从 20.04 升级到 Ubuntu 21.10 后,我的内存使用量急剧增加

了解 Ubuntu 中的内存使用情况 - 从 20.04 升级到 Ubuntu 21.10 后,我的内存使用量急剧增加

在阅读了互联网上的大量不同文章后,我仍然不清楚如何准确地找到使用我记忆的内容。

从 20.04 升级到 Ubuntu Server 21.10 后,我的内存使用量急剧增加,我正在尝试找出导致这种情况的原因。

当我登录服务器时,会出现一些欢迎统计数据:Memory usage: 65%

当我跑步时free -m我得到:

               total        used        free      shared  buff/cache   available
Mem:           31881       20575        9669         162        1636       10680
Swap:           8191           0        8191

到目前为止,它是匹配的。我知道这里有一些混淆,我的实际可用内存是多少free + buff/cache或类似的,但后来我在互联网上找到了一个命令,它返回所有进程的内存消耗总和:

$ echo $(ps -o rss= ax | tr '\n' +) 0 | bc
5978056

结果是 5-6GB。它与 返回的任何值都不匹配free -m。按内存列排序的结果top似乎证实了这一点:

top - 10:53:49 up 3 days, 13:28,  1 user,  load average: 0.11, 0.10, 0.09
Tasks: 451 total,   1 running, 438 sleeping,   0 stopped,  12 zombie
%Cpu(s):  0.2 us,  0.1 sy,  0.0 ni, 99.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :  31881.4 total,   9791.5 free,  20453.8 used,   1636.1 buff/cache
MiB Swap:   8192.0 total,   8192.0 free,      0.0 used.  10801.7 avail Mem

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
   3930 mssql     20   0   20.6g   1.1g  44584 S   2.0   3.4 116:22.67 sqlservr
   3115 mysql     20   0 5336868 726652  19148 S   0.3   2.2  11:29.69 mariadbd
  19021 www-data  20   0  438324 231656 169396 S   0.0   0.7   3:31.67 php-fpm8.0
   3348 www-data  20   0  438112 231096 171232 S   0.0   0.7   3:52.81 php-fpm8.0
   3349 www-data  20   0  436832 227820 168664 S   0.0   0.7   3:26.81 php-fpm8.0
   3356 www-data  20   0  429292 223864 171360 S   0.0   0.7   3:59.62 php-fpm8.0
   3354 www-data  20   0  427580 221492 170016 S   0.0   0.7   3:47.99 php-fpm8.0
   3357 www-data  20   0  428052 221336 169144 S   0.0   0.7   3:51.86 php-fpm8.0
   3355 www-data  20   0  427056 220772 170064 S   0.0   0.7   3:35.60 php-fpm8.0
   3345 www-data  20   0  427080 220116 169212 S   0.0   0.7   3:51.67 php-fpm8.0
   3365 www-data  20   0  425712 220024 171216 S   0.0   0.7   3:42.05 php-fpm8.0
  19700 www-data  20   0  424868 218940 169908 S   0.0   0.7   3:39.68 php-fpm8.0
   3363 www-data  20   0  423260 218804 171252 S   0.0   0.7   3:45.00 php-fpm8.0
   3341 www-data  20   0  423184 217468 170044 S   0.0   0.7   3:49.10 php-fpm8.0
   3353 www-data  20   0  421016 214860 169556 S   0.0   0.7   3:30.55 php-fpm8.0
   3351 www-data  20   0  420432 212680 169256 S   0.0   0.7   3:25.20 php-fpm8.0
   2674 www-data  20   0   22.7g 169652  41068 S   0.0   0.5   3:03.73 dotnet
   2696 git       20   0 2181008 165396  43788 S   0.0   0.5   7:55.15 gitea
   1324 root      19  -1  134508  72360  71296 S   0.0   0.2   0:15.71 systemd-journal
   4159 root      20   0 2052028  62724  31824 S   0.0   0.2   4:02.05 dockerd
2289460 root      20   0 1910052  39892  20176 S   0.0   0.1   0:23.22 snapd
   2726 root      20   0 2011284  31740  16344 S   0.0   0.1   8:44.13 containerd
   2703 root      20   0  270968  26244  19164 S   0.0   0.1   0:23.63 php-fpm8.0
   3251 www-data  20   0  102500  21180  16652 S   0.0   0.1   6:46.80 nginx
   2734 root      20   0 1139124  20408   7864 S   0.3   0.1  14:21.22 fail2ban-server
   3254 www-data  20   0  101948  20048  16336 S   0.0   0.1   0:02.27 nginx
   4165 minidlna  20   0  239012  19372  14324 S   0.0   0.1   0:39.26 minidlnad
   2017 root      rt   0  280960  18584   8772 S   0.3   0.1   0:47.47 multipathd
   2801 root      20   0  112464  18560   9988 S   0.0   0.1   0:00.05 unattended-upgr
   4242 root      20   0   84880  17604  14660 S   0.0   0.1   0:15.41 smbd
   2664 root      20   0   34740  17488   8508 S   0.0   0.1   0:00.08 networkd-dispat
   3253 www-data  20   0  101372  17020  13748 S   0.0   0.1   0:00.18 nginx
 203855 root      20   0  295244  16160  13364 S   0.0   0.0   0:02.36 packagekitd
   2700 mssql     20   0   72632  14852   6224 S   0.0   0.0   0:00.85 sqlservr
   3257 www-data  20   0  101240  14756  11540 S   0.0   0.0   0:00.02 nginx
   4234 root      20   0   22436  12928   3544 S   0.0   0.0   0:10.19 ddclient - slee
   4160 root      20   0   70756  12212   9912 S   0.0   0.0   0:09.06 nmbd
   2676 root      20   0  395152  11632   8612 S   0.0   0.0   0:53.73 udisksd
   2591 systemd+  20   0   23640  11164   7108 S   0.0   0.0   1:26.88 systemd-resolve
      1 root      20   0  166644  10784   5516 S   0.0   0.0   0:29.92 systemd
   4561 root      20   0   26968  10156   7144 S   0.0   0.0   0:44.81 portainer
   4288 root      20   0   84864   9184   6240 S   0.0   0.0   0:00.99 lpqd
1319978 rychu     20   0   15832   8848   6896 S   0.0   0.0   0:00.06 systemd
   4284 root      20   0   82640   8748   5956 S   0.0   0.0   0:00.59 smbd-notifyd
   3255 www-data  20   0  101088   8668   5496 S   0.0   0.0   0:00.00 nginx
   2706 redis     20   0   70552   8420   6348 S   0.0   0.0  13:27.82 redis-server
1319928 root      20   0   14860   8112   6648 S   0.0   0.0   0:00.03 sshd
   2671 root      20   0  126992   7576   6720 S   0.0   0.0   0:22.24 thermald

这是我的snap list输出:

$ snap list
Name                 Version    Rev    Tracking       Publisher   Notes
canonical-livepatch  10.1.2     126    latest/stable  canonical✓  -
core                 16-2.54.3  12725  latest/stable  canonical✓  core
core18               20211215   2284   latest/stable  canonical✓  base
core20               20220114   1328   latest/stable  canonical✓  base
lxd                  4.0.8      21835  4.0/stable/…   canonical✓  -

所以我很困惑我使用的~14GB 内存在哪里?

答案1

您正在运行的进程似乎占用了大约 18% 的内存。剩余的使用量可能是 ZFS ARC(默认情况下基本上最多占系统内存的 50%)。请参阅Ubuntu 20.04 上的 ZFS 是否使用大量内存?

PS 不要看“空闲”内存 - 本质上它是未使用的内存。想象一下,我的电脑现在有 35% 的 RAM 被浪费了(也就是说,现在它是多余的)。

从 20.04 升级到 Ubuntu Server 21.10 后,我的内存使用量急剧增加

加上free和的输出,top这仅意味着 21.10 能够比 20.04 更好地利用您的内存,仅此而已。

答案2

RSS(驻留集大小)显示特定进程使用的物理内存量。部分内存可由更多进程共享,因此您不能直接将它们相加。

这个Stackoverflow中的答案给出了更深层的解释:什么是 RSS 和 VSZ

答案3

我的机器也有32GB内存:

$ free -m

              total        used        free      shared  buff/cache   available
Mem:          32027       14140        6459         490       11427       16733
Swap:          8058           0        8058

$ snap list

Name               Version    Rev    Tracking       Publisher   Notes
core               16-2.54.3  12725  latest/stable  canonical✓  core
core18             20211215   2284   latest/stable  canonical✓  base
pycharm-community  2021.3.2   267    latest/stable  jetbrains✓  classic

要列出使用内存的进程(按百分比排序),请使用:

$ ps -o pid,user,%mem,command ax | sort -k3 -r -n

 5364 rick     10.5 /snap/pycharm-community/267/jbr/bin/java (... SNIP ...)
 3219 rick      8.1 /usr/lib/firefox/firefox
31414 rick      7.2 /usr/lib/firefox/firefox -contentproc -childID 20 -isForBrowser -prefsLen 10960 -prefMapSize 244395 -parentBuildID 20210415204500 -appdir /usr/lib/firefox/browser 3219 true tab
 3385 rick      4.7 /usr/lib/firefox/firefox -contentproc -childID 1 -isForBrowser -prefsLen 387 -prefMapSize 244395 -parentBuildID 20210415204500 -appdir /usr/lib/firefox/browser 3219 true tab
 1449 root      3.0 /usr/lib/xorg/Xorg -core :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch
14808 rick      2.9 /usr/lib/firefox/firefox -contentproc -childID 15 -isForBrowser -prefsLen 6660 -prefMapSize 244395 -parentBuildID 20210415204500 -appdir /usr/lib/firefox/browser 3219 true tab
 3552 rick      2.5 /usr/lib/firefox/firefox -contentproc -childID 3 -isForBrowser -prefsLen 532 -prefMapSize 244395 -parentBuildID 20210415204500 -appdir /usr/lib/firefox/browser 3219 true tab
 2928 rick      2.2 compiz
25621 rick      2.1 /usr/lib/firefox/firefox -contentproc -childID 12 -isForBrowser -prefsLen 6660 -prefMapSize 244395 -parentBuildID 20210415204500 -appdir /usr/lib/firefox/browser 3219 true tab
18592 rick      1.6 /usr/lib/firefox/firefox -contentproc -childID 11 -isForBrowser -prefsLen 6660 -prefMapSize 244395 -parentBuildID 20210415204500 -appdir /usr/lib/firefox/browser 3219 true tab
 3843 rick      1.5 /usr/lib/firefox/firefox -contentproc -childID 5 -isForBrowser -prefsLen 5369 -prefMapSize 244395 -parentBuildID 20210415204500 -appdir /usr/lib/firefox/browser 3219 true tab
 3522 rick      1.5 /usr/lib/firefox/firefox -contentproc -childID 2 -isForBrowser -prefsLen 532 -prefMapSize 244395 -parentBuildID 20210415204500 -appdir /usr/lib/firefox/browser 3219 true tab
 3660 rick      1.4 /usr/lib/firefox/firefox -contentproc -childID 4 -isForBrowser -prefsLen 532 -prefMapSize 244395 -parentBuildID 20210415204500 -appdir /usr/lib/firefox/browser 3219 true tab
 3156 rick      0.9 /usr/bin/nautilus --gapplication-service

(... SNIP ...)

相关内容