Как ограничить приложения определенными ядрами ЦП с помощью привязки процессора
Большинство ПК с Windows теперь оснащены многоядерными процессорами, и последние версии Windows, как правило, очень хорошо справляются с автоматическим распределением общей вычислительной мощности вашего ПК для наилучшего соответствия запущенным приложениям и играм. Но иногда у пользователя и Windows могут быть разные идеи, когда дело доходит до принятия решений о том, как лучше всего использовать мощность ЦП ПК, и именно здесь опытные пользователи могут вмешаться и вручную ограничить определенные приложения или процессы определенными ядрами ЦП благодаря функции называется Совместимость процессоров. Вот как это сделать.
Когда дело доходит до версий Windows потребительского уровня, возможность пользователя вручную настраивать использование приложением определенных ядер ЦП восходит к временным рамкам Windows XP/2000, хотя шаги немного различаются в каждой версии Windows. Для действий и снимков экрана в этой статье мы используем Windows 10, но читатели, использующие более старые версии Windows, особенно Windows 7 и Windows 8/8.1, должны иметь возможность выполнить основные шаги, несмотря на небольшие различия в пользовательском интерфейсе Windows. .
Прежде чем мы продолжим, также важно отметить, что изменение привязки процессора к конкретному процессу или приложению может вызвать проблемы со стабильностью и, скорее всего, снизит производительность современных многопоточных приложений и игр. Поэтому сначала обязательно поэкспериментируйте с некритическими приложениями и данными и обязательно сохраните все открытые работы или прогресс игры, прежде чем изменять какие-либо параметры, обсуждаемые здесь, поскольку возможны сбои приложений или системы.
Зачем ограничивать доступ приложения к ядрам процессора?
Как упоминалось выше, большинство пользователей захотят, чтобы Windows автоматически обрабатывала вычислительную мощность ПК, обеспечивая доступ к ним приложениям, которые могут использовать все ядра. Обычно это приводит к повышению производительности, поэтому основной вопрос: почему пользователь когда-либо захочет ограничить или ограничить определенное многопоточное приложение меньшим количеством физических и логических ядер, доступных на ПК.
На этот вопрос есть два основных ответа: 1) обеспечить совместимость и производительность со старым программным обеспечением и 2) запустить сильно загруженный процессор, сохраняя при этом достаточно ресурсов для одновременного выполнения других задач.
Начнем с первого ответа: совместимости и производительности. Некоторые приложения и игры для Windows были написаны задолго до того, как многопоточные и многоядерные процессоры потребительского уровня стали реальностью. В частности, создатели старых игр, возможно, никогда не предполагали, что у кого-то, играющего в эту игру, будет что-то большее, чем ПК с Windows, оснащенный одним высокочастотным ядром ЦП. Когда программное обеспечение этой эпохи сталкивается с современными процессорами, оснащенными четырьмя, шестью, восемью или даже более ядрами, это иногда может привести к проблемам с производительностью или даже к невозможности запуска программы вообще.
Многие приложения и игры по-прежнему работают нормально, даже если они оснащены новейшим 8-ядерным/16-поточным процессором. процессоры-монстры для настольных ПК. Но если вы пытаетесь играть в старую игру и у вас возникли проблемы, хорошим шагом для устранения неполадок может быть использование привязки процессора для ручного ограничения игрового процесса только одним из многих ядер.
Второй ответ, вероятно, будет более полезен для большего количества пользователей Windows, и он ляжет в основу наших пошаговых инструкций ниже. Хотя многие приложения для Windows, особенно игрыпо-прежнему не могут использовать преимущества более чем одного или двух ядер, приложения для создания контента, такие как видеокодеры и инструменты 3D-рендеринга, были оптимизированы в последние годы, чтобы иметь возможность использовать каждую унцию вычислительной мощности, которую может им предоставить ваш ПК. Обычно вы хотите, чтобы эти приложения работали как можно быстрее, но иногда скорость или время завершения не являются основным фактором, и вы предпочитаете оставить некоторую часть вычислительной мощности вашего ПК доступной для другой задачи, пока ваше требовательное мультимедийное приложение работает в фон. Вот тут-то сходство процессоров действительно пригодится.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
Шаг за шагом: наш пример
Одно приложение, которое может съесть все ядра процессора, которые вы ему используете, — это видеокодер x264, например РипБот264 (или Ручной тормозили любой из множества доступных инструментов кодирования x264 и x265). В нашем примере мы хотим, чтобы RipBot264 кодировал видеофайл, но мы также хотим одновременно работать над другими проектами в таких приложениях, как Photoshop и Premiere.
Если бы мы запустили кодировку RipBot264, а затем запустили Photoshop и Premiere, Windows сделала бы все возможное, чтобы расставить приоритеты и удовлетворить потребности каждого приложения, но Windows также иногда допускает ошибки, что приводит к замедлению или временным зависаниям наших активных приложений. Мы можем попытаться избежать этого, используя привязку процессора, чтобы ограничить использование RipBot264 ядер нашего процессора.
Чтобы начать, сначала убедитесь, что вы вошли в учетную запись пользователя Windows с правами администратора. Затем запустите приложение, которое вы хотите ограничить. В нашем случае это RipBot264.
Затем запустите диспетчер задач Windows, щелкнув правой кнопкой мыши на панели задач и выбрав Диспетчер задач или с помощью сочетания клавиш Ctrl-Shift-Escape. По умолчанию диспетчер задач в последних версиях Windows запускается в «базовом» представлении. Если ваш диспетчер задач не выглядит так, как на наших скриншотах, нажмите Подробнее чтобы раскрыть полный интерфейс. Как только это будет сделано, убедитесь, что вы находитесь на вкладке «Процессы» и найдите свое приложение или процесс.
Этот последний шаг потенциально легче сказать, чем сделать. Во многих случаях вы просто найдете нужное приложение в списке. В других случаях некоторые приложения могут использовать уникальные процессы, отличные от основного процесса приложения, для определенных задач. Главное — найти процесс или процессы, которые отвечают за загрузку ЦП, которую вы хотите ограничить. Хороший способ проверить это — запустить ресурсоемкую деятельность (в нашем случае начать кодирование видеофайла), а затем отсортировать диспетчер задач по столбцу ЦП, чтобы найти процессы, которые используют самые высокие уровни ресурсов ЦП. Если имя процесса (опять же, в нашем случае это процесс кодировщика H.264) совпадает с вашим целевым приложением, все готово.
Определив правильный процесс, щелкните его правой кнопкой мыши и выберите Перейти к деталям. Вы перейдете на вкладку «Сведения» диспетчера задач и автоматически выделите правильный процесс.
Теперь снова щелкните правой кнопкой мыши по процессу и выберите Установить близость.
Появится новое окно с надписью «Processor Affinity», заполненное флажками и нумерованным списком процессоров, количество которых зависит от общего количества физических и логических ядер, упакованных в ваш конкретный процессор. В нашей примерной системе используется процессор Intel Core i7-5960X с восемью гиперпоточными ядрами. Таким образом, в нашем окне «Привязка процессоров» указано всего 16 процессоров.
Далее пришло время решить, насколько вы хотите ограничить свое приложение. Установите флажок рядом с Все процессоры чтобы отменить выбор всех блоков ЦП, а затем выбрать хотя бы один блок ЦП для проверки, каждый из которых представляет физическое или логическое ядро. При отсутствии каких-либо дефектов процессора или уникальных сценариев разгона обычно не имеет значения, какие ядра вы выберете.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
В нашем примере мы хотим ограничить RipBot264 четырьмя ядрами, оставив достаточно места для других, более срочных задач. После того, как вы выбрали желаемое количество ядер, нажмите ХОРОШО чтобы закрыть окно «Привязка процессора». Ваши изменения вступят в силу немедленно, и если приложение уже выполняло задачу, нагружающую процессор, вы увидите резкое снижение использования его процессора на всех ядрах, кроме выбранных вами.
Благодаря этой настройке мы можем позволить RipBot264 максимально быстро кодировать на этих четырех ядрах, но оставшиеся двенадцать ядер в нашей системе свободны для обработки других приложений. Если позже мы закончим нашу остальную работу и захотим восстановить полную производительность RipBot264, мы можем просто повторить шаги, описанные выше, чтобы вернуться в окно «Привязка процессора», а затем проверить Все процессоры поле, чтобы еще раз предоставить приложению доступ ко всем ядрам нашего процессора.
Предостережения
Помимо упомянутых ранее проблем со стабильностью, есть еще одно большое предостережение, которое вам необходимо учитывать. Любые изменения, которые вы вносите в привязку процессора, сбрасываются при каждом перезапуске этого процесса. Это означает, что вам как минимум придется повторять эти шаги каждый раз, когда вы перезагружаете компьютер. Однако некоторые процессы еще более неприятны, поскольку они перезагружаются автоматически в зависимости от инструкций приложения. Например, в нашей настройке RipBot264 измененный нами процесс кодирования H.264 запускается заново каждый раз, когда приложение переходит к кодированию нового видеофайла.
Вы можете обойти это ограничение, создав пользовательские скрипты которые устанавливают привязку вашего приложения к процессору с помощью командного файла или ярлыка на основе командной строки, но некоторые приложения могут использовать уникальные или случайные процессы, которые делают такие усилия трудными или невозможными. Поэтому лучше поэкспериментировать индивидуально с каждым приложением, которое вы хотите ограничить, чтобы найти лучший способ вручную настроить привязку процессора.