Распределение процессорного времени, что выбрать
Обновлено: 21.11.2024
В этом разделе описывается, как настроить операционную систему для оптимизации использования ЦП при рабочих нагрузках.
31.1. Инструменты для мониторинга и диагностики проблем с процессором
В Red Hat Enterprise Linux 8 доступны следующие инструменты для мониторинга и диагностики проблем с производительностью процессора:
- Инструмент turbostat печатает результаты счетчиков через определенные промежутки времени, чтобы помочь администраторам определить непредвиденное поведение серверов, например чрезмерное энергопотребление, невозможность перехода в состояние глубокого сна или ненужные прерывания управления системой (SMI).
- Утилита numactl предоставляет ряд параметров для управления привязкой процессора и памяти. Пакет numactl включает библиотеку libnuma, которая предлагает простой программный интерфейс для политики NUMA, поддерживаемой ядром, и может использоваться для более тонкой настройки, чем приложение numactl.
- Инструмент numastat отображает статистику памяти для каждого узла NUMA для операционной системы и ее процессов, а также показывает администраторам, распределена ли память процесса по всей системе или централизована на определенных узлах. Этот инструмент предоставляется пакетом numactl.
- numad — демон автоматического управления сходством NUMA. Он отслеживает топологию NUMA и использование ресурсов в системе, чтобы динамически улучшать распределение ресурсов NUMA и управление ими. В файле
- /proc/interrupts отображается номер запроса на прерывание (IRQ), количество похожих запросов на прерывание, обработанных каждым процессором в системе, тип отправленного прерывания и разделенный запятыми список устройств, которые отвечают на перечисленные запрос на прерывание.
Утилита pqos входит в состав пакета intel-cmt-cat. Он отслеживает кэш-память ЦП и пропускную способность памяти на последних процессорах Intel. Он отслеживает:
- Количество инструкций за цикл (IPC).
- Количество промахов кеша последнего уровня.
- Размер в килобайтах, который программа, выполняемая на данном ЦП, занимает в LLC.
- Пропускная способность локальной памяти (MBL).
- Пропускная способность удаленной памяти (MBR).
Дополнительные ресурсы
- справочные страницы turbostat(8), numactl(8), numastat(8), numa(7), numad(8), pqos(8), x86_energy_perf_policy(8) и taskset(1)
31.2. Типы топологии системы
В современных вычислениях идея ЦП вводит в заблуждение, поскольку большинство современных систем имеют несколько процессоров. Топология системы — это то, как эти процессоры связаны друг с другом и с другими системными ресурсами. Это может повлиять на производительность системы и приложений, а также на вопросы настройки системы.
В современных вычислениях используются два основных типа топологии:
Симметричная многопроцессорная топология (SMP) Топология SMP позволяет всем процессорам обращаться к памяти в одно и то же время. Однако, поскольку общий и равный доступ к памяти по своей сути требует сериализованного доступа к памяти со всех ЦП, ограничения масштабирования системы SMP в настоящее время обычно рассматриваются как неприемлемые. По этой причине практически все современные серверные системы являются машинами NUMA. Топология неоднородного доступа к памяти (NUMA)
Топология NUMA была разработана позже, чем топология SMP. В системе NUMA несколько процессоров физически сгруппированы на сокете. Каждый сокет имеет выделенную область памяти и процессоры, которые имеют локальный доступ к этой памяти, вместе они называются узлом. Процессоры на одном узле имеют высокоскоростной доступ к банку памяти этого узла и более медленный доступ к банкам памяти на другом узле.
Поэтому при доступе к нелокальной памяти снижается производительность. Таким образом, чувствительные к производительности приложения в системе с топологией NUMA должны обращаться к памяти, которая находится на том же узле, что и процессор, выполняющий приложение, и должны избегать доступа к удаленной памяти, где это возможно.
Многопоточные приложения, чувствительные к производительности, могут выиграть от настройки для выполнения на конкретном узле NUMA, а не на конкретном процессоре. Подходит ли это, зависит от вашей системы и требований вашего приложения. Если несколько потоков приложений обращаются к одним и тем же кэшированным данным, может оказаться целесообразным настроить эти потоки для выполнения на одном и том же процессоре. Однако если несколько потоков, которые обращаются к разным данным и кэшируют их, выполняются на одном и том же процессоре, каждый поток может удалить кэшированные данные, к которым обращался предыдущий поток. Это означает, что каждый поток «пропускает» кеш и тратит время выполнения на выборку данных из памяти и замену их в кеше. Используйте инструмент perf для проверки чрезмерного количества промахов кеша.
31.2.1. Отображение системных топологий
Существует ряд команд, помогающих понять топологию системы. Эта процедура описывает, как определить топологию системы.
Процедура
Чтобы отобразить обзор топологии вашей системы:
Чтобы собрать информацию об архитектуре ЦП, такую как количество ЦП, потоков, ядер, сокетов и узлов NUMA:
Чтобы просмотреть графическое представление вашей системы:
Рисунок 31.1. Вывод lstop
Чтобы просмотреть подробный текстовый вывод:
Дополнительные ресурсы
31.3. Настройка времени тика ядра
По умолчанию Red Hat Enterprise Linux 8 использует бестактное ядро, которое не прерывает бездействующие процессоры, чтобы снизить энергопотребление и позволить новым процессорам использовать преимущества состояний глубокого сна.
Red Hat Enterprise Linux 8 также предлагает динамическую опцию без тактов, которая полезна для чувствительных к задержкам рабочих нагрузок, таких как высокопроизводительные вычисления или вычисления в реальном времени. По умолчанию опция динамического безгалочки отключена. Red Hat рекомендует использовать профиль TuneD с разделением процессора, чтобы включить динамическую опцию без тактов для ядер, указанных как изолированные_ядра.
Эта процедура описывает, как вручную постоянно включать динамическое поведение без тактов.
Процедура
Чтобы включить динамическое безтактовое поведение на определенных ядрах, укажите эти ядра в командной строке ядра с помощью параметра nohz_full. В 16-ядерной системе добавьте этот параметр к параметру GRUB_CMDLINE_LINUX в файле /etc/default/grub:
Это обеспечивает динамическое бестактовое поведение на ядрах с 1 по 15 , перемещая весь хронометраж на единственное неуказанное ядро (ядро 0 ).
Чтобы постоянно включать динамическое поведение без тиков, повторно создайте конфигурацию GRUB2, используя отредактированный файл по умолчанию. В системах с прошивкой BIOS выполните следующую команду:
В системах с прошивкой UEFI выполните следующую команду:
При загрузке системы вручную переместите потоки rcu на ядро, не чувствительное к задержкам, в данном случае на ядро 0:
Этапы проверки
После перезагрузки системы проверьте, включены ли dynticks:
Убедитесь, что динамическая бестактовая конфигурация работает правильно:
Эта команда измеряет тики на ЦП 1, одновременно переводя ЦП 1 в спящий режим на 3 секунды.
Конфигурация таймера ядра по умолчанию показывает около 3100 тиков на обычном процессоре:
При настроенном динамическом безтактовом ядре вместо этого вы должны увидеть около 4 тактов:
Дополнительные ресурсы
- справочные страницы perf(1) и cpuset(7)
- Все о параметре ядра nohz_full в статье базы знаний Red Hat
- Как проверить список «изолированных» и «nohz_full» сведений о ЦП из sysfs? Статья базы знаний Red Hat
31.4. Обзор запроса на прерывание
Запрос на прерывание или IRQ — это сигнал о немедленном внимании, отправляемый аппаратной частью процессору. Каждому устройству в системе назначается один или несколько номеров IRQ, которые позволяют ему отправлять уникальные прерывания. Когда прерывания разрешены, процессор, получивший запрос на прерывание, немедленно приостанавливает выполнение текущего потока приложения, чтобы обработать запрос на прерывание.
Поскольку прерывание останавливает нормальную работу, высокая частота прерываний может серьезно снизить производительность системы. Можно уменьшить количество времени, затрачиваемое прерываниями, настроив привязку прерываний или отправив несколько прерываний с более низким приоритетом в пакете (объединив несколько прерываний).
Запросы на прерывание имеют связанное свойство сходства smp_affinity , которое определяет процессоры, обрабатывающие запрос на прерывание. Чтобы повысить производительность приложения, назначьте привязку прерываний и привязку процессов одному и тому же процессору или процессорам на одном ядре. Это позволяет указанным потокам прерываний и приложений совместно использовать строки кэша.
В системах, поддерживающих управление прерываниями, изменение свойства smp_affinity запроса на прерывание настраивает оборудование таким образом, что решение об обслуживании прерывания конкретным процессором принимается на аппаратном уровне без вмешательства ядра.
31.4.1. Балансировка прерываний вручную
Если ваш BIOS экспортирует свою топологию NUMA, служба irqbalance может автоматически обслуживать запросы на прерывание на узле, который является локальным для службы, запрашивающей оборудование.
Процедура
-
Проверьте, какие устройства соответствуют запросам на прерывание, которые вы хотите настроить.
Найдите спецификацию оборудования для вашей платформы. Проверьте, поддерживает ли набор микросхем вашей системы прерывания распределения.
- Если это так, вы можете настроить доставку прерывания, как описано в следующих шагах. Кроме того, проверьте, какой алгоритм использует ваш чипсет для балансировки прерываний. В некоторых BIOS есть параметры для настройки доставки прерывания.
- Если это не так, ваш набор микросхем всегда направляет все прерывания на один статический ЦП. Вы не можете указать, какой ЦП будет использоваться.
Проверьте, какой режим Advanced Programmable Interrupt Controller (APIC) используется в вашей системе:
-
Если в вашей системе используется режим, отличный от плоского, вы можете увидеть строку, аналогичную настройке маршрутизации APIC для физического плоского.
Если вы не видите такого сообщения, ваша система использует простой режим.
Если в вашей системе используется режим x2apic, вы можете отключить его, добавив параметр nox2apic в командную строку ядра в конфигурации загрузчика.
Только нефизический плоский режим ( flat ) поддерживает распределение прерываний на несколько ЦП. Этот режим доступен только для систем, имеющих до 8 процессоров.
Дополнительные ресурсы
31.4.2. Установка маски smp_affinity
Значение smp_affinity сохраняется в виде шестнадцатеричной битовой маски, представляющей все процессоры в системе. Каждый бит настраивает отдельный ЦП. Младший значащий бит — CPU 0.
Значение маски по умолчанию — f , что означает, что запрос на прерывание может быть обработан на любом процессоре в системе. Установка этого значения в 1 означает, что только процессор 0 может обрабатывать прерывание.
Процедура
В двоичном формате используйте значение 1 для процессоров, обрабатывающих прерывания. Например, чтобы настроить ЦП 0 и ЦП 7 для обработки прерываний, используйте 0000000010000001 в качестве двоичного кода:
В этой главе из Внутреннее устройство Windows, 5-е издание вы узнаете о структурах данных и алгоритмах, связанных с процессами, потоками и заданиями в операционной системе Windows. Первый раздел посвящен внутренним структурам, из которых состоит процесс. Во втором разделе описываются шаги, необходимые для создания процесса (и его начального потока). Затем описывается внутреннее устройство потоков и планирование потоков. Глава завершается описанием объекта задания.
Там, где существуют соответствующие счетчики производительности или переменные ядра, они упоминаются. Хотя эта книга не является книгой по программированию для Windows, в ней перечислены соответствующие процессы, потоки и функции заданий Windows, чтобы вы могли получить дополнительную информацию об их использовании.
Поскольку процессы и потоки взаимодействуют со многими компонентами Windows, в этой главе упоминается ряд терминов и структур данных (например, рабочие наборы, объекты и дескрипторы, кучи системной памяти и т. д.), но при этом они объясняются подробно. в другом месте книги. Чтобы полностью понять эту главу, вы должны быть знакомы с терминами и понятиями, описанными в главах 1 и 2, такими как разница между процессом и потоком, структура виртуального адресного пространства Windows и разница между режимом пользователя и режимом ядра. режим.
Внутреннее устройство процесса
В этом разделе описываются ключевые структуры данных процесса Windows. Также перечислены ключевые переменные ядра, счетчики производительности, а также функции и инструменты, связанные с процессами.
Структуры данных
Каждый процесс Windows представлен блоком исполнительного процесса (EPROCESS). Помимо множества атрибутов, относящихся к процессу, блок EPROCESS содержит ряд других связанных структур данных и указывает на них. Например, каждый процесс имеет один или несколько потоков, представленных блоками исполнительных потоков (ETHREAD). (Структуры данных потока объясняются в разделе «Внутреннее устройство потока» далее в этой главе.) Блок EPROCESS и связанные с ним структуры данных существуют в системном адресном пространстве, за исключением блока среды процесса (PEB), который существует в адресном пространстве процесса. (поскольку он содержит информацию, доступ к которой должен осуществляться кодом пользовательского режима).
Помимо блока EPROCESS и PEB, процесс подсистемы Windows (Csrss) поддерживает параллельную структуру для каждого процесса, выполняющего программу Windows. Наконец, часть подсистемы Windows, работающая в режиме ядра (Win32k.sys), также будет поддерживать структуру данных для каждого процесса, которая создается при первом вызове потоком функции Windows USER или GDI, реализованной в режиме ядра.
Рисунок 5-1 представляет собой упрощенную схему структур данных процесса и потока. Каждая структура данных, показанная на рисунке, подробно описана в этой главе.
Рисунок 5-1. Структуры данных, связанные с процессами и потоками
Сначала сосредоточимся на блоке процесса. (Мы вернемся к блоку потока в разделе Внутреннее устройство потока далее в этой главе.) На рис. 5-2 показаны ключевые поля в блоке EPROCESS.
Рисунок 5-2. Структура блока исполнительного процесса
ЭКСПЕРИМЕНТ: отображение формата блока EPROCESS
Чтобы получить список полей, составляющих блок EPROCESS, и их смещения в шестнадцатеричном формате, введите dt _eprocess в отладчике ядра. (Дополнительную информацию об отладчике ядра и о том, как выполнять отладку ядра в локальной системе, см. в Главе 1.) Вывод (усеченный для экономии места) в 32-разрядной системе выглядит следующим образом:
Обратите внимание, что первое поле (Pcb) на самом деле является подструктурой, блоком процесса ядра (KPROCESS), в котором хранится информация, связанная с планированием. Чтобы отобразить формат блока процесса ядра, введите dt _kprocess:
Альтернативный способ увидеть KPROCESS (и другие подструктуры в EPROCESS) — использовать переключатель рекурсии (–r) команды dt. Например, ввод dt _eprocess –r1 вызовет рекурсию и отобразит все подструктуры на один уровень глубже.
Команда dt показывает формат блока процесса, а не его содержимое. Чтобы показать экземпляр реального процесса, вы можете указать адрес структуры EPROCESS в качестве аргумента команды dt. Вы можете получить адреса всех блоков EPROCESS в системе с помощью команды !process 0 0. Аннотированный пример вывода этой команды приведен далее в этой главе.
Таблица 5-1 более подробно поясняет некоторые поля предыдущего эксперимента и содержит ссылки на другие места в книге, где можно найти дополнительную информацию о них. Как мы уже говорили и, без сомнения, скажем снова, процессы и потоки являются настолько неотъемлемыми частями Windows, что невозможно говорить о них, не упомянув о многих других частях системы. Однако, чтобы сократить объем этой главы, мы рассмотрели связанные темы (такие как управление памятью, безопасность, объекты и дескрипторы) в другом месте.
Таблица 5-1. Содержимое блока EPROCESS
Элемент
Цель
Дополнительная ссылка
Блок процесса ядра (KPROCESS)
Общий заголовок объекта диспетчера, указатель на каталог страницы процесса, список блоков потоков ядра (KTHREAD), принадлежащих процессу, базовый приоритет по умолчанию, маска сходства, а также общее время ядра и пользователя, а также тактовые циклы ЦП для потоков в процесс.
Планирование потоков (глава 5)
Уникальный идентификатор процесса, идентификатор создаваемого процесса, имя запускаемого образа, процесс оконной станции, на котором запущен процесс.
Дескрипторы виртуальных адресов (VAD)
Серия структур данных, описывающих состояние частей адресного пространства, существующих в процессе.
Дескрипторы виртуальных адресов (глава 9)
Информация о рабочем наборе
Указатель на список рабочих наборов (структура MMWSL); текущий, пиковый, минимальный и максимальный размер рабочего набора; время последней обрезки; счетчик ошибок страниц; приоритет памяти; флаги выгрузки; история ошибок страницы.
Рабочие наборы (Глава 9)
Информация о виртуальной памяти
Текущий и пиковый виртуальный размер, использование файла подкачки, запись в таблице аппаратных страниц для каталога страниц процесса.
Исключение устаревшего порта вызова локальных процедур (LPC)
Канал межпроцессного взаимодействия, в который диспетчер процессов отправляет сообщение, когда один из потоков процесса вызывает исключение.
Отправка исключений (глава 3)
Исполнительный объект, через который инфраструктура отладки пользовательского режима отправляет уведомления, когда один из потоков процесса вызывает событие отладки.
Отладка в пользовательском режиме (глава 3)
Токен доступа (TOKEN)
Исполнительный объект, описывающий профиль безопасности этого процесса.
Адрес таблицы дескрипторов для каждого процесса.
Описатели объектов и таблица дескрипторов процессов (глава 3)
Адрес каталога объектов для разрешения ссылок на имена устройств (поддерживается несколько пользователей).
Имена объектов (глава 3)
Блок среды процесса (PEB)
Информация об образе (базовый адрес, номера версий, список модулей), информация о куче процесса и использование локального хранилища потока. (Примечание: указатели на кучи процессов начинаются с первого байта после PEB.)
Блок процесса подсистемы Windows (W32PROCESS)
Сведения о процессе, необходимые компоненту режима ядра подсистемы Windows.
Блок процесса ядра (KPROCESS), являющийся частью блока EPROCESS, и блок среды процесса (PEB), на который указывает блок EPROCESS, содержат дополнительные сведения об объекте процесса. Блок KPROCESS (который иногда называют печатной платой или блоком управления процессом) показан на рис. 5-3. Он содержит основную информацию, необходимую ядру Windows для планирования потоков внутри процесса. (Каталоги страниц рассматриваются в главе 9, а блоки нитей ядра более подробно описаны далее в этой главе.)
PEB, находящийся в адресном пространстве пользовательского процесса, содержит информацию, необходимую загрузчику образов, диспетчеру кучи и другим системным библиотекам DLL Windows, которым требуется доступ к ним из пользовательского режима. (Блоки EPROCESS и KPROCESS доступны только из режима ядра.) Базовая структура PEB показана на рис. 5-4 и более подробно объясняется далее в этой главе.
Рисунок 5-3. Структура блока исполнительного процесса
Рисунок 5-4. Поля блока окружения процесса
Эксперимент: изучение PEB
Вы можете создать дамп структуры PEB с помощью команды !peb в отладчике ядра. Чтобы получить адрес PEB, используйте команду !process следующим образом:
Затем укажите этот адрес в команде !peb следующим образом:
Переменные ядра
Несколько ключевых глобальных переменных ядра, относящихся к процессам, перечислены в таблице 5-2. Эти переменные упоминаются далее в главе, когда описываются этапы создания процесса.
Таблица 5-2. Переменные ядра, связанные с процессом
Элемент
Цель
Дополнительная ссылка
Двусвязный список
Список заголовков блоков процесса
Указатель на EPROCESS
Блок бездействующего процесса
Указатель на EPROCESS
Указатель на блок исходного системного процесса, содержащий системные потоки
Массив исполнительных объектов обратного вызова
Массив объектов обратного вызова, описывающих подпрограммы, которые будут вызываться при создании и удалении процесса (максимум восемь)
Количество зарегистрированных процедур уведомления о процессах
Количество зарегистрированных процедур уведомления о расширенных процессах
Массив исполнительных объектов обратного вызова
Массив объектов обратного вызова, описывающих подпрограммы, которые будут вызываться при загрузке изображения (максимум восемь)
Количество зарегистрированных процедур уведомления о загрузке изображений
Маска для быстрой проверки того, включены ли какие-либо расширенные или стандартные процедуры уведомлений
Указатель на HANDLE_TABLE
Таблица дескрипторов для идентификаторов клиентов процессов и потоков
Счетчики производительности
Windows поддерживает ряд счетчиков, с помощью которых вы можете отслеживать процессы, запущенные в вашей системе; вы можете получить эти счетчики программно или просмотреть их с помощью инструмента «Производительность». В Табл. 5-3 перечислены счетчики производительности, относящиеся к процессам.
Таблица 5-3. Счетчики производительности, связанные с процессом
Объект: Счетчик
Функция
Процесс: % привилегированного времени
Описывает процент времени, в течение которого потоки процесса выполнялись в режиме ядра в течение указанного интервала.
Процесс: % процессорного времени
Описывает процент процессорного времени, которое потоки в процессе использовали в течение указанного интервала. Это количество представляет собой сумму % привилегированного времени и % времени пользователя.
Обработка: % пользовательского времени
Описывает процент времени, в течение которого потоки процесса выполнялись в пользовательском режиме в течение указанного интервала.
Процесс: истекшее время
Описывает общее время в секундах, прошедшее с момента создания этого процесса.
Процесс: процесс идентификации
Возвращает идентификатор процесса. Этот идентификатор применяется только во время существования процесса, поскольку идентификаторы процессов используются повторно.
Процесс: создание идентификатора процесса
Возвращает идентификатор процесса создания. Это значение не обновляется, если процесс создания завершается.
Процесс: количество потоков
Возвращает количество потоков в процессе.
Процесс: обработка счетчика
Возвращает количество дескрипторов, открытых в процессе.
Соответствующие функции
В справочных целях некоторые функции Windows, применимые к процессам, описаны в Табл. 5-4. Для получения дополнительной информации обратитесь к документации Windows API в библиотеке MSDN.
Таблица 5-4. Функции, связанные с процессом
Функция
Описание
Создает новый процесс и поток, используя идентификатор безопасности вызывающего объекта
Создает новый процесс и поток с указанным альтернативным токеном безопасности
Создает новый процесс и поток для запуска под учетными данными указанного имени пользователя и пароля
Создает новый процесс и поток с указанным альтернативным токеном безопасности с дополнительными параметрами, такими как разрешение загрузки профиля пользователя
Возвращает дескриптор указанного объекта процесса
Завершает процесс и уведомляет все подключенные библиотеки DLL
Завершает процесс без уведомления библиотек DLL
Очищает кэш инструкций указанного процесса
Очищает очередь записи указанного процесса
Получает информацию о времени процесса, описывающую, сколько времени потоки внутри процесса провели в пользовательском режиме и в режиме ядра
Получает информацию о времени ЦП процесса, описывая, сколько тактов в общей сложности потратили потоки внутри процесса
Определяет, будет ли автоматически обновляться привязка процесса, если в работающую систему добавляются новые процессоры
Возвращает или задает политику DEP (защита от выполнения данных) для процесса
Возвращает код выхода для процесса, указывающий, как и почему процесс завершился
Возвращает указатель на строку командной строки, переданную текущему процессу
Возвращает полное имя исполняемого образа, связанного с процессом
Возвращает псевдодескриптор текущего процесса
Возвращает идентификатор текущего процесса
Возвращает основную и дополнительную версии версии Windows, в которой ожидается запуск указанного процесса
Возвращает содержимое структуры STARTUPINFO, указанной во время CreateProcess
.Возвращает адрес блока среды
Возвращает или задает определенную переменную среды
Определяет приоритет завершения работы и количество повторных попыток для текущего процесса
Указывает, знает ли процесс о настройках точек на дюйм (DPI)
Возвращает количество дескрипторов User и GDI
Эксперимент: использование команды !process отладчика ядра
Команда отладчика ядра !process отображает подмножество информации в блоке EPROCESS. Этот вывод состоит из двух частей для каждого процесса. Сначала вы видите информацию о процессе, как показано здесь (если вы не укажете адрес или идентификатор процесса, !process выводит информацию для активного процесса на текущем процессоре):
После основных выходных данных процесса следует список потоков в процессе. Этот вывод объясняется в разделе ЭКСПЕРИМЕНТ: Использование команды отладчика ядра !thread далее в этой главе. Другие команды, которые отображают информацию о процессе, включают !handle, которая выводит дамп таблицы дескрипторов процесса (которая более подробно описана в разделе дескрипторы объектов и таблица дескрипторов процесса в главе 3). Структуры безопасности процессов и потоков описаны в главе 6.
Повышение приоритета ЦП для программы увеличивает концентрацию ЦП на этой программе, повышая ее производительность. В малом бизнесе определение использования ЦП может помочь сэкономить время. Например, повышение приоритета задачи с высокой нагрузкой на ЦП, такой как компиляция базы данных, приводит к более быстрому завершению действия, что позволяет вам сосредоточиться на других задачах. Кроме того, некоторые старые программы работают лучше, когда они используют только одно ядро, а не полное количество ядер, предлагаемых вашим процессором. Процесс определения загрузки ЦП зависит от того, изменяете ли вы приоритет или устанавливаете количество ядер.
Настройка использования ядра ЦП
Нажмите одновременно клавиши "Ctrl", "Shift" и "Esc" на клавиатуре, чтобы открыть диспетчер задач.
Перейдите на вкладку "Процессы", затем щелкните правой кнопкой мыши программу, для которой вы хотите изменить использование ядра ЦП, и выберите "Установить привязку" во всплывающем меню.
Установите флажок рядом с "ЦП 0" или "ЦП 1", чтобы назначить этой программе только это ядро ЦП. Если у вас четырехъядерный процессор, есть два дополнительных поля «ЦП»: «ЦП 2» и «ЦП 3». Программе с четырехъядерным процессором можно назначить от одного до трех ядер. Если у вас одноядерный процессор, например более ранняя модель Pentium, вы не можете установить привязку ядер.
Нажмите "ОК", чтобы установить основное сходство. Это необходимо делать каждый раз, когда вы закрываете и снова открываете программу.
Настройка приоритета ЦП
Нажмите одновременно клавиши "Ctrl", "Shift" и "Esc" на клавиатуре, чтобы открыть диспетчер задач.
Перейдите на вкладку "Процессы", щелкните правой кнопкой мыши программу, для которой вы хотите изменить приоритет ЦП.
Наведите курсор на «Установить приоритет» и выберите параметр «Приоритет». Ваши изменения применяются автоматически, как только вы выбираете параметр. Это необходимо делать каждый раз, когда вы закрываете и снова открываете программу.
Гэри Ньюэлл был внештатным сотрудником, разработчиком приложений и тестировщиком программного обеспечения с более чем 20-летним опытом работы в сфере ИТ, работая с Linux, UNIX и Windows.
Крис Селф (Chris Selph) — сертифицированный CompTIA преподаватель технологии и профессиональный преподаватель информационных технологий. Он также работает администратором сети и сервера и выполняет обслуживание и ремонт компьютеров для многочисленных клиентов.
Что нужно знать
- Основные отличия дистрибутива включают поддержку архитектуры, систему инициализации, диспетчер пакетов по умолчанию и пользовательский интерфейс.
- Новым пользователям Linux с современным оборудованием лучше всего начать с Ubuntu Linux, Linux Mint и Elementary OS.
- Для опытных пользователей Linux с высокопроизводительным оборудованием Manjaro Linux и Slackware предлагают больший контроль над операционной системой.
В этой статье объясняется, как выбрать лучший дистрибутив Linux для ваших конкретных потребностей и вариантов использования. Каждый дистрибутив имеет собственную внутреннюю архитектуру с определенным набором инструментов.
Дифференциальные особенности дистрибуции
Хотя все дистрибутивы Linux основаны на ядре Linux, каждый из них предлагает набор основных отличительных критериев, которые их отличают:
Архитектура
Архитектура имеет значение, поскольку не все дистрибутивы Linux поддерживают все возможные конфигурации процессоров в мире. Причина, по которой вы не можете запустить Microsoft Windows на планшете Android, например, заключается в том, что Windows поддерживает только процессоры Intel или AMD для настольных ПК или процессоры ARM для мобильных устройств.
Технически возможно, хотя и непросто, запустить Windows на планшете Android с процессором x86, x86_64 или ARM.
Linux поддерживает широкий спектр архитектур. Если у вас стандартный настольный компьютер или ноутбук, вы, скорее всего, обнаружите, что почти все дистрибутивы хорошо работают на вашей машине. Однако, если вы модернизируете Linux на очень старом компьютере, процессор имеет гораздо большее значение. Например, дистрибутив, предлагающий поддержку только 64-разрядных процессоров, не будет работать на 32-разрядных процессорах.
Наиболее распространенные архитектуры, которые вам необходимо рассмотреть, включают:
- x86 (или i586/i686): 32-разрядный чипсет, совместимый с Intel и AMD.
- x86_64: 64-разрядный чипсет, совместимый с Intel и AMD
- ARM: оптимизированный для мобильных устройств набор микросхем, используемый в планшетах и смартфонах.
- PowerPC: «старый» чипсет для оборудования Apple
Ваш дистрибутив должен быть совместим с вашим чипсетом, но не существует дистрибутива "лучше или хуже", основанного только на чипсете. Это вопрос совместимости «все или ничего».
Инициализировать программное обеспечение
Строго говоря, программа инициализации — это самый первый процесс, который запускается при загрузке компьютера под управлением Linux. Это демон, работающий в течение всего времени безотказной работы системы; это родительский процесс для каждого последующего процесса, который запускается на машине.
Выбор программного обеспечения для инициализации является спорным в том смысле, что разные опытные пользователи выступают за и против SysV по сравнению с systemd. Выбор не тривиален; это программное обеспечение определяет, как система управляет процессами.
- SysV: «традиционная» система инициализации с корнями в Unix SystemV. Он считается стабильным, но, возможно, менее функциональным, чем systemd.
- systemd: более современная, высокоинтегрированная система инициализации.
Другие формы программного обеспечения для инициализации также присутствуют на рынке, но SysV и systemd являются наиболее популярными. Ваш выбор программного обеспечения для инициализации в значительной степени не имеет значения, если вы не являетесь опытным пользователем, который предпочитает одно другому. Большинство современных дистрибутивов полагаются на systemd, поэтому найти SysV и альтернативные inits становится все труднее.
Диспетчер пакетов
Все программное обеспечение Linux поставляется в виде пакета. Различные менеджеры пакетов управляют архивированием и управлением этими пакетами. Большинство пакетов не взаимозаменяемы, хотя такие утилиты, как alien, преобразуют некоторые типы пакетов.
В разных дистрибутивах используются определенные менеджеры пакетов.
- dpkg: управляет специфичными для Debian (.DEB) пакетами, распространенными в дистрибутивах на основе Debian, включая Ubuntu и Linux Mint, с помощью таких инструментов, как APT.
- Диспетчер пакетов RPM: устанавливает пакеты диспетчера пакетов Redhat (.RPM) и управляет ими. Использует такие инструменты, как DNF, yum и zypper.
- flatpak: изолированный/контейнерный формат, кроссплатформенный.
- pacman: распространен в Arch Linux и его производных.
- portage: разработан для Gentoo Linux, а теперь также используется в ChromeOS и некоторых других дистрибутивах.
- Snap: специфичная для Ubuntu форма развертывания контейнерных приложений.
Хотя вы можете выбрать конкретный инструмент для управления пакетами, тип пакета жестко запрограммирован в дистрибутиве. Таким образом, вы никогда не увидите версию Ubuntu, в которой используются RPM-файлы. Различные дистрибутивы содержат разные репозитории для доступного программного обеспечения. Некоторое программное обеспечение, созданное независимыми разработчиками, может появляться только в одном или двух форматах пакетов. Если для вас важен максимальный доступ к программному обеспечению с открытым исходным кодом, вероятно, лучшим выбором будет дистрибутив, использующий файлы DEB или RPM.
Среда рабочего стола
Когда люди думают об основных различиях между дистрибутивами Linux, они обычно думают о среде рабочего стола, но ирония заключается в том, что большинство дистрибутивов поддерживают установку большинства сред рабочего стола.
В «лучших» средах рабочего стола настраиваемость сочетается с относительным потреблением ресурсов самим DE. Совершенно новый компьютер или компьютер с высокими характеристиками может работать с любой средой рабочего стола с плавностью растопленного масла. Но на более низком или более старом оборудовании, особенно в области нетбуков, выбор DE может иметь решающее значение для удобства использования всей системы.
Использование ресурсов
- Обычно используемые DE с большими ресурсами включают KDE и Budgie.
- среднее рабочее окружение хорошо работает на стандартном или низкоуровневом современном оборудовании. В эту категорию попадают Gnome 3, Cinnamon, MATE и Pantheon.
- Облегченная рабочая среда идеально подходит для устаревшего оборудования. Выберите XFCE или LXDE.
Настраиваемость
Новейшие DE, как правило, менее настраиваемые — они имеют особый эстетический дизайн, который не допускает столько изменений, сколько поддерживают старые DE.
Предлагаемые среды разработки с широкими возможностями настройки включают XFCE, LDXE, Cinnamon, MATE и KDE.
К средам с низким уровнем настройки относятся Deepin, Gnome 3 и Pantheon.
Случаи использования
Итак, какой дистрибутив лучше всего подходит для ваших нужд? Это зависит от вашего варианта использования.
Если вы работаете со старым оборудованием, «традиционный» дистрибутив, который использует SysV для инициализации и опирается на 32-разрядное ядро, скорее всего, окажется оптимальным. Соедините его с облегченным DE, таким как XFCE. MX Linux — отличная отправная точка.
Компьютер с высокопроизводительным оборудованием, управляемый увлеченным мастером и любителем Linux, может хорошо работать с Manjaro Linux.
Если вам нравится углубляться во внутренности вашей операционной системы, попробуйте Slackware. Он создается в основном вручную с помощью файлов конфигурации, поэтому у вас есть полный контроль над ним, но вы должны знать или хотеть научиться тому, что делаете.
У вас есть современное оборудование, которое просто работает? Люди, плохо знакомые с Linux, часто переходят на Ubuntu Linux или Linux Mint. Еще более простой и элегантный дистрибутив можно найти в Elementary OS.
Читайте также: