Назад | Перейти на главную страницу

Влияет ли изменение реестра DisablePagingExecutive?

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

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

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

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

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

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

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

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

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

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

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

Отключить пейджинговый менеджер

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

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

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

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

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

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

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

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

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

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

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

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

Если, например, вы вносите изменения в системную настройку «Отключить пейджинговый менеджер», вы можете запустить тест на ресурсах компьютера и использовать «Монитор ресурсов», чтобы измерить, какие результаты дает изменение (если вообще какие-либо изменения).

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

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

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

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

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

Удачной настройки.

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

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

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

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

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

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

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

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

Примечание. Еще одна хорошая настройка, связанная с DisablePagingExecutive, - это «Размер», который находится в Lanman Server / Parameters. Ключ реестра «Размер» помогает снизить нагрузку на жесткие диски. Вы заметите, как после того, как этот ключ добавлен и изменен на значение 3, ваши приложения запускаются довольно медленно, но когда у вас DisablePagingExecutive установлено на 1, а значение Size установлено на 3, ваше наиболее используемое приложение или приложения, интенсивно использующие части ввода-вывода помещаются в кэшированный раздел оперативной памяти, что, в свою очередь, ускоряет загрузку приложения.

Используя тесты производительности passmark, я заметил довольно большие улучшения после применения DisablePagingExecutive = 1 и Size = 3.

                    Make sure to backup your system.