Сети NetWare 3.12-4.1.Книга ответов

Использование процессора


Все загруженные модули системы используют процессор в режиме разделения времени с задачами ОС.

Величина кванта времени, отводимого процессу загружаемого модуля в NetWare 3.x задается командой
SET PSEUDO PREEMPTION TIME = 2000 (1000 - 10000 интервалов по 0.84 мкс).
Для проверки новых NLM полезно разрешать сообщения о модулях, не отдававших управление другим процессам более 4 мс, командой
SET DISPLAY RELINQUISH CONTROL ALERTS = ON, по умолчанию OFF, доступной и из STARTUP.NCF.

В NetWare 4.x возможно предотвращение монопольной работы потока путем ограничения количества выполняемых запросов чтения-записи диска за один квант времени.

В NetWare 4.x принудительное переключение потоков управляется командами:
SET GLOBAL PSEUDO PREEMPTION=OFF (ON) - разрешение принудительного переключения потоков после заданного количества операций чтения-записи файла.
SET PSEUDO PREEMPTION COUNT=10 (1-4294967295) - количество операций чтения-записи, после которого производится принудительное переключение потоков (если оно разрешено)

Каждый приходящий к серверу запрос обслуживается сервисным процессом, который принимает его из буфера приема пакетов, передает ядру ОС, и отправляет пакеты с полученным ответом источнику запроса. Число одновременно работающих сервисных процессов зависит от нагрузки на сервер.



Максимальное число сервисных процессов в системе задается командой
SET MAXIMUM SERVICE PROCESSES = 20 (5 - 40), по умолчанию 20. В NetWare 4.x по умолчанию 40, допустимо 100
Время задержки выделения системой нового сервисного процесса задается командой
SET NEW SERVICE PROCESS WAIT TIME = 2.2 (0.3-20 с).

В NetWare 4.x выполняемые задачи имеют различные приоритеты. Высший приоритет (1) имеют прерывания (Interrupt events) - задачи, которые не могут ждать. Они выполняются в моменты переключения потоков - задач, имеющих меньшие приоритеты.
В NetWare 4.x рабочие потоки (Work threads) имеют приоритет 2, просто потоки (Threads) имеют приоритет 3, низкоприоритетные потоки (Low priority threads) - 4.




Некоторые NLM могут блокировать выполнение низкоприоритетных потоков на все время своей работы, тогда можно повышать приоритет необходимых потоков до номального.

SET MAXIMUM INTERRUPT EVENTS=10 (1-100000) - максимальное количество прерываний (задач с высшим приоритетом), выполняемых в процессе переключения потоков
SET WORKER THREAD EXECUTE IN A ROW COUNT=10 (1-20)- количество рабочих потоков (задач со вторым приоритетом), которое может быть запущено до запуска обычного потока (задачи с третьим приоритетом)
SET UPGRADE LOW PRIORITY THREADS=OFF (ON) - разрешение повышения приоритета низкоприоритетных

потоков (задач с четвертым приоритетом) до уровня обычного потока (3)
В пределах одного класса потоков возможно изменение (понижение относительно умолчания) приоритета любого процесса за счет изменения задержки планировщика (Scheduler delay), которая по умолчанию нулевая у всех процессов. Этим можно сдерживать "монопольные наклонности" некоторых модулей.
Изменение задержки планировщика возможно из меню Sheduling Information утилиты MONITOR или консольной командой

LOAD SCHDELAY [proc_name [=n]]

proc_name - имя интересующего процесса (ALL PROCESSES - все процессы), n - его задержка (четное число). Команда, введенная без параметров, выводит список процессов и их задержек.

Вопросы и ответы (глава 1) | Глава 2

| Содержание


  Михаил Гук (Mgook@stu.neva.ru, Сайт автора)

Опубликовано -- 14 октября 1999 г.

 
Содержание раздела