Перейти к содержимому

I o priority что это

  • автор:

Указание повышения приоритета при выполнении запросов ввода-вывода

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

Если драйвер вызывает WdfRequestComplete или WdfRequestCompleteWithInformation вместо WdfRequestCompleteWithPriorityBoost, платформа использует значение повышения приоритета по умолчанию, основанное на типе устройства. В следующей таблице перечислены значения повышения приоритета по умолчанию, которые использует платформа. Константы типа устройства и повышения приоритета определяются в Wdm.h.

Тип устройства Повышение приоритета по умолчанию
FILE_DEVICE_UNDEFINED IO_NO_INCREMENT
FILE_DEVICE_BEEP IO_NO_INCREMENT
FILE_DEVICE_CD_ROM IO_CD_ROM_INCREMENT
FILE_DEVICE_CD_ROM_FILE_SYSTEM IO_CD_ROM_INCREMENT
FILE_DEVICE_CONTROLLER IO_NO_INCREMENT
FILE_DEVICE_DATALINK IO_NO_INCREMENT
FILE_DEVICE_DFS IO_NO_INCREMENT
FILE_DEVICE_DISK IO_DISK_INCREMENT
FILE_DEVICE_DISK_FILE_SYSTEM IO_DISK_INCREMENT
FILE_DEVICE_FILE_SYSTEM IO_NO_INCREMENT
FILE_DEVICE_INPORT_PORT IO_NO_INCREMENT
FILE_DEVICE_KEYBOARD IO_KEYBOARD_INCREMENT
FILE_DEVICE_MAILSLOT IO_MAILSLOT_INCREMENT
FILE_DEVICE_MIDI_IN IO_SOUND_INCREMENT
FILE_DEVICE_MIDI_OUT IO_SOUND_INCREMENT
FILE_DEVICE_MOUSE IO_MOUSE_INCREMENT
FILE_DEVICE_MULTI_UNC_PROVIDER IO_NO_INCREMENT
FILE_DEVICE_NAMED_PIPE IO_NAMED_PIPE_INCREMENT
FILE_DEVICE_NETWORK IO_NETWORK_INCREMENT
FILE_DEVICE_NETWORK_BROWSER IO_NETWORK_INCREMENT
FILE_DEVICE_NETWORK_FILE_SYSTEM IO_NETWORK_INCREMENT
FILE_DEVICE_NULL IO_NO_INCREMENT
FILE_DEVICE_PARALLEL_PORT IO_PARALLEL_INCREMENT
FILE_DEVICE_PHYSICAL_NETCARD IO_NETWORK_INCREMENT
FILE_DEVICE_PRINTER IO_NO_INCREMENT
FILE_DEVICE_SCANNER IO_NO_INCREMENT
FILE_DEVICE_SERIAL_MOUSE_PORT IO_SERIAL_INCREMENT
FILE_DEVICE_SERIAL_PORT IO_SERIAL_INCREMENT
FILE_DEVICE_SCREEN IO_VIDEO_INCREMENT
FILE_DEVICE_SOUND IO_SOUND_INCREMENT
FILE_DEVICE_STREAMS IO_SOUND_INCREMENT
FILE_DEVICE_TAPE IO_NO_INCREMENT
FILE_DEVICE_TAPE_FILE_SYSTEM IO_NO_INCREMENT
FILE_DEVICE_TRANSPORT IO_NO_INCREMENT
FILE_DEVICE_UNKNOWN IO_NO_INCREMENT
FILE_DEVICE_VIDEO IO_VIDEO_INCREMENT
FILE_DEVICE_VIRTUAL_DISK IO_DISK_INCREMENT
FILE_DEVICE_WAVE_IN IO_SOUND_INCREMENT
FILE_DEVICE_WAVE_OUT IO_SOUND_INCREMENT
FILE_DEVICE_8042_PORT IO_KEYBOARD_INCREMENT
FILE_DEVICE_NETWORK_REDIRECTOR IO_NETWORK_INCREMENT
FILE_DEVICE_BATTERY IO_NO_INCREMENT
FILE_DEVICE_BUS_EXTENDER IO_NO_INCREMENT
FILE_DEVICE_MODEM IO_SERIAL_INCREMENT
FILE_DEVICE_VDM IO_NO_INCREMENT
FILE_DEVICE_MASS_STORAGE IO_DISK_INCREMENT
FILE_DEVICE_SMB IO_NETWORK_INCREMENT
FILE_DEVICE_KS IO_SOUND_INCREMENT
FILE_DEVICE_CHANGER IO_NO_INCREMENT
FILE_DEVICE_SMARTCARD IO_NO_INCREMENT
FILE_DEVICE_ACPI IO_NO_INCREMENT
FILE_DEVICE_DVD IO_NO_INCREMENT
FILE_DEVICE_FULLSCREEN_VIDEO IO_VIDEO_INCREMENT
FILE_DEVICE_DFS_FILE_SYSTEM IO_NO_INCREMENT
FILE_DEVICE_DFS_VOLUME IO_NO_INCREMENT
FILE_DEVICE_SERENUM IO_SERIAL_INCREMENT
FILE_DEVICE_TERMSRV IO_NO_INCREMENT
FILE_DEVICE_KSEC IO_NO_INCREMENT
FILE_DEVICE_FIPS IO_NO_INCREMENT
FILE_DEVICE_INFINIBAND IO_NO_INCREMENT

Совместная работа с нами на GitHub

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

Windows driver documentation

Тонкая настройка виртуальных машин

Вы можете провести тонкую настройку параметров виртуальных машин (ВМ). Такая настройка позволит отрегулировать производительность кластера и повысить уровень сетевой безопасности. Параметры, доступные для тонкой настройки, зависят от типа виртуализации в кластере.

Не рекомендуем менять тонкие настройки, если вы полностью не уверены в своих действиях.

Доступные параметры

Кластеры с виртуализацией KVM

  • ресурсы:
    • vCPU — количество процессоров;
    • RAM — объём оперативной памяти, Мбайт;
    • Storage — объём основного диска, Гбайт;

    Чтобы платформа смогла изменить размер диска, в хранилище должно быть свободное место объёмом не меньше, чем размер исходного диска.

    1. Вы можете указать внешнее или внутреннее наименование раздела. Например, раздел /dev/sda2 в CentOS 8 может иметь внутреннее имя /dev/vda2. Указывайте внутреннее наименование, только если этот раздел примонтирован в системе.
    2. Чтобы увеличить диск за счёт создания нового раздела, оставьте параметр пустым. VMmanager добавит к ВМ неразмеченное дисковое пространство. Вы сможете создать в этом пространстве новый раздел средствами ОС.

    ВМ со скоростью трафика выше 1000 Мбит/с может работать не корректно.

    IP-спуфинг — это тип хакерской атаки, при которой для обмана системы безопасности используется чужой IP-адрес. При IP-спуфинге хакеры изменяют адрес отправителя в L3-пакете. Это позволяет скрыть истинный адрес злоумышленника и отправить ответный пакет на нужный адрес. Для защиты ВМ от IP-спуфинга платформа проверяет MAC-адрес источника во всех L2-кадрах, отправляемых с ВМ. Если MAC-адрес источника совпадает с MAC-адресом ВМ, платформа проверяет IP-адрес источника в L3-пакете кадра. Если IP-адрес источника не соответствует IP-адресу ВМ, то L2-кадр отбрасывается и не передаётся дальше.

    • Storage — объём дискового пространства, Гбайт;
    • раздел для увеличения — раздел диска, который будет увеличиваться при изменении параметра Storage. Например, /dev/sda2 или sda2;
    • режим эмуляции CPU — способ определения спецификаций процессора виртуальной машины:
      • По умолчанию — эмулируется виртуальный процессор QEMU;
      • Host-model — эмулируемый процессор будет обладать теми же флагами функций, что и процессор на узле кластера;
      • Host-passthrough — эмулируемый процессор будет в точности соответствовать процессору на узле кластера хост-машины и обладать теми же флагами функций. Такой режим эмуляции позволяет получить лучшую производительность, а также может быть обязательным для некоторых приложений. Миграция такой виртуальной машины возможна только на полностью совпадающий процессор;

      Кластеры с виртуализацией LXD

      • ресурсы:
        • vCPU — количество процессоров;
        • RAM — объём оперативной памяти, Мбайт;
        • Storage — объём дискового пространства, Гбайт;

        Чтобы платформа смогла изменить размер диска, в хранилище должно быть свободное место объёмом не меньше, чем размер исходного диска.

        • «скорость чтения, IOPS» и «скорость чтения, Мбит/с»;
        • «скорость записи, IOPS» и «скорость записи, Мбит/с».

        I o priority что это

        Автор: 19w85
        Дата: 17-06-2011

        Так задается приоритет «Very Low«:

        Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\xyz.exe\PerfOptions] "IoPriority"=dword:00000000

        Так задается приоритет «Low«:

        Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\xyz.exe\PerfOptions] "IoPriority"=dword:00000001

        Так задается приоритет «Normal» (идет по дефолту):

        Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\xyz.exe\PerfOptions] "IoPriority"=dword:00000002

        Вопрос: как через реестр задать для нужного exe-шника хоть какой-нибудь приоритет выше «Normal»? (Выше среднего, высокий и т.п.? Например, программа Process Lasso умеет задавать приоритет ввода/вывода «Высокий», т.е. установка более высокого приоритета всё-таки возможна, но через реестр ни при каких значениях мне это не удалось)

        P.S. Если через реестр задать высокий приоритет всё-таки невозможно, то тогда может быть кто-нибудь подскажет как через командную строку запустить с высоким приоритетом?

        Изменение приоритета процесса

        Утилита nice — программа, предназначенная для запуска процессов с изменённым приоритетом nice. Приоритет nice (целое число) процесса используется планировщиком процессов ядра ОС при распределении процессорного времени между процессами

        Приоритет nice — число, указывающее планировщику процессов ядра ОС приоритет, который пользователь хотел бы назначить процессу.

        Утилита nice, запущенная без аргументов, выводит приоритет nice, унаследованный от родительского процесса. nice принимает аргумент «смещение» в диапазоне от -20 (наивысший приоритет) до +19 (низший приоритет). Если указать смещение и путь к исполняемому файлу, утилита nice получит приоритет своего процесса, изменит его на указанное смещение и использует системный вызов семейства exec() для замещения кода своего процесса кодом из указанного исполняемого файла. Команда nice сделает то же, но сначала выполнит системный вызов семейства fork() для запуска дочернего процесса (англ. sub-shell). Если смещение не указано, будет использовано смещение +10. Привилегированный пользователь (root) может указать отрицательное смещение.

        Приоритет nice и приоритет планировщика процессов ядра ОС — разные числа. Число nice — приоритет, который пользователь хотел бы назначить процессу. Приоритет планировщика — действительный приоритет, назначенный процессу планировщиком. Планировщик может стремиться назначить процессу приоритет, близкий к nice, но это не всегда возможно, так как в системе может выполняться множество процессов с разными приоритетами. Приоритет nice является атрибутом процесса и, как и другие атрибуты, наследуется дочерними процессами. В выводе утилит top, ps, htop и др. приоритет nice называется «NI» — сокращение от «nice», а приоритет планировщика — «PRI» — сокращение от «priority». Обычно, NI = PRI — 20, но это верно не всегда. По умолчанию NI=0, соответственно PRI=20.

        Планировщик процессов ядра ОС Linux поддерживает приоритеты от 0 (реальное время) до 139 включительно. Приоритеты -20…+19 утилиты или команды nice соответствуют приоритетам 100…139 планировщика процессов. Другие приоритеты планировщика процессов можно установить командой chrt из пакета util-linux.

        Посмотреть приоритет процессов можно например с помощью утилиты top, для этого в терминале нужно выполнить:

        Для просмотра приоритета уже запущенного конкретного процесса существует команда:

        ps -o pid,comm,nice -C [name]
        ps -o pid,comm,nice -C top PID COMMAND NI 21244 top 0

        nice

        nice [-n смещение] [--adjustment=смещение] [команда [аргумент…]]

        -n —adjustment=

        Установить приоритет nice, равный сумме текущего приоритета nice и указанного числа «смещение». Если этот аргумент не указан, будет использовано число 10.

        Для примера зададим приоритет 15 при старте процесса top :

        nice -n 15 top

        Чтобы установить значение nice ниже нуля, требуются права суперпользователя. В противном случае будет установлено значение 0. Попробуем задать значение nice -1 без прав root:

        nice -n -1 yes > /dev/null &nice: cannot set niceness: Permission denied

        Поэтому, чтобы задать значение nice меньше 0, необходимо запускать программу как root, или использовать sudo.

        Для того, чтобы изменить приоритет у существующего процесса (т.е. такого процесса, который ранее был уже запущен), необходимо воспользоваться командой:

        renice [значение приоритета] -p [id процесса]

        У запущенной программы с помощью команды renice можно изменить назначенный приоритет. Предположим, что есть работающая программа yes со значением nice 10. Чтобы изменить его значение, можно использовать команду renice со значением nice и PID процесса. Изменим значение nice на 15:

        renice -n 15 -p 21349 21349 (process ID) old priority 0, new priority 15

        Согласно правилам, обычный пользователь может только увеличивать значение nice (уменьшать приоритет) любого процесса. Если попробовать изменить значение nice с 15 до 10, мы получим следующее сообщение об ошибке:

        renice -n 10 -p 21349 renice: failed to set priority for 5645 (process ID): Permission denied

        Также, команда renice позволяет суперпользователю изменять значение nice процессов любого пользователя. Это делается с помощью ключа -u. Следующая команда изменяет значение приоритета всех процессов пользователя на -19:

        renice -n -19 -u lubos 1000 (user ID) old priority 0, new priority -19

        htop

        htop представляет собой продвинутый монитор процессов, аналог top . В отличие от top, htop показывает все процессы в системе. Также показывает время непрерывной работы, использование процессоров и памяти. htop часто применяется в тех случаях, когда информации даваемой утилитой top недостаточно, например при поиске утечек памяти в процессах. htop написан на языке Си и использует для отображения библиотеку Ncurses.

        dnf install htop

        На нижней панели интерфейса отображены основные действия. Переключаться межуд процессами можно кнопками «Вверх» и «Вниз». При нажатии F 7 и F 8 на выбранном процессе изменяется приоритет вниз и вверх соответственно.

        Изменение приоритетов процессов с помощью графических средств

        Изменять приоритеты процессов можно с помощью утилиты Системный монитор.

        Для Cinnamon необходимо установить отдельно:

        dnf install gnome-system-monitor.x86_64

        Перейдите на вкладку Процессы. Выберите процесс, щелкните правой кнопкой мыши по нему и выберите в выпадающем меню пункт Изменить приоритет. Выберите нужный приоритет и выберите его.

        Эта информация оказалась полезной? ДА НЕТ

        Дата последнего изменения: 24.10.2023

        Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *