Я получил новую рабочую станцию Windows 7 (заменяющую старую рабочую станцию Windows 7) и начал сталкиваться с ошибками при доступе к моим общим файловым ресурсам с компьютеров Windows XP.
Я получаю различные ошибки, которые, кажется, приходят и уходят (в некоторые моменты он может работать нормально в течение нескольких часов). Один:
Недостаточно памяти для обработки этой команды
Я также вижу случайные сбои при открытии файлов в приложениях, которые пытаются получить доступ к большому количеству файлов из общего ресурса.
Microsoft публикует загадочную статью из базы знаний по этому вопросу, в которой предлагается увеличить IRPStackSize
чтобы устранить проблему без каких-либо объяснений, зачем вам это нужно.
Я обнаружил, что увеличение IRPStackSize
как на моей рабочей станции, так и на клиентской машине XP, похоже, проблемы исчезли.
Однако зачем мне это делать? Почему одна машина с Win7 имеет эту проблему, а другая - нет? Все они находятся в одном домене, поэтому групповая политика передает им одни и те же настройки, некоторые из которых я проверил вручную. Как мне узнать, какое значение подходит? Или мне просто установить максимум 50?
Вот что меня предупредило:
«Я также вижу случайные сбои при открытии файлов в приложениях, которые пытаются получить доступ к большому количеству файлов из общей папки».
Windows использует многоуровневую модель ввода-вывода, когда драйверы подключаются друг к другу и используют службы базового драйвера для выполнения своей работы. Уровень драйверов, которые используют сервисы друг друга, обычно называют «стеком драйверов».
У вас слишком много фильтров в конкретном стеке (количество запросов, каждый из которых проходит через уровни антивируса, базовый механизм фильтрации, ntfs и т. Д. И т. Д.), Поэтому IRPStackSize по умолчанию недостаточно велик. Увеличение значения по умолчанию позволяет всем фильтрам иметь собственное расположение стека ввода-вывода, и все довольны. Это не общая проблема Windows, а просто ограничение определенных драйверов в системе.
Подумайте о размещении часто используемых общих файловых ресурсов на файловом сервере, а затем прочтите Руководство по настройке 2008 R2, в частности, часть о настройке производительности файлового сервера: http://msdn.microsoft.com/en-us/windows/hardware/gg463392