Влияет ли изменение реестра DisablePagingExecutive на какой-либо фактический эффект?

9

В прошлом на нескольких машинах в разных версиях Windows (2000, XP и без Vista) я включил DisablePagingExecutive, чтобы попытаться повысить производительность. В каждом случае и у меня было много памяти, а особенно в нынешнем случае. Однако после включения этой настройки реестра и перезагрузки через некоторое время я проверил диспетчер задач и все еще показываю огромный кусок ядра, выгружаемого на диск, даже если у меня есть 2 ГБ свободной физической памяти.

Кто-нибудь когда-нибудь использовал этот твик успешно? Когда-либо? Возможно, я смотрю неправильный индикатор, когда проверяю диспетчер задач (вкладка «Производительность» -> «Ядро памяти»), но я бы хотел, чтобы Windows не пейджировала все, что может, на диск, особенно учитывая объем памяти, предоставленной в настольные компьютеры в эти дни. Похоже, должна существовать опция «Не перелистывать на диск, если нет чрезмерного давления памяти» - есть ли такая?

SqlRyan
источник

Ответы:

13

В Интернете существует огромное количество путаницы в отношении этой функции. Этот параметр влияет только на часть ядра, известную как исполнительная, и только на части, которые доступны для просмотра. Существуют и другие части ядра, которые не затрагиваются этим параметром.

Пейджинг ядра работает так же, как и любой другой пейджинг. Код и данные, к которым часто обращаются, будут храниться в оперативной памяти, а остальная часть останется на диске - там, где он принадлежит. Система не удалит какую-либо часть ядра из ОЗУ, если не найдет для нее лучшего применения. Microsoft посвятила огромное количество исследований и испытаний системам подкачки.

В контексте ядра «Nonpaged» означает код и данные, которые никогда не могут быть выгружены ни при каких обстоятельствах. «Paged» означает код и данные, которые МОГУТ быть выгружены при необходимости. Сколько на самом деле IS выгружено, невозможно сказать из диспетчера задач. Часть кода, которая выгружается, никогда не читалась с диска, потому что она еще не была нужна. Не все ядра часто доступны. Вы не должны ожидать, что номера с номерами и номерами будут затронуты данным параметром.

Примечание. Когда код выгружается, он обычно не копируется в файл подкачки. В этом нет необходимости, поскольку его можно просто перезагрузить из исходных файлов. Это относится к большей части кода, а не только керенле.

При разумном объеме оперативной памяти настройка практически ничего не изменит. Это просто не дает системе выгружать данные, которые она не хотела выводить.

Ларри Миллер
источник
4

Я не уверен, что вы понимаете это, но ошибки страниц - это механизм, который Windows использует для загрузки исполняемого кода. Так, например, DLL отображается на виртуальную память, а затем сбои страниц используются для фактической загрузки с диска по мере необходимости. Файл подкачки не участвует в этом.

Так что многое из того, что вы считаете «выгруженным на диск», может быть тем, что изначально было на диске.

Уилл Дин
источник
Я этого не осознавал, и это имеет смысл, хотя я не думаю, что это отвечает на мой вопрос. Если я отключаю подкачку ядра Windows, почему мой диспетчер задач продолжает сообщать мне, что 75% его страниц выгружено (всего 400 МБ ядра с 275 МБ страниц)? Это также не отвечает на мой вопрос о том, почему Windows, кажется, так сильно загружается, когда все еще много ГБ свободной памяти.
SqlRyan
1
Вы читаете «paged» как «доступную для записи память, которая была выгружена», тогда как в контексте памяти ядра «paged» означает «может быть выгружен», а «nonpaged» означает «никогда не будет выгружен» -вне'. Последнее важно для программирования KM, когда вам нужна память в ситуациях, когда система подкачки не может работать (например, обработчики прерываний).
Уилл Дин
В контексте используемых вами терминов (я не являюсь разработчиком ядра, так что я не знаю ничего лучше), я ожидаю, что это изменение реестра пометит все ядро ​​как «невыгружаемое» (имеется в виду «будет никогда не высовываться "), и это не то, что он делает. Я просто хотел посмотреть, ожидают ли другие того же самого ожидания, что и я, или я неправильно истолковал то, что должно было сделать это изменение.
SqlRyan
3

Просто добавьте еще одно использование этого параметра: он необходим для xperfобхода стека.

http://blogs.msdn.com/b/pigscanfly/archive/2009/08/06/stack-walking-in-xperf.aspx

Отключить Paging Executive

Чтобы трассировка работала в 64-битной Windows, необходимо установить раздел реестра DisablePagingExecutive. Это заставляет операционную систему не публиковать драйверы режима ядра и системный код на диске, что является необходимым условием для получения стеков 64-битных вызовов с использованием xperf, поскольку обход 64-битного стека зависит от метаданных в исполняемых образах, а в некоторых ситуациях Коду обхода стека xperf не разрешается касаться страниц.

Еще одна информация о настройке. Эту цитату можно найти в интернете, я не знаю ее первоисточника.

DisablePagingExecutive применяется только к ntoskrnl.exe. Это не относится к win32k.sys (намного больше, чем ntoskrnl.exe!), Доступным для просмотра частям других драйверов, выгружаемому пулу и, конечно, кешу файловой системы. Все они находятся в адресном пространстве ядра и выгружаются на диск. В системах с малым объемом памяти это может привести к ненужной загрузке кода приложения и снижению производительности. Если у вас более чем достаточно ОЗУ для вашей рабочей нагрузки, да, это не повредит, но, опять же, если у вас более чем достаточно ОЗУ для вашей рабочей нагрузки, система все равно не выполняет большую часть этой работы. Этот параметр полезен при отладке драйверов и обычно рекомендуется для использования только на серверах, на которых работает ограниченный известный набор приложений

Таким образом, можно сделать вывод, что помимо xperf-usage его польза неясна: по сути, он ограничивает некоторые «почти случайные» вещи от подкачки страниц и дальнейших размышлений - следовательно, вместо этого чаще выкладывается что-то еще.

Роланд Пихлакас
источник
2

Твик DisablePagingExecutive не останавливает пейджинг, его цель состояла в том, чтобы предотвратить подкачку «Executive» (то есть самого ядра) и, таким образом, вызвать замедление всей системы, а не только отдельных выгружаемых приложений.

Вы можете полностью отключить подкачку, удалив все файлы подкачки в Системных свойствах (или в HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Memory Management \ PagingFiles). Это хорошо работает для меня, но все становится довольно неприятно, когда у вас заканчивается физическая память, и у вас должен быть файл подкачки для отладки ошибок STOP.

Froosh
источник
Я работал без файла подкачки в течение нескольких дней, и он работает довольно хорошо, Windows 7 на самом деле предлагает предложения приложений, жаждущих памяти, которые нужно убить, когда он начинает исчерпывать себя.
Froosh
1

Компоненты системного уровня, такие как ядро, исполнительный драйвер и драйверы устройств, могут выделять память из двух пулов. Это выгружаемый пул, который можно выгружать по усмотрению менеджеров памяти, и невыгружаемый пул, который должен всегда оставаться в оперативной памяти. Разработчик решает в соответствии со своими потребностями, какой пул будет использоваться. По возможности рекомендуется использовать выгружаемый пул, поскольку это обеспечивает максимальную гибкость диспетчера системной памяти. Оба пула имеют ограниченный размер, и в 32-разрядных системах, в частности, эти ограничения могут представлять проблему. Пейджинговый пул значительно больше. При чрезмерном использовании невыгружаемого пула может быть достигнут предел размера, что приведет к серьезным системным проблемам.

Элементы, помеченные в диспетчере задач как «выгружаемая» и «невыгружаемая» память ядра, показывают распределение этих пулов. Это не имеет абсолютно никакого отношения к динамическому состоянию того, сколько памяти фактически выгружено. Запись реестра «DisablePagingExceutive» влияет на динамическое состояние разбиения по страницам части выгружаемого пула, поэтому его менеджер никогда не будет отображать его.

Ларри Миллер
источник
1

Если вы вносите изменения в настройки системы, вам необходимо понимать эту информацию или ее эквивалент, чтобы знать, к какому типу результатов приводит изменение настройки системы, где результаты могут быть положительными, нейтральными или отрицательными по отношению к производительность системы.

Что вы можете сделать, это открыть «Монитор ресурсов» в Windows. Перейдите к инструменту поиска и выполните поиск «Монитор ресурсов». Или откройте инструмент запуска команды (я предполагаю, что любой, кто читает это, знает, как это сделать) и введите «resmon».

Используйте этот инструмент для мониторинга всех видов системной активности, таких как нагрузка на процессор, активность памяти и активность жесткого диска. Если вы еще не знакомы с информацией, содержащейся в «Мониторе ресурсов», изучите ее немного, потому что вам нужно будет ознакомиться с ней, чтобы запускать тесты, которые помогут вам измерить тип результатов, которые вносит изменение в системный параметр.

Основная идея заключается в том, что вы запускаете «Монитор ресурсов», когда ваша компьютерная система запускает определенные задачи, чтобы измерить результаты, связанные с производительностью, которые вносит изменение в системные настройки. Запустите задачи, которые используют системные ресурсы, которые вы пытаетесь проверить на производительность. Например, есть задачи, которые могут проверить процессор, оперативную память, жесткий диск (и), графический процессор или сетевое устройство. Используйте Google, чтобы узнать, как проверить производительность компьютерных ресурсов, которые вы хотите проверить.

Например, если вы вносите изменения в системный параметр «Отключить Paging Executive», вы можете запустить тест на ресурсах компьютера и использовать «Resource Monitor», чтобы измерить, какие результаты дает изменение (если оно вообще есть).

Затем проведите сравнение между данными и посмотрите, есть ли существенные различия между старой настройкой системы и новой измененной настройкой системы.

Возможно, вам не всегда нужно использовать «Монитор ресурсов», поскольку некоторые методы тестирования производительности системных ресурсов поставляются с программным обеспечением, которое отслеживает и измеряет данные за вас.

Суть в том, что вы хотите следовать систематическому методу, чтобы увидеть, влияет ли изменение на производительность вашей системы относительно задач, которые вы запрашиваете у компьютера.

Измените одну настройку. Проверьте это на изменение производительности. Определите результаты теста. Основываясь на результатах, решите, вернете ли вы настройку обратно к тому, что было, или к чему-то другому, или оставьте ее там, где она есть. 1) Настройка 2) Тест 3) Результаты 4) Решение.

Вы можете использовать этот метод логического вывода для всех видов настроек системных настроек, включая «Отключение Paging Executive».

Счастливой настройки.

WestdoX
источник
1

Есть много! Очень хорошая информация об этом посте, я был впечатлен. Я заметил, что DisablePagingExecutive со значением один лучше всего делать на первом сайте рабочего стола после чистой установки любой версии Windows от xp до windows 10, от 32 до 64 бит (если на материнской плате достаточно оперативной памяти), но после того, как значение 1 применено к DisablePagingExecutive, то же значение должно быть сделано и для LargeSystemCache.

Также, как упоминалось выше, эти настройки обычно делаются на серверах Windows, но также удобны при отладке.

Эти изменения используются на ваш страх и риск, поэтому примите во внимание то, что все упомянули выше, также не мешало бы Google каждый из упомянутых ключей, которые были DisablePagingExecutive и 1, я не помню, видел ... LargeSystemCache.

Убедитесь, что у вас достаточно оперативной памяти. Недостаточно оперативной памяти вызывает проблемы в вашей системе, с которыми вы не хотите иметь дело, и, вероятно, вызовет синий экран (bsod) в вашей системе.

4 ГБ оперативной памяти - это минимум, к которому я бы применил эти твики, описанные выше, и это если вы не используете интенсивные приложения, которые используют много оперативной памяти, или если вы играете, если вы делаете, то лучше оставить их в покое.

(XP: минимум 256 МБ оперативной памяти минимум)

Прежде чем что-либо делать в реестре, рекомендуется создать реестр на устройстве хранения, а не на жестком диске с операционными системами или на отдельном хранилище ЛЮБОГО типа, чтобы при необходимости можно было восстановить реестр.

Информация выше меня действительно пересекает Т и ставит точки я.

                    Make sure to backup your system.
Smirk24
источник