Использование процессора
Все загруженные модули системы используют процессор в режиме разделения времени с задачами ОС.
Величина кванта времени, отводимого процессу загружаемого модуля в 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) |
Изменение задержки планировщика возможно из меню Sheduling Information утилиты MONITOR или консольной командой
LOAD SCHDELAY [proc_name [=n]]
proc_name - имя интересующего процесса (ALL PROCESSES - все процессы), n - его задержка (четное число). Команда, введенная без параметров, выводит список процессов и их задержек.
Вопросы и ответы (глава 1) | Глава 2
| Содержание
Опубликовано -- 14 октября 1999 г.