Я использую библиотеку глубокого обучения caffe на графической карте, и библиотека делает некоторые изворотливые вещи, такие как mmap, помещая огромные файлы в память и передавая буферы из оперативной памяти на видеокарту и обратно. Через некоторое время я заметил довольно значительное использование памяти, когда в системе не работает ничего тяжелого (без X-сервера, что-то вроде 10 процессов: getty, sshd, syslog-ng, bash, ...):
MemTotal: 24688288 kB
MemFree: 19112788 kB
MemAvailable: 19102240 kB
Buffers: 6632 kB
Cached: 14892 kB
SwapCached: 0 kB
Следует отметить, что я удаляю кэши, используя echo 3 > /proc/sys/vm/drop_caches
. Таким образом, это примерно 5 ГБ для чего-то. И очень близкое число учитывается здесь:
Active: 4658852 kB <-- here
Inactive: 2312 kB
Active(anon): 4644112 kB <--- and here
Inactive(anon): 760 kB
Active(file): 14740 kB
Inactive(file): 1552 kB
Unevictable: 6352 kB
Mlocked: 17111149713616 kB <-- that is also strange
При проверке идеи утечек nvidia в пространстве ядра я обнаружил такие строки:
0xffffc90005562000-0xffffc900055af000 315392 os_alloc_mem+0xc2/0xf0 [nvidia] pages=76 vmalloc N0=76
Что подтверждает утечка из драйвера nvidia. Можно ли как-то очистить эти выделения? И как я могу сбросить заблокированную память выше?