2

Я использую библиотеку глубокого обучения 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. Можно ли как-то очистить эти выделения? И как я могу сбросить заблокированную память выше?

1 ответ1

1

Видимо, это была ошибка в драйвере nvidia. После обновления драйвера с 361.18-r4 до 364.15 я больше не могу воспроизвести проблему. Итак, я рассматриваю обновление исправления утечки памяти.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .