Сценарий PowerShell использует всю память и выдает сбой сервера - PullRequest
0 голосов
/ 06 августа 2020

У меня есть сценарий PowerShell, который получает список файлов в папке и всех ее подпапках, а затем читает их один за другим, проверяя наличие определенных недопустимых значений в каждом файле. Этот сценарий отлично работает в течение многих лет на машине Windows Server 2008 с 8 ГБ памяти. Извините, я не помню версию PS, которая работала тогда, но предполагаю, что это была 3.0.

Этот сервер недавно был обновлен до Windows Server 2012 R2, добавил дополнительные 8 ГБ памяти и работает PSВерсия 4.0. С момента обновления сценарий выдает сбой сервера, съедая все больше и больше памяти, пока она не будет исчерпана. Обычно при каждом запуске сценария необходимо проверять около 300 000+ файлов, размер каждого из которых варьируется от нескольких КБ до примерно 300 МБ каждый. Это предупреждающая ошибка, которую я вижу в средстве просмотра событий после Cra sh и перезагрузки:

Windows успешно диагностировал состояние нехватки виртуальной памяти. Следующие программы потребляли больше всего виртуальной памяти: powershell.exe (5964) потреблял 66568437760 байт , splunkd.exe (1900) потреблял 263499776 байт, а svchost.exe (1852) потреблял 83922944 байта.

В чем может быть разница между PS 3.0 и 4.0, которая может вызвать это, или это что-то связано с ОС?

Что касается этих старых версий ОС, это устаревший сервер, который будет к концу года, но я должен держать его в рабочем состоянии. Мы обновились только до 2012 года, так как Win 2008 считается большой угрозой безопасности, а остальное старое программное обеспечение не будет работать ни на чем выше Win 2012.

Спасибо за любую помощь с этой проблемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...