Meu computador (que está executando o Ubuntu Server 16.04) está atualmente usando 13,4 GB de 15,4 GB de RAM (de acordo com o htop), mas estou tentando entender o que está usando essa memória.
free -m
relatórios:
total used free shared buff/cache available
Mem: 15733 13781 1083 22 868 1592
Swap: 71524 430 71094
top
mostra a maior memória usando o processo como tendo 6,8% de memória e o segundo maior tendo 0,4% de memória.
Se eu usar ps aux | awk '{print $6/1024 " MB\t\t" $11}' | sort -n
, ele mostrará o (mesmo) processo que usa a memória mais alta do que 1104 MB de RAM, o que parece correto em comparação com top
.
Se eu somar todos os valores de cada processo relatado por ps:
ps aux | awk '{sum=sum+$6}; END {print sum/1024 " MB"}'
relata um total de 1,8 GB de RAM usado.
Portanto, ps
calcula que estou usando 1,8 GB de RAM, mas free
e htop
calculam que estou usando mais de 13 GB de RAM. A coluna available
na saída free
é muito pequena para explicar essa diferença.
O que estou perdendo?
Edit 2017-01-20 13:27 Z
/usr/bin/free -h
relatórios:
total used free shared buff/cache available
Mem: 15G 13G 417M 22M 1.1G 1.2G
Swap: 69G 432M 69G
saída de slabtop:
$ 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
Então, parece que é algo a se fazer pelo ZFS do que eu posso dizer - o ZFS está ocupando mais de 6 GB de RAM e há cerca de 5 GB usados por coisas não-zio na saída do slabtop.