什么东西占用了我的空闲内存?

什么东西占用了我的空闲内存?

我有一台计算机负责我们社区广播电台的各种功能,包括处理广播节目的音频。它远程运行,每天发送健康电子邮件,让我关注它的状态。我发现几天内可用内存下降了很多,而且不知道它去了哪里。

该报告包含“free”的输出和使用内存的前 20 个进程:

ps -eo comm:15,pid,ppid,cmd,%mem,%cpu --sort=-%mem | head -n 20

两天前:

Memory stats as of 10/17/2023
               total        used        free      shared  buff/cache   available
Mem:            12Gi       3.1Gi       7.4Gi       160Mi       2.1Gi       9.0Gi
Swap:             0B          0B          0B
Total:          12Gi       3.1Gi       7.4Gi
 
MEM stats
COMMAND             PID    PPID CMD                         %MEM %CPU
ST_FM              2214       1 /home/kpov_tech/Desktop/Ste  4.6 24.1
ST_Stream          2256       1 /home/kpov_tech/Desktop/Ste  4.5 21.6
plasmashell        1759    1689 /usr/bin/plasmashell         2.0  0.2
kwin_x11           1721    1689 /usr/bin/kwin_x11            1.8 10.7
fluidsynth         1538    1528 /usr/bin/fluidsynth -is /us  1.8  0.0
kded5              1718    1689 /usr/bin/kded5               1.8  0.0
audacious        871581  827042 /usr/bin/audacious --play    1.6  1.6
Xorg               1259    1218 /usr/lib/xorg/Xorg -noliste  1.3 16.8
dolphin          774584    1759 /usr/bin/dolphin             1.2  0.1
kwrite            44322       1 /usr/bin/kwrite /home/kpov_  1.1  0.1
konsole            2097       1 konsole --noclose --profile  1.0  0.1
raysession         2307       1 /usr/bin/python3 -u /usr/sh  1.0  0.3
jackd              2111    2097 /usr/bin/jackd -v -d alsa -  1.0  0.7
zita-mu1           2173       1 /usr/bin/zita-mu1 -name MON  0.9  0.4
ebumeter           2191       1 ebumeter -name ebu_Raw_MCR   0.9  1.0
ebumeter           2207       1 ebumeter -name ebu_ListenLi  0.9  0.9
ebumeter           2200       1 ebumeter -name ebu_ST_FM     0.9  0.9
ebumeter           2184       1 ebumeter -name ebu_ST_Strea  0.9  0.9
ray-jackpatch_t    2330       1 /usr/bin/python3 -u /usr/sh  0.9  0.1

今天:

Memory stats as of 10/19/2023
               total        used        free      shared  buff/cache   available
Mem:            12Gi       3.8Gi       529Mi       155Mi       8.2Gi       8.2Gi
Swap:             0B          0B          0B
Total:          12Gi       3.8Gi       529Mi

MEM stats
COMMAND             PID    PPID CMD                         %MEM %CPU
ST_FM              2214       1 /home/kpov_tech/Desktop/Ste  4.6 24.1
ST_Stream          2256       1 /home/kpov_tech/Desktop/Ste  4.5 21.8
plasmashell        1759    1689 /usr/bin/plasmashell         2.4  0.2
fluidsynth         1538    1528 /usr/bin/fluidsynth -is /us  1.8  0.0
kwin_x11           1721    1689 /usr/bin/kwin_x11            1.8  9.5
audacious        871581  827042 /usr/bin/audacious --play    1.5  1.6
Xorg               1259    1218 /usr/lib/xorg/Xorg -noliste  1.2 16.4
dolphin         3467064    1759 /usr/bin/dolphin             1.1  0.1
kwrite            44322       1 /usr/bin/kwrite /home/kpov_  1.0  0.1
kded5              1718    1689 /usr/bin/kded5               1.0  0.0
jackd              2111    2097 /usr/bin/jackd -v -d alsa -  1.0  0.7
konsole            2097       1 konsole --noclose --profile  1.0  0.0
raysession         2307       1 /usr/bin/python3 -u /usr/sh  1.0  0.3
xdg-desktop-por 3450540    1528 /usr/lib/x86_64-linux-gnu/l  0.9  0.0
zita-mu1           2173       1 /usr/bin/zita-mu1 -name MON  0.9  0.4
ebumeter           2191       1 ebumeter -name ebu_Raw_MCR   0.9  1.0
ebumeter           2207       1 ebumeter -name ebu_ListenLi  0.9  0.9
ebumeter           2200       1 ebumeter -name ebu_ST_FM     0.9  0.9
ebumeter           2184       1 ebumeter -name ebu_ST_Strea  0.9  0.9

我觉得有大约 7Gi 的可用内存已经消失了。我如何才能找出正在使用它的内容?

答案1

从“免费”应用程序的输出可以看出,您有大约 8-9Gi 的可用内存。

可能会让您感到困惑的是,在标有“可用”的列下,您会看到非常少量的内存 - 这是正常行为。

您必须将可用内存中的“缓冲/缓存”列 - Linux 使用可用内存作为缓冲区,以便在可能的情况下帮助加快其他进程,并且这种内存在传统意义上并非不可用 - 如果需要,您仍然可以将其用于其他应用程序。

您可以在日志的“可用”列中看到系统中可用的总内存。

相关内容