#shell #memory-leaks #windows-subsystem-for-linux #wsl-2 #subshell
#оболочка #утечки памяти #windows-subsystem-for-linux #wsl-2 #вложенная оболочка
Вопрос:
У меня возникла головоломка со сценарием (или возможной утечкой памяти wsl2).
Я запускаю большой скрипт (для цикла требуется 0,67 секунды)
Моя проблема в том, что время цикла медленно увеличивается, как и использование памяти, поэтому с 0,67 секунды / 0,9 гигабайта памяти до 1,20 секунды / 1,7 гигабайта через несколько часов.
Если я перезапущусь (stop / start), скорость снова увеличится, а использование памяти снова снизится до 0,9..
Я подозреваю, что мой скрипт оставляет запущенные подоболочки, и мне интересно, есть ли возможность посмотреть, сколько подоболочек запущено в данный момент?
о, я запускаю это на win10 Wsl2 Ubuntu
Ответ №1:
Запустите ps и покажите только идентификаторы родительских процессов и идентификаторы процессов. Передайте выходные данные в awk, установив переменную pid на заданный идентификатор родительского процесса. Где первое поле, разделенное пробелом (идентификатор родительского процесса), равно переданному pid, выведите идентификатор процесса (поле 2)
ps -eo ppid,pid | awk -v pid=<pid> '$1==pid { print $2 }'
Комментарии:
1. Я не совсем понял все это (на самом деле ничего), но если я заменяю pid на pid запущенного скрипта, что должно отображаться? все подоболочки, которые создаются сценарием (pid, который я написал)?
2. Да. Только идентификаторы дочернего (подпроцесса), связанные с переданным идентификатором родительского процесса (pid)