Буферы + кэширование + бесплатно = 3,588,092 (3,4 ГБ). Но я все еще могу использовать память 10 ГБ (без использования свопа). Это проблема утечки памяти? И после этого можно вернуть утекшую память?
Спасибо
[root@dev001 ~]# free
total used free shared buffers cached
Mem: 32877844 31422864 1454980 0 1358500 774612
-/+ buffers/cache: 29289752 3588092
Swap: 1048568 67984 980584
[root@dev001 ~]# mkdir /mnt/ramdisk
[root@dev001 ~]# mount -t tmpfs -o size=10g tmpfs /mnt/ramdisk
[root@dev001 ~]# cd /mnt/ramdisk/
[root@dev001 ramdisk]# dd if=/dev/zero of=1g bs=1024 count=$((1024*1024*10))
10485760+0 records in
10485760+0 records out
10737418240 bytes (11 GB) copied, 20.0645 s, 535 MB/s
[root@dev001 ramdisk]# ls -lh
total 10G
-rw-r--r-- 1 root root 10G Jul 26 21:09 1g
[root@dev001 ramdisk]# free
total used free shared buffers cached
Mem: 32877844 32630940 246904 0 792364 10901876
-/+ buffers/cache: 20936700 11941144
Swap: 1048568 67984 980584
[root@dev001 ~]# umount /mnt/ramdisk
[root@dev001 ~]# free
total used free shared buffers cached
Mem: 32877844 22128348 10749496 0 792416 416160
-/+ buffers/cache: 20919772 11958072
Swap: 1048568 67984 980584
[root@dev001 ~]# free
total used free shared buffers cached
Mem: 32877844 22127372 10750472 0 792432 416160
-/+ buffers/cache: 20918780 11959064
Swap: 1048568 67984 980584
Прежде всего, рекомендация прочитать http://www.linuxatemyram.com/ поскольку это всегда помогает понять управление памятью Linux.
Вероятно, вы должны сохранить представление о том, что интересными понятиями являются «доступная» и «недоступная» память. Доступна свободная память. Память, используемая буферами / кешем, также может быть доступна, но ядро не будет освобождать эту память, если для этого нет причин. Когда вы создали RAM-диск на 10 ГБ, он, вероятно, освободил некоторые из этих буферов или объектов кэша, поэтому, когда RAM-диск был уничтожен, вы получили больше свободной памяти (хотя она всегда была «доступной»). Надеюсь, это поможет понять управление памятью (а если серьезно, прочтите ссылку выше: D)
В качестве последнего примечания рядом с top
вы также можете использовать slabtop
чтобы получить информацию об использовании внутренней памяти.