Утечка памяти подпроцесса WSL - как диагностировать и устранить? - PullRequest
0 голосов
/ 02 июля 2019

У меня есть утечка памяти, вызванная скриптом Python, который я запускаю в WSL, что приводит к ошибкам OOM и сбою приложения. Завершение скрипта не освобождает память, однако закрытие всех окон моего терминала Ubuntu делает .

Ни диспетчер задач Windows, ни top, кажется, не показывают никакого процесса, потребляющего недостающую память, хотя оба правильно сообщают об уменьшении общего объема свободной памяти со временем до 0.

Сценарий Python, создающий проблемы, создает множество подпроцессов, используя subprocess.Popen(['curl', myurl], shell=False), ожидая, пока process.poll() будет not None, а затем вызовет process.wait(). Во время выполнения скрипта и после его завершения я подтверждаю, что с помощью ps aux | grep Z нет процессов зомби. Во время выполнения ps aux | grep -c curl (число процессов скручивания) является постоянным значением (около 130), потому что скрипт подавляет процесс генерации.

...