内存使用量不增长——什么东西在使用我的内存?

内存使用量不增长——什么东西在使用我的内存?

我的计算机(运行 Ubuntu Server 16.04)当前使用了 15.4 GB RAM 中的 13.4 GB(根据 htop),但我很难理解是什么在使用这些内存。

free -m报告:

              total        used        free      shared  buff/cache   available
Mem:          15733       13781        1083          22         868        1592
Swap:         71524         430       71094

top显示内存使用率最高的进程占用了 6.8% 的内存,第二大的进程占用了 0.4% 的内存。

如果我使用ps aux | awk '{print $6/1024 " MB\t\t" $11}' | sort -n,它会显示(相同)占用内存最多的进程占用了 1104 MB 的 RAM,与相比,这听起来是正确的top

如果我将 ps 报告的每个进程的所有值加起来:

ps aux | awk '{sum=sum+$6}; END {print sum/1024 " MB"}'

报告显示总共使用了 1.8 GB 的 RAM。

因此,ps我认为我使用了 1.8 GB 的 RAM,但free两者htop都认为我使用了超过 13 GB 的 RAM。输出available中的列free太小,无法解释这种差异。

我错过了什么?

编辑 2017-01-20 13:27 Z

/usr/bin/free -h报告:

total used free shared buff/cache available Mem: 15G 13G 417M 22M 1.1G 1.2G Swap: 69G 432M 69G

板顶输出:

$ sudo slabtop -s c -o | head -n 20
 Active / Total Objects (% used)    : 16552394 / 17903627 (92.5%)
 Active / Total Slabs (% used)      : 841391 / 841391 (100.0%)
 Active / Total Caches (% used)     : 109 / 155 (70.3%)
 Active / Total Size (% used)       : 9510904.12K / 9753117.86K (97.5%)
 Minimum / Average / Maximum Object : 0.01K / 0.54K / 18.56K

  OBJS ACTIVE  USE OBJ SIZE  SLABS OBJ/SLAB CACHE SIZE NAME
1764956 1764890   0%    1.08K 120388       29   3852416K zio_cache
126780 126308   0%   16.00K  68205        2   2182560K zio_buf_16384
1797996 1797996 100%    0.85K 100920       18   1614720K dnode_t
1952240 1833842   0%    0.50K 122015       16    976120K kmalloc-512
 62255  61308   0%    8.00K  20096        4    643072K kmalloc-8192
1999648 1968319   0%    0.28K  71416       28    571328K dmu_buf_impl_t
1764892 1764892 100%    0.26K  56932       31    455456K sa_cache
2028978 1981994   0%    0.19K  96618       21    386472K dentry
 23113  23021   0%   12.00K  11557        2    369824K zio_buf_12288
694975 647514   0%    0.31K  27799       25    222392K bio-1
1660096 1592262   0%    0.12K  51878       32    207512K kmalloc-128
131376  91798   0%    1.00K   8211       16    131376K ecryptfs_inode_cache
 90888  89352   0%    1.05K   3035       30     97120K ext4_inode_cache

$ sudo slabtop -s c -o | tail -n +8 | awk '{sum=sum+$7}; END {print sum/1024 " MB"}'` reports:
11484.9 MB

$ sudo slabtop -s c -o | tail -n +8 | grep zio | awk '{sum=sum+$7}; END {print sum/1024 " MB"}'
6222.28 MB

所以从我所知来看,它似乎与 ZFS 有关 - ZFS 占用了超过 6 GB 的 RAM,并且在 slabtop 输出中非 zio 内容使用了大约 5 GB 的 RAM。

答案1

在我的例子中,一些内存是为 hugepage 保留的。考虑到 hugepages 保留的内存,它加起来了。

controller-0:/home/wrsroot# grep -i huge /proc/meminfo
HugePages_Total:    1000
HugePages_Free:      488
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB

答案2

我的声誉不足以发表评论,因此将其作为答案发布。

我遇到过类似的问题,根本原因是处理器电压过低。我的 PC 是联想 T440P 笔记本电脑,搭载 Intel(R) Core(TM) i7-4810MQ CPU,运行 Debian 11。我只使用 ext4 和 gocryptfs 文件系统。

smem -tw占有率较高kernel dynamic memory

相关内容