Диспетчерская таблица

Оценить
(0 голоса)

В Solaris 7, но не в более поздних выпусках, ищите сценарий, называемый /etc/rc2.d/S99tsquantum. Этот сценарий автоматически управляет задачей на платформах Starfire; он представлен также и на других платформах, хотя диспетчерская таблица, которую он использует, /usr/lib/class/TS/TSbigquanta, присутствует только на Starfire.

•             Повышение приоритетов процессов Даже без использования класса RT вполне возможно постоянно гарантировать некоторым процессам более высокий приоритет, чем другим. Метод включает искусственное продвижение приоритета этих процессов, поэтому они всегда выполняются с приоритетом 59 (самый высокий из допустимых), и модифицирование диспетчерской таблицы таким образом, что остальные процессы никогда не сумеют получить приоритет 59. Планирование процессов, которые всегда выполняются с приоритетом 59, будет производиться по методу "карусели", как в классе RT, и они всегда будут получать право первого обращения к доступному ЦП. Тем не менее, в отличие от класса RT демоны ядра никогда не будут блокированы, поскольку пользовательские процессы все еще выполняются в классе TS.

Сценарий Dispatch Mods, встроенный в tar-файл и именуемый dispmod.tar. доступен на Web-сайте книги и предусматривает простой способ выполнения этой процедуры. Он включает сценарий оболочки, который выполняет следующее:

•             Инсталлирует модифицированную диспетчерскую таблицу TS, которая изолирует приоритет 59, и дает ей квант размером 300 (начиная с 20 и выше в системах, отличных от Starfire).

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

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

Несмотря на то, что группа Database Engineering получила на тестах хорошие результаты при использовании повышенных приоритетов процессов вместе со специально модифицируемой диспетчерской таблицей TS, все же будьте внимательны при ее реализации. Вполне возможно, что нестандартные процессы, вообще не выполняющие ввод/вывод и не нуждающиеся в ЦП, действительно могут вызвать блокировку системы, если выполняются с упомянутым повышенным приоритетом и если их, по крайней мере, столько, сколько и центральных процессоров. И хотя процессы ядра не будут затронуты, другие пользовательские процессы никогда не будут планироваться для выполнения, так что даже системный администратор может оказаться заблокированным. Несмотря на всю нежелательность подобного варианта, по имеющемуся у автора опыту такая ситуация иногда происходила. Для производственных пользовательских сред самой безопасной альтернативой является простое включение диспетчерской таблицы Starfire, которая обеспечивает достаточное количество подобных преимуществ без риска.

•             Каким образом может помочь диспетчерская таблица Starfire TS Почему диспетчерская таблица Starfire повышает производительность интенсивно нагруженных серверов баз данных? Эксперименты показывают, что основное преимущество от использования диспетчерской таблицы Starfire для приложений серверов БД заключается в том, что квант времени, доступный для процесса, увеличивается по сравнению со стандартной диспетчерской таблицей Solaris (с 20 мсек до 340 мсек для приоритета 59). Увеличение кванта может заметно сократить переключение контекста. На рисунке 15.6 показан конец стандартной диспетчерской таблицы Solaris.

Квант для стандартной диспетчерской таблицы
Управление рабочими нагрузками
Домены
Наборы процессоров
Ключевое отличие между доменами и процессорными наборами

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


Защитный код
Обновить