
    
                             - 2 -
 
                         00152-01 97 12
 
 
 
 
 
 
                            АННОТАЦИЯ
 
 
 
 
 
        Настоящий документ является  справочным  материалом  и
 
   содержит понятия, необходимые  для  поддержания  производи-
 
   тельности системы МОС ВП на постоянно высоком уровне.
 
 
        В документ включены подробные описания процедур, кото-
 
   рые помогут определить источники  изменения  производитель-
 
   ности и помогут устранить их в случае возникновения.
 
 
        Настоящий документ является руководством, адресованным
 
   системным программистам  и  другим  опытным  пользователям,
 
   отвечающим за оптимизацию  производительности  системы  МОС 
 
   ВП, за диагностику возникающих проблем и за принятие  соот-
 
   ветствующих действий по восстановлению производительности.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                             - 3 -
 
                         00152-01 97 12
 
 
 
 
 
 
                           СОДЕРЖАНИЕ
 
 
 
 
 
   1.  ОБЩИЕ СВЕДЕНИЯ                                        9
 
 
   2.  ОБШИЕ ПОЛОЖЕНИЯ ПО УПРАВЛЕНИЮ НАСТРОЙКОЙ И ЗАГРУЗКОЙ 11
 
 
   2.1.    Источники недовольства пользователя              12
 
   2.2.    Исследование результатов настройки               15
 
   2.2.1.    Настройка                                      16
     
   2.2.2.    Необходимость настройки                        18
 
   2.2.3.    Оценка успешности настройки                    20
 
   2.2.4.    Затраты на настройку                           21
 
   2.2.5.    Решение о прекращении настройки                21
 
   2.3.    Загрузка системы                                 22
 
   2.3.1.    Управление загрузкой                           26
 
   2.3.2.    Распределение загрузки                         27
 
   2.3.3.    Совместное использование программ              28
 
 
   3.   СРЕДСТВА УПРАВЛЕНИЯ РЕСУРСАМИ В МОС ВП              29
 
 
   3.1.    Сведения по управлению памятью в МОС ВП          29
 
   3.2.    Механизмы управления памятью                     33
 
   3.2.1.    Автоматическая   подстройка    рабочего
 
             набора в МОС ВП                                34
 
   3.2.1.1.  Размеры рабочих наборов                        42
 
   3.2.1.2.  Исходные   границы   и   характеристики
 
             рабочего набора                                44
 
   3.2.1.3.  Корректировка размеров рабочего набора         47
 
   3.2.1.4.  Корректировка параметров автоматической
 
 
                               - 4 -
 
                         00152-01 97 12
 
 
             подстройки рабочего набора                     47
 
   3.2.1.5.  Управление    производительностью     и
 
             автоматическая   подстройка    рабочего
 
             набора                                         49
 
   3.2.2.    Подстройка планировщика памяти МОС ВП          50
 
   3.2.3.    Разделение памяти в МОС ВП                     55
 
   3.2.4.    Планирование (диспетчеризация) в МОС ВП        62
 
 
   4.  ДИАГНОСТИКА ОГРАНИЧЕНИЙ ПО РЕСУРСАМ                  66
 
 
   4.1.    Диагностика                                      66
 
   4.2.    Выделение ограничений по памяти                  73
 
   4.2.1.    Анализ признака чрезмерного страничного
 
             отказа                                         74
 
   4.2.1.1.  Анализ  чрезмерного  числа  активизаций
 
             образов                                        77
 
   4.2.1.2.  Анализ   сравнительных    характеристик
 
             аппаратных и программных отказов               78
 
   4.2.1.3.  Мал размер рабочего набора                     81
 
   4.2.1.4.  Анализ параметров WSDEFAULT, WSQUOTA  и
 
             WSEXTENT                                       86
 
   4.2.1.5.  Блокировка  автоматической   подстройки
 
             рабочего набора                                88
 
   4.2.1.6.  Эффективность автоматической подстройки
 
             рабочего набора                                89
 
   4.2.1.7.  Подстройка планировщика памяти                 92
 
   4.2.2.    Анализ признака обмена рабочих наборов         94
 
   4.2.3.    Обмен рабочих наборов                          95
 
   4.2.4.    Причины  расхода  недопустимых  об'емов
 
             памяти                                        102
 
   4.2.5.    Анализ     признака      ограниченности
 
 
                             - 5 -
 
                         00152-01 97 12
 
 
             свободной памяти                              111
 
   4.3.    Выделение ограничений по вводу-выводу           113
 
   4.3.1.    Прямой ввод-вывод                             114
   
   4.3.2.    Определение скоростей обмена                  115
 
   4.3.2.1.  Скорость ввода-вывода ниже номинальной        117
 
   4.3.2.2.  Высокая частота ввода-вывода                  119
 
   4.3.2.3.  Страничный обмен при работе с диском          122
 
   4.3.3.    Потребности в вводе-выводе                    123
 
   4.3.4.    Буферизованный ввод-вывод                     124
 
   4.4.    Выделение ограничений  по  центральному
 
           процессору                                      129
 
   4.4.1.    Блокировка процессов                          130
 
   4.4.2.    Разделение времени между процессами           133
 
   4.4.3.    Работа со стеком прерывания                   133
 
   4.4.4.    Загрузка операционной системы                 137
 
   4.4.5.    Использование системы СУД-32                  138
 
   4.4.6.    Работа центрального процессора с полной
 
             загрузкой                                     138
 
 
   5.  КОМПЕНСАЦИЯ ОГРАНИЧЕНИЙ ПО РЕСУРСАМ                 139
 
 
   5.1.    Изменение параметров связи                      139
 
   5.2.    Компенсация    работы    в     условиях
 
           ограничений по памяти                           142
 
   5.2.1.    Сокращение    количества    активизаций
 
             образов                                       142
 
   5.2.2.    Увеличение      размера      страничной
 
             кэш-памяти                                    143
 
   5.2.3.    Уменьшение      размера      страничной
 
             кэщ-памяти                                    144
 
   5.2.4.    Подбор  характеристик  рабочего  набора
 
 
                             - 6 -
 
                         00152-01 97 12
 
 
             для квоты и экстента                          144
 
   5.2.4.1.  Установка значений для вспомогательного
 
             управляющего процесса                         145
 
   5.2.4.2.  Установка значений для прочих процессов       146
 
   5.2.4.3.  Установка  значения  для  отсоединенных
 
             процессов или подпроцессов                    148
 
   5.2.4.4.  Установка    значения    для    заданий
 
             пакетного режима                              149
 
   5.2.5.    Проведение настройки  для  эффективного
 
             заимствования                                 150
 
   5.2.6.    Настройка    средств     автоматической
 
             подстройки рабочих наборов                    151
 
   5.2.7.    Блокировка принудительного уменьшения         152
 
   5.2.8.    Настройка принудительного уменьшения          153
 
   5.2.9.    Возобновление           принудительного
 
             уменьшения                                    154
 
   5.2.10.   Деблокировка автоматической  подстройки
 
             рабочих наборов                               154
 
   5.2.11.   Регулировка   подстройки   планировщика
 
             памяти                                        154
 
   5.2.12.   Преобразование      системы,      редко
 
             производящей обмен рабочих наборов            156
 
   5.2.13.   Подстройка BALSETCNT                          156
 
   5.2.14.   Уменьшение страничной кэш-памяти              158
 
   5.2.15.   Сокращение вычислительного процесса           158
 
   5.2.16.   Приостановка вычислительного процесса         159
 
   5.2.17.   Контроль роста вычислительных процессов       159
 
   5.2.18.   Деблокировка обмена рабочих наборов для
 
             дискового вспомогательного управляющего
 
             процесса                                      160
 
 
                             - 7 -
 
                         00152-01 97 12
 
 
   5.2.19.   Деблокировка обмена рабочих наборов для
 
             других процессов                              160
 
   5.2.20.   Сокращение   количества    параллельных
 
             процессов                                     161
 
   5.2.21.   Средства выделения рабочих наборов  при
 
             скудных ресурсах памяти                       161
 
   5.2.22.   Увеличение об'ема памяти                      162
 
   5.2.23.   Частота загрузки рабочих наборов              162
 
   5.2.24.   Страничный обмен для сокращения  обмена
 
             рабочих наборов                               162
 
   5.2.25.   Число файлов страничного обмена               163
 
   5.2.26.   Уменьшение потребности либо  увеличение
 
             памяти                                        164
 
   5.3.    Компенсация    работы    в     условиях
 
           ограничений по вводу-выводу                     165
 
   5.3.1.    Ошибки  вспомогательного   управляющего
 
             процесса                                      165
 
   5.3.1.1.  Ошибки устройства, контроллера или шины       167
 
   5.3.1.2.  Увеличение           производительности
 
             аппаратных средств                            168
 
   5.3.2.    Улучшение     режима      использования
 
             кэш-памяти средствами СУД-32                  170
 
   5.3.3.    Подстройка     кэш-памяти      файловой
 
             структуры                                     170
 
   5.3.4.    Уменьшение  количества  прерываний  при
 
             вводе-выводе с терминала                      171
 
   5.4.    Компенсация в условиях  ограничений  на
 
           использование центрального процессора           174
 
   5.4.1.    Регулирование приоритетов                     174
 
   5.4.2.    Увеличение QUANTUM                            176
 
 
                             - 8 -
 
                         00152-01 97 12
 
 
   ПЕРЕЧЕНЬ ССЫЛОЧНЫХ ДОКУМЕНТОВ                           177
 
                                                           
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                             - 9 -
 
                         00152-01 97 12
 
 
                       1. ОБЩИЕ СВЕДЕНИЯ
 
 
 
 
        В  настоящем  документе  описываются  способы  анализа
 
   производительности системы и выделения процедур  достижения
 
   оптимальной производительности конфигураций системы МОС ВП.
 
   Обсуждение  повышения  производительности  и   рассмотрение
 
   необходимых процедур охватывают многогранные вопросы:
 
 
          - понимание загрузки и производительности системы;
 
 
          - ознакомление со средствами изучения производитель-
 
            ности системы;
 
 
          - использование средств  системы,  которые  помогают
 
            уравновешивать загрузку и автоматически  подстраи-
 
            вать систему для более удачного  использования  ее
 
            ресурсов;
 
 
          - оказание помощи в освоении той методики программи-
 
            рования, которая приводит к  наилучшей  производи-
 
            тельности системы;
 
 
          - реагирование на претензии пользователей в связи со
 
            снижением производительности системы;
 
 
          - применение программных  средств  изменения  работы
 
            системы в виде "настроек";
 
 
          - результаты настройки системы, оценка ее успешности
 
            и время ее прекращения.
 
 
        В документ включены подробные описания процедур, кото-
 
   рые помогут определить источники  изменения  производитель-
 
 
 
                            - 10 -
 
                         00152-01 97 12
 
 
   ности и помогут устранить их в случае  возникновения.  Опи-
 
   санные проблемы могут  явиться  следствием  ограничений  по
 
   памяти, ограничений по вводу-выводу, ограничений по исполь-
 
   зованию центрального процессора, ошибки, допущенной челове-
 
   ком, или комбинацией вышеуказанных причин.
 
 
        Процедуры  представляют  последовательности   тестовых
 
   проверок, которые можно  выполнить  для  оценки  конкретной
 
   ситуации и порождения данных, на  основании  которых  можно
 
   будет сделать вывод относительно причины наблюдаемой работы
 
   системы.  Проверки  используют  определенные  средства  или
 
   методику системы МОС ВП, а сопровождающий их текст  показы-
 
   вает, как оценить результаты проверки. Иногда и исследова-
 
   ние приводит к заключению, что полезно было  бы  подстроить
 
   ряд параметров системы и/или конкретные значения  пользова-
 
   теля. Процесс использования  программного  обеспечения  для
 
   внесения таких изменений называется настройкой системы.
 
 
        В результате исследования обнаруживается  ситуация,  в
 
   которой необходимо изменить параметры. Такие изменения опи-
 
   сываются подробно, и приводятся пояснения,  указывающие  на
 
   взаимосвязь определенных групп значений и параметров систе-
 
   мы. Если же настройка системы не  даст  нужного  результата
 
   или является не допустимой, в документе описываются  другие
 
   варианты оптимизации работы системы.
 
 
        Последовательные  текстовые  описания   подытоживаются
 
   рисунками, которые служат полезным справочным пособием  для
 
   исследований производительности системы в дальнейшем.
 
 
 
 
 
 
 
                            - 11 -
 
                         00152-01 97 12
 
 
    2. ОБШИЕ ПОЛОЖЕНИЯ ПО УПРАВЛЕНИЮ НАСТРОЙКОЙ И ЗАГРУЗКОЙ
 
 
 
 
        Настройка системы - процесс, для  выполнения  которого
 
   требуется как глубокое знакомство с загрузкой системы,  так
 
   и понимание механизма управления ресурсами системы МОС  ВП.
 
   Попытка настроить систему без должного уровня знаний  может
 
   весьма существенно снизить, а  не  повысить  производитель-
 
   ность системы.
 
 
        При исследовании причины явного уменьшения  производи-
 
   тельности необходимо знать, что настройка системы - послед-
 
   нее из возможных средств повышения производительности  сис-
 
   темы.
 
 
        До начала исследования причины  уменьшения  производи-
 
   тельности, следует установить реальные показатели  произво-
 
   дительности системы в следующих областях:
 
 
          - интерактивная и пакетная обработка;
 
 
          - время реакции при интерактивной работе;
 
 
          - время передачи  данных  задания  пакетного  режима
 
            обработки.
 
 
        Для  принятия  решения  относительно  целесообразности
 
   выполнения операции настройки, необходимо выяснить  следую-
 
   щее:
 
 
          - основные направления оценки претензии пользователя
 
            в связи с производительностью системы;
 
 
          - определение настройки и схемы стратегии настройки;
 
 
 
                            - 12 -
 
                         00152-01 97 12
 
 
          - обзор положений по управлению загрузкой системы.
 
 
 
        2.1. Источники недовольства пользователя
 
 
 
        Обычно исследование производительности  системы  начи-
 
   нается при замедлении работы системы (например,  увеличении
 
   времени ответа при интерактивной работе). Возможны  следую-
 
   щие действия:
 
 
        1) наблюдать за работой системы, не  принимая  никаких
 
   мер для повышения производительности;
 
 
        2) без наблюдения за работой  системы  принимать  меры
 
   для устранения причин замедленной работы.
 
 
        Для выяснения причин замедленной работы системы  необ-
 
   ходимы некоторые основные характеристики:
 
 
          - количество пользователей на системе в тот  момент,
 
            когда поступила жалоба;
 
 
          - время ответов (реакций);
 
 
          - очевидная приостановка (подвеска) заданий и невоз-
 
            можность завершить работу.
 
 
        По получении данной информации следует ее  сопоставить
 
   с возможностями данной системы, производя анализ по  шагам,
 
   приведенным на рис.1. В данном рисунке, как и во всех  пос-
 
   ледующих рисунках, аналогичных данному, процедура начинает-
 
   ся с пронумерованного узла, проходит через узлы, в  которых
 
   задаются вопросы, и  заканчивается  в  одном  из  следующих
 
   узлов:
 
 
 
                            - 13 -
 
                         00152-01 97 12
 
 
          - пронумерованным узлом, который совпадает  с  узлом
 
            продолжения на другом рисунке, следующем  за  дан-
 
            ным;
 
 
          - конечным узлом выводов, у которого нет номера.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                            - 14 -
 
                         00152-01 97 12
 
 
        Проверка справедливости жалобы на производительность
 
 
 
 
                                                 1
                        ----------------------------
                        !  предварительная оценка  !
                        !        жалобы            !
                        ----------------------------
                                      !
                                      !
                                      *
                                     * *
                        да          *   *       !
                    ---------------*  ?  *  ----!жалоба
                    !               *   *       !справедлива?
                    !                * *        !
                    !                 *
                    V         2       !
            ---------------------     !нет
            ! начало  предвари- !     !
            ! тельного исследова!     !
            !      ния          !     !
            ---------------------     *
                                     * *
                                    *   *        !
                     --------------*  ?  *   ----!неверный или
                     !              *   *        !ошибочный
                     !               * *         !отчет?
                     !                *
                     V  да            !
          ----------------------      !нет
          ! закончить          !      !
          ----------------------      *
                                     * *
                        да          *   *       !
                     --------------*  ?  *  ----!ожидание
                     !              *   *       !не соответ-
                     !               * *        !ствует
                     !                *         !предположению
                     !                !         !производи-
                     V                !         !тельности?
           ----------------------     !         !
           !    начинающие      !     !
           !    пользователи    !     !
           ----------------------     !
                                      !    нет
                             ----------------------
                             !требуется осмыслить !
                             !    жалобу          !
                             ----------------------
 
 
 
                             Рис. 1     
 
 
 
 
 
                            - 15 -
 
                         00152-01 97 12
 
 
        При исследовании жалоб по производительности  возможны
 
   следующие случаи:
 
 
        1) проблемы, возникающие в аппаратных средствах.  Так,
 
   например, если устройство  находится  в  режиме  "офф-лайн"
 
   (автономный режим) или работает  не  устойчиво,  производи-
 
   тельность может падать. Требуется проверить журнал операто-
 
   ра и журнал регистрации ошибок, в которых отмечены проблемы
 
   для конкретных устройств. Описание журнала оператора и жур-
 
   нала регистрации ошибок приведено в документе [2];
 
 
        2) переход процесса в состояние MWAIT из-за того,  что
 
   некоторый ресурс, например, файл обмена страниц или  почто-
 
   вый ящик, не доступен. Следует выдать  команду  диалогового
 
   языка команд MONITOR STATES или SHOW SYSTEM  и  производить
 
   поиск процессов, которые находятся в состоянии MWAIT.  Про-
 
   цессы, находящиеся в состоянии MWAIT, блокируются либо ожи-
 
   данием различных ресурсов, либо семафором взаимного  исклю-
 
   чения (выводы, порождаемые командами MONITOR STATES и  SHOW
 
   SYSTEM, указывают причину состояния MWAIT). Если  состояние
 
   MWAIT сохраняется после того, как емкость ресурса (произво-
 
   дительность) увеличена, необходимо проверить,  не  допущена
 
   ли ошибка при разработке программы;
 
 
        3) нереальные предполагаемые ситуации.
 
 
 
        2.2. Исследование результатов настройки
 
 
 
        После установки, что существует устойчивая проблема  с
 
   производительностью, необходимо включиться в процесс иссле-
 
   дования и определения причины  и  возможных  корректирующих
 
 
 
                            - 16 -
 
                         00152-01 97 12
 
 
   действий. Процесс обычно становится более  легким  по  мере
 
   приобретения опыта в эксплуатации системы и в ходе ее  нор-
 
   мальной работы. Существует целый  ряд  программных  средств
 
   (например, обслуживающие программы контроля рабочих  харак-
 
   теристик системы и обработки учетной  информации),  которые
 
   могут оказать помощь при оценке производительностью  систе-
 
   мы. По мере приобретения опыта использования таких  средств
 
   возможно более быстро установить причину. Проблемы, предпо-
 
   ложительно связанные  или  влияющие  на  производительность
 
   системы, являются следствием плохой работы,  недостаточного
 
   понимания собственно загрузки системы и ее рабочих  версий,
 
   отсутствия ресурсов, плохого алгоритма прикладной  програм-
 
   мы, человеческой ошибки или других обстоятельств.
 
 
 
        2.2.1. Настройка
 
 
 
        Настройка - это процесс изменения различных  системных
 
   значений (параметров) с целью повышения производительности.
 
   Цель любой операции настройки состоит  в  достижении  опти-
 
   мальной средней производительности, которую  можно  обеспе-
 
   чить на любой данной  конфигурации  в  конкретных  условиях
 
   рабочей среды. Настройка не включает сбор и установку (мон-
 
   таж) дополнительной памяти или устройств,  хотя  во  многих
 
   случаях такие дополнения (если они сделаны в  соответствую-
 
   щее время) могут существенно улучшить работу системы и уве-
 
   личить ее производительность.
 
 
        Настройку можно производить только средней  производи-
 
   тельности, то есть производительности, измеряемой в течение
 
   некоторого промежутка времени. На большинстве  систем  заг-
 
 
 
                            - 17 -
 
                         00152-01 97 12
 
 
   рузка постоянно изменяется. То, что гарантирует оптимальную
 
   производительность в один момент времени, может  не  давать
 
   оптимальной производительности при изменении загрузки спус-
 
   тя небольшой промежуток времени. Необходимо подобрать такие
 
   значения параметров, при которых в  среднем  обеспечивается
 
   наилучшая общая производительность.
 
 
        Настройкой нельзя  устранить  все  причины  уменьшения
 
   производительности. С ее помощью нельзя  исправить  систему
 
   при следующих источниках изменения производительности:
 
 
          - неверная работа;
 
 
          - не предполагаемые изменения производительности;
 
 
          - недостаточно  памяти  для  прикладной  задачи  при
 
            попытке ее решить;
 
 
          - несоответствие  конфигурации  аппаратных   средств
 
            загрузке системы,  например,  мало  шин  для  уст-
 
            ройств, мало дисков и т.д.;
 
 
          - неверный выбор устройств для данной загрузки  сис-
 
            темы, например, использование магнитных лент в тех
 
            ситуациях,  когда  более  предпочтительным   будет
 
            использование дисков, выбор дисков с недостаточной
 
            скоростью обмена или  недостаточной  емкости  либо
 
            установка устройства МПД_А в  тех  случаях,  когда
 
            более выгодно использовать МКС;
 
 
          - человеческие ошибки, например,  неверный  алгоритм
 
            прикладной задачи или разрешение  одному  процессу
 
            захватить все возможные ресурсы системы.
 
 
 
                            - 18 -
 
                         00152-01 97 12
 
 
        Если требуется произвести настройку, выбирается  малое
 
   число параметров, значения которых будут изменяться, причем
 
   такой выбор основывается на тщательном анализе  наблюдаемой
 
   работы системы. Такими значениями обычно являются либо сис-
 
   темные параметры в соответствии с  описанными  в  документе
 
   [9], посвященном обслуживающей программе генерации  системы
 
   (SYSGEN), либо  записи  в  файле  авторизации  пользователя
 
   (UAF), оказывающие влияние на работу конкретных пользовате-
 
   лей . Описание файла авторизации приведено в документе [2].
 
   Обычно изменение системных параметров выполняется с помощью
 
   командной процедуры AUTOGEN,  описанной  в  документе  [2].
 
   Одной из характеристик особенностей  AUTOGEN  является  то,
 
   что данная процедура  выполняет  автоматическую  подстройку
 
   взаимосвязанных параметров. Для управления значений из фай-
 
   ла авторизации пользователя следует  использовать  обслужи-
 
   вающую программу AUTHORIZE, описание  которой  приведено  в
 
   документе [6].
 
 
        В разделе 5  настоящего  документа  показывается,  как
 
   выделить те параметры, которые наиболее вероятно приведут к
 
   оптимальному изменению. Здесь же приводятся некоторые прие-
 
   мы выбора новых значений.
 
 
 
        2.2.2. Необходимость настройки
 
 
 
        Некоторые системные программисты считают, что настрой-
 
   ку на системе МОС ВП приходится применять редко. Для  этого
 
   имеется ряд причин:
 
 
        1)  система  МОС  ВП  содержит  процедуру  AUTOGEN,  с
 
   помощью которой  устанавливаются  начальные  значения  всех
 
 
                            - 19 -
 
                         00152-01 97 12
 
 
   системных параметров, зависящих от конфигурации так,  чтобы
 
   они соответствовали конкретной конфигурации системы;
 
 
        2) имеется ряд внутренних характеристик системы, кото-
 
   рые в ограниченных пределах позволяют  системе  динамически
 
   настраиваться в процессе работы, т.е. система обнаруживает,
 
   что требуется произвести подстройку ряда  размеров,  напри-
 
   мер, динамический пул без  страничной  организации,  размер
 
   рабочего набора и количество страниц в списке  свободных  и
 
   модифицированных страниц. Система выполняет  грубую  подст-
 
   ройку таких областей  автоматически.  Такие  области  могут
 
   динамически, по мере необходимости,  расти  (увеличиваться)
 
   при стандартной работе. Более подробно  некоторые  из  этих
 
   средств автоматической настройки системы МОС ВП представле-
 
   ны в подразделе 3.2.
 
 
        Как показывает опыт, наиболее общей причиной  "разоча-
 
   рования" в производительности  системы  в  действительности
 
   оказывается недостаточная емкость аппаратных средств  (либо
 
   скорость обмена или информационная производительность). Как
 
   только потребность в ресурсах системы действительно  превы-
 
   шает ее емкость, настройка не приведет ни к  каким  улучше-
 
   ниям, потому, что настройка -  это  способ  нахождения  или
 
   "жонглирования" существующими ресурсами. Настройкой  нельзя
 
   добавить ресурсов. В  лучшем  случае  с  ее  помощью  можно
 
   добиться улучшения использования существующих ресурсов.
 
 
        Настройка требуется в двух конкретных ситуациях:
 
 
        1) если система была настроена на наибольшее использо-
 
   вание ресурсов, а  затем  появился  новый  ресурс,  следует
 
   спланировать перенастройку  системы  так,  чтобы  последняя
 
 
                            - 20 -
 
                         00152-01 97 12
 
 
   соответствовала новой конфигураций;
 
 
        2) если предвидится значительное изменение загрузки на
 
   ранее настроенной системе,  следует  ожидать  перенастройки
 
   системы на новую загрузку.
 
 
 
        2.2.3. Оценка успешности настройки
 
 
 
        Когда производится настройка системы, необходимо спла-
 
   нировать свое время так, чтобы провести какое-то  время  на
 
   системе, непрерывно наблюдая за  ней  после  настройки  для
 
   того, чтобы убедиться в достижении желаемых результатов и в
 
   отсутствии непредвиденных или нежелательных ситуаций. Влия-
 
   ние настройки можно непрерывно контролировать как с помощью
 
   обслуживающей  программы  MONITOR,  описанной  в  документе
 
   [10], так и с помощью различных форм команды SHOW  диалого-
 
   вого командного языка, описанной в документе [7].
 
 
        Имеется ряд способов проверки успешности попытки наст-
 
   ройки, которыми можно воспользоваться на выбор:
 
 
        1) если на вычислительной установке  имеются  средства
 
   создания воспроизводимых загрузок системы, например, эмуля-
 
   тор удаленного терминала, необходимо  произвести  измерения
 
   до того, как внесли настроечные изменения, тогда можно сно-
 
   ва прогнать программное  обеспечение  (то  же)  и  сравнить
 
   результаты измерений;
 
 
        2) если таких  средств  нет,  следует  использовать  в
 
   работе некоторые программы, результаты которых  не  измене-
 
   няются и могут быть воспроизведены, причем их следует  про-
 
   пустить в такое же время с обычной загрузкой системы.  Если
 
 
                            - 21 -
 
                         00152-01 97 12
 
 
   пропускаются программы и измеряется время их работы пример-
 
   но в идентичных условиях загрузки системы  до  и  после  ее
 
   настройки, то получаются данные для сравнения или сопостав-
 
   ления.
 
 
        Измерения следует производить при весьма близких усло-
 
   виях загрузки до и после настройки. Проверка в одиночку  не
 
   даст убедительного доказательства того, что настройка прош-
 
   ла успешно. Всегда существует вероятность того, что  произ-
 
   водимые подстройки могут оказаться благоприятными для  того
 
   образа, измерение производительности которого производится,
 
   и вредными для других  образов.  Поэтому  во  всех  случаях
 
   необходимо продолжить тщательно следить за работой  системы
 
   в течение некоторого  времени  после  выполнения  некоторых
 
   изменений.
 
 
 
        2.2.4. Затраты на настройку
 
 
 
        Настройка может быть дорогостоящим  мероприятием.  При
 
   соответствующем исполнении она включает  тщательное,  зани-
 
   мающее значительное  время  изучение  системы,  выполняемое
 
   высококвалифицированным персоналом. Для нее может  потребо-
 
   ваться провести сбор и анализ  статистических  данных,  что
 
   при выполнении в течение длительных промежутков  времени  с
 
   помощью системных средств на системе потребует  использова-
 
   ния системных, а также человеческих ресурсов.
 
 
 
        2.2.5. Решение о прекращении настройки
 
 
 
        При выполнении настройки обнаруживается такой  момент,
 
 
 
                            - 22 -
 
                         00152-01 97 12
 
 
   когда уменьшается  эффект  от  выполняемой  операции,  т.е.
 
   Обнаруживается, что после достижения  определенного  уровня
 
   улучшения производительности можно потратить много времени,
 
   производя настройку далее достигнутой  ситуации  и  получая
 
   при этом незначительные дополнительные улучшения по сравне-
 
   нию с первоначальным улучшением.
 
 
        Зная об  этом  обстоятельстве,  необходимо  прекратить
 
   настройку. В качестве рекомендации используется следующее:
 
 
        1) если  после  ряда  подстроек  наблюдается  заметное
 
   улучшение, делается  подстройка  параметров  или  ресурсов.
 
   Если при этом наблюдается улучшение примерно еще  наполови-
 
   ну,  а  затем  при  последующих  одной  или  двух  попытках
 
   подстройки- незначительное  улучшение,  следует  прекратить
 
   дальнейшую подстройку и попытаться оценить ситуацию.  Можно
 
   считать, что сделано все возможное, и система  находится  в
 
   нужном состоянии;
 
 
        2) если пользователя  не  удовлетворяет  окончательная
 
   производительность, следует тщательно обосновать  необходи-
 
   мость увеличения емкости устройств  (ресурсов)  системы  за
 
   счет добавления аппаратных средств. Из  аппаратных  средств
 
   достаточно воспользоваться  дополнительным  об'емом  памяти
 
   для разрешения возникшей проблемы. В то же время, в некото-
 
   рых ситуациях оправдано  приобретение  дополнительной  шины
 
   или дополнительных дисков.
 
 
 
        2.3. Загрузка системы
 
 
 
        Одно из наиболее важных качеств, необходимых системно-
 
 
 
                            - 23 -
 
                         00152-01 97 12
 
 
   му администратору при оценке производительности,- это пони-
 
   мание , что такое загрузка, и как работает  рассматриваемая
 
   система. Системный администратор должен  понимать  загрузку
 
   системы в таком об'еме, чтобы он был в состоянии распознать
 
   нормальную и ненормальную работу  системы,  предсказать,  к
 
   чему приведут  изменения  в  прикладных  задачах,  работах,
 
   выполняемых системой, а также представлять стандартные ско-
 
   рости  обмена.  Квалифицированный  системный  администратор
 
   должен отвечать на следующие вопросы:
 
 
          - каково обычное число пользователей  на  системе  в
 
            любое время дня;
 
 
          - каково стандартное время  работы  различных  задач
 
            при таком числе пользователей в любой час их рабо-
 
            ты;
 
 
          - какие часы работы соответствуют найбольшей загруз-
 
            ке системы, если вообще таковы сушествуют на  сис-
 
            теме;
 
 
          - какие работы (задания) стандартно  выполняются  на
 
            системе и в какое время дня;
 
 
          - какие из наиболее часто выполняемых  работ  (зада-
 
            ний) интенсивно используют центральный  процессор,
 
            оперативную память или диск;
 
 
          - в каких прикладных задачах используется  активиза-
 
            ция наибольшего числа образов;
 
 
          - какие части программного обеспечения системы  были
 
            изменены или написаны пользователями, если  вообще
 
 
 
                            - 24 -
 
                         00152-01 97 12
 
 
            таковые  существуют,  например,  драйверы  внешних
 
            устройств;
 
 
          - существуют ли в системе известные "слабые"  места,
 
            может быть, имеются на этот счет какие-либо  пред-
 
            положения.
 
 
        Системный администратор должен знать ответы на  данные
 
   вопросы для того, чтобы быть в состоянии  сопоставить  раз-
 
   личные характеристики производительности.
 
 
        Системному администратору следует посвятить  достаточ-
 
   ный отрезок времени наблюдению за работой системы с помощью
 
   следующих средств:
 
 
        1) обслуживающей программы контроля  рабочих  характе-
 
   ристик системы;
 
 
        2) обслуживающей программы обработки учетной  информа-
 
   ции;
 
 
        3) команды SHOW (доступной из  диалогового  командного
 
   языка).
 
 
        С течением времени неоходимо выяснить обычную скорость
 
   страничного отказа на системе, стандартный квант  использо-
 
   вания центрального процессора, обычные об'емы использования
 
   памяти, стандартные режимы работы системы и так далее. Тре-
 
   буется  разобраться,  как  влияют  определенные  работы  на
 
   производительность системы.
 
 
        Пополнить свои знания по работе  с  системой  возможно
 
   регулярно пользуясь обслуживающими программами для сбора  и
 
   анализа ключевых данных по системе. Собирая такую  информа-
 
 
                            - 25 -
 
                         00152-01 97 12
 
 
   цию, можно наблюдать за всеми тенденциями в работе системы.
 
   Таким образом легко можно предсказывать те  моменты,  когда
 
   система достигнет своих предельных возможностей.
 
 
        Важным вопросом при работе с обслуживающей  программой
 
   MONITOR является  выбор  подходящего  временного  интервала
 
   между моментами сбора  информаций.  Требуется  руководство-
 
   ваться следующими соображениями:
 
 
        1) необходимо  избегать  выбирать  величину  интервала
 
   настолько малой, что потребуется лишняя дисковая память для
 
   хранения информации;
 
 
        2) не следует этот интервал  делать  слишком  большим,
 
   так как при этом можно пропустить важные  события,  которые
 
   произойдут в промежутке между моментами сбора информации.
 
 
        Требуется особо тщательно подходить к вопросу  исполь-
 
   зования учетной информации на уровне образов (ведение учета
 
   на  уровне  образов  деблокируется  с  помощью  команд  SET
 
   ACCOUTING/ENABLE=IMAGE диалогового  командного  языка.  Для
 
   блокировки ведения учета на уровне образов следует  исполь-
 
   зовать команду SET ACCOUTING/DISABLE=IMAGE).  Как  правило,
 
   учет на уровне образов следует приводить в действие  только
 
   тогда, когда в  действительности  планируется  обрабатывать
 
   информацию, собираемую в файле  ACCOUTING.DAT.  Как  только
 
   собрано достаточно информации для поставленной  цели,  надо
 
   заблокировать учет на уровне образов. Информация об  актив-
 
   ности образов может оказаться весьма полезной  при  анализе
 
   производительности, однако, она представляет  собой  беспо-
 
   лезную трату времени обработки и дисковой памяти, если  она
 
   просто собирается и никогда не используется.
 
 
                            - 26 -
 
                         00152-01 97 12
 
 
        2.3.1. Управление загрузкой
 
 
 
        Производительность   системы   прямо   пропорциональна
 
   эффективности  управления  загрузкой.  Следует   выработать
 
   методику повышения производительности для  данной  основной
 
   задачи. Для выполнения настройки системы, необходимо  отве-
 
   тить на следующие вопросы:
 
 
          - существует ли такое время, когда загрузка  системы
 
            оказывается "пиковой", то есть когда заметно тяже-
 
            лее работать (медленнее), чем в другое время?
 
 
          - существует ли какой-либо способ лучше распределить
 
            загрузку системы?
 
 
          - может быть какие-то из заданий быстрее или удобнее
 
            выполнять в виде заданий пакетного режима обработ-
 
            ки (предпочительно их выполнять в часы с непиковой
 
            загрузкой);
 
 
          - насколько плотно заняты пользователями основные  и
 
            вспомогательные часы работы? необходимо запланиро-
 
            вать пересмотр этого распределения  всегда,  когда
 
            добавляются  либо  исключаются  пользователи   или
 
            прикладные задачи, чтобы убедиться  в  обеспечении
 
            необходимого баланса;
 
 
          - используется ли в максимальном об'еме  возможность
 
            разделения использования программ, которая предос-
 
            тавляется системой МОС ВП? если этого нет, то, как
 
            окажется, распределяемое (совместное)  использова-
 
            ние программ  -  это  отличное  средство  экономии
 
 
 
                            - 27 -
 
                         00152-01 97 12
 
 
            памяти, а тем самым и улучшения производительности
 
            в течение работы системы.
 
 
 
        2.3.2. Распределение загрузки
 
 
 
        Загрузку системы следует распределять как можно  более
 
   равномерно в пределах времени работы  эвм.  Для  облегчения
 
   такого распределения приводятся следующие приемлемые спосо-
 
   бы:
 
 
        1) большие задания следует выполнять  в  виде  заданий
 
   пакетного режима обработки. Например,  обслуживающая  прог-
 
   рамма обработки учетной информации должна  выполняться  как
 
   задание пакетного  режима.  Необходимо  регулировать  число
 
   пакетных потоков, чтобы пакетной работы  было  много  в  те
 
   моменты, когда мало интерактивной работы.  Необходимо  вос-
 
   пользоваться квалификаторами команд диалогового  командного
 
   языка, чтобы выполнять задания  пакетного  режима  с  более
 
   низким приоритетом и  ограничить  размеры  рабочих  наборов
 
   и/или, чтобы управлять числом параллельно выполняемых зада-
 
   ний;
 
 
        2) необходимо ограничивать  пользование  системой.  Не
 
   рекомендуется  регистривоваться  единовременно  в   системе
 
   большему числу пользователей, чем система в состоянии  обс-
 
   лужить с приемлемым временем ответа  (реакции).  Количество
 
   интерактивных  пользователей  можно  ограничить  с  помощью
 
   команды SET LOGINS/INTERACTIVE диалогового командного  язы-
 
   ка, описанного в документе [7]. Число параллельных  процес-
 
   сов  можно  регулировать  с  помощью  системного  параметра
 
   MAXPROCESSCNT, а количество удаленных терминалов, с которых
 
 
                            - 28 -
 
                         00152-01 97 12
 
 
   разрешен доступ к системе в одно и то же время, - с помощью
 
   системного параметра RJOBLIM, описанного в документе [9];
 
 
        3) возможно ограничить использование  системы  опреде-
 
   ленными группами пользователей конкретными днями  и  часами
 
   дня. Для задания разрешенных часов входа в систему для каж-
 
   дого пользователя можно воспользоваться обслуживающей прог-
 
   раммой  авторизации  пользователей  в  системе.  Необходимо
 
   обратить  внимание  на  квалификаторы  AUTHORIZE/PRIMEDAYS,
 
   /P_RESTRICT, /PFLAGS,  /SFLAGS  и  /S_RESTRICT.  С  помощью
 
   команды SET DAY диалогового командного языка можно изменять
 
   назначение основных и вспомогательных дней по  отношению  к
 
   их стандартному распределению. Например, может потребовать-
 
   ся изменить основной день недели на  вспомогательный,  если
 
   на него приходится праздничный день.
 
 
 
        2.3.3. Совместное использование программ
 
 
 
        Для того, чтобы гарантировать  оптимальную  производи-
 
   тельность системы, следует ряд часто используемых  программ
 
   сделать  программами  разделенного   доступа   (совместного
 
   использования). Эта особенность системы является  эффектив-
 
   ным средством оптимизации использования памяти, описанной в
 
   п.3.2.3.
 
 
        Командная процедура запуска, зависящая  от  конкретной
 
   установки, порождает постоянные глобальные секции для  сис-
 
   темных программ и подпрограмм, устанавливая их  в  качестве
 
   известных образов  с  признаком  совместного  использования
 
   (разделенного доступа). Для  установки  связей  программ  с
 
   признаком совместного использования (разделенного  доступа)
 
 
                            - 29 -
 
                         00152-01 97 12
 
 
   требуется использовать командную процедуру запуска, описан-
 
   ную в документе [2].
 
 
        Общие правила и справки о написании программ для  сов-
 
   местного использования находятся в документах [8],[3].
 
 
 
 
           3.  СРЕДСТВА УПРАВЛЕНИЯ РЕСУРСАМИ В МОС ВП
 
 
 
 
        После предпринятия  необходимых  шагов  в  направлении
 
   регулирования загрузки системы, можно  получить  отчеты  по
 
   вопросам, связанным с производительностью. До  предпринятия
 
   исследований для проведения настройки, обязательным  требо-
 
   ванием является наличие всесторонних  знаний  по  принципам
 
   управления ресурсами в системе МОС ВП.
 
 
 
        3.1. Сведения по управлению памятью в МОС ВП
 
 
 
        В данном подразделе описывается, как  система  МОС  ВП
 
   управляет ресурсами для удовлетворения своих пользователей.
 
 
        В операционной системе  МОС  ВП  ряд  процессов  могут
 
   выполняться на имеющемся в наличии об'еме физической памяти
 
   (процесс - это диспетчеризуемый обьект системы). Операцион-
 
   ная система - МОС  ВП  состоит  из  исполнительной  системы
 
   (резидента) и прочих компонент.  Каждый  процесс  выполняет
 
   работу,  которая  заключается  в  обработке  информации.  В
 
   дополнении к основной  памяти  конфигурацией  обслуживается
 
   ряд вспомогательных устройств  -  накопители  (диски),  где
 
   хранятся дополнительные байты информации.
 
 
 
 
                            - 30 -
 
                         00152-01 97 12
 
 
        В системе МОС ВП физическую память можно рассматривать
 
   условно разбитой на три основные части в соответствии с  их
 
   использованием:
 
 
        1) часть памяти, доступная для работы процессов;
 
 
        2) часть  памяти,  выделенная  для  резидентной  части
 
   исполнительной системы;
 
 
        3) часть памяти для страничной кэш-памяти, где хранит-
 
   ся информация, пересылаемая с дисков (или  на  диски).  Для
 
   каждого диска существует только один путь доступа, по кото-
 
   рому можно выполнять операции ввода-вывода для диска.
 
 
        В физической памяти существует достаточно мест "равно-
 
   весия", которые зарезервированы под  максимально  ожидаемое
 
   число параллельно выполняемых процессов, включая операцион-
 
   ную систему. Если число слот равновесия уменьшить,  меньшее
 
   число процессов смогут выполняться  параллельно.  В  опера-
 
   ционной системе и в каждом  процессе  в  физической  памяти
 
   есть независимые рабочие поля - называемые рабочими набора-
 
   ми. Рабочие наборы - это списки, характерные для  процесса.
 
   Рабочий набор содержит все допустимые страницы в памяти для
 
   любого конкретного  процесса.  Страницы  в  рабочем  наборе
 
   представляют подмножество полного количества страниц в таб-
 
   лицах страниц процесса.
 
 
        В системе МОС ВП основной адресуемой единицей информа-
 
   ции является байт. Байты всегда хранятся группами,  которые
 
   называются страницами, причем на  страницу  приходится  512
 
   байт. Страницы находятся в  рабочих  наборах  или  разделах
 
   физической памяти, называемой страничной кэш-памяти, а так-
 
 
 
                            - 31 -
 
                         00152-01 97 12
 
 
   же на дисках. Страница представляет удобное средство  пере-
 
   мещения одинаковых количеств байтов в/из памяти.
 
 
        Рис.2 иллюстрирует конфигурацию памяти для системы мос
 
   вп.
 
 
 
         Конфигурация  памяти  системы  МОС ВП
 
 
 
 
   -----------------------------------     -------------
   !          !        !             !<----!   файлы   !
   ! резидент !странич-!             !     !   образов !
   ! системы  ! ная    !  балансный  !     -------------
   !          ! кэш-   !   набор     !     -------------
   !          !память  !             !<--->!   файлы   !
   !          !        !             !     !   секций  !
   ! резидент-!список  !  рабочие    !     -------------
   ! ные прог-!свобод- !   наборы    !
   ! раммы    !ных     ! пользовате- !     -------------
   !          !страниц !   телей     !<--->!файл обмена!
   !          !        !             !     ! страниц   !
   !          !........!             !     -------------
   !          !        !             !
   ! .........!        !             !
   ! динами-  !список  !             !
   ! ческая   !модифи- !.............!
   ! память,  !цирован-! рабочий     !     -------------
   ! не имею- !ных     !  набор      !     !   файл    !
   ! щая стра-!страниц !  системы    !<--->!  обмена   !
   ! ничной   !        !             !     ! рабочими  !
   ! организа-!        !             !     ! наборами  !
   ! ции      !        !             !     -------------
   -----------------------------------
 

                             Рис. 2
 
 
        В системе МОС ВП важно поддерживать  равновесное  сос-
 
   тояние в вопросах использования памяти и количества  однов-
 
   ременно выполняемых процессов. Каждому процессу  соответст-
 
   вует определенный интервал времени для выполнения его рабо-
 
   ты - квант. Квант -  это  фиксированный  интервал  времени.
 
   Если никакой другой процесс не ожидает возможности реализа-
 
   ции своего кванта, текущий процесс может продолжить работу,
 
   обновив свой квант и сохраняя за собой управление централь-
 
 
                            - 32 -
 
                         00152-01 97 12
 
 
   ным процессором.
 
 
        При активизации  образа  основная  работа  выполняется
 
   таким образом, чтобы процесс смог перенести  первую  порцию
 
   страниц из файла образа и использовать их в  своем  рабочем
 
   наборе.
 
 
        Работа по диспетчеризации физической  памяти  выпадает
 
   на процесс планировщика памяти. Планировщик  памяти  следит
 
   за страницами, находящимися как в физической памяти, так  и
 
   на диске в файлах страничного обмена и обмена рабочих набо-
 
   ров.
 
 
        Когда потребность  процесса  в  страницах  превосходит
 
   об'ем, имеющийся в рабочем  наборе,  ряд  страниц  процесса
 
   должны быть пересланы в  страничную  кэш-память,  освободив
 
   место.
 
 
        В  системе  МОС  ВП  имеются  два  раздела  страничной
 
   кэш-памяти:
 
 
        1) страницы, содержимое которых изменилось, хранятся в
 
   списке модифицированных страниц;
 
 
        2) страницы, содержимое которых не изменилось, хранят-
 
   ся в списке свободных страниц.
 
 
   При заполнении  страничной  кэш-памяти  планировщик  памяти
 
   начинает пересылку кластера страниц  из  списка  измененных
 
   страниц из памяти на диск в файл страничного обмена.
 
 
        Иногда процессам  требуются  дополнительные  страницы,
 
   которые хранятся либо в файле образа, либо в файле странич-
 
   ного обмена. Если в рабочем наборе недостаточно места, про-
 
 
                            - 33 -
 
                         00152-01 97 12
 
 
   цесс должен переслать одну или несколько  своих  страниц  в
 
   страничную кэш-память. Процесс считывает группу страниц  из
 
   файла образа на диске в предположении, что процессу придет-
 
   ся обратиться к страницам, отличным от тех,  к  которым  он
 
   обращался только что.
 
 
        Слабое место может  возникнуть,  если  одновременно  у
 
   многих процессов происходит страничный отказ,  и  если  для
 
   всех процессов существует один файл  страничного  обмена  и
 
   скорость  поиска,  соизмерима  со  скоростью  обмена  между
 
   памятью и диском. (обмен между памятью и диском  происходит
 
   медленнее, чем  доступ  к  оперативной  памяти).  Установка
 
   дополнительных файлов страничного обмена на отдельных  дис-
 
   ках или создание кэш-памяти большего об'ема может сократить
 
   влияние слабого места системы. (может оказаться более целе-
 
   сообразным на первое место  поставить  то,  что  связано  с
 
   чрезмерным отказом страниц).
 
 
 
        3.2. Механизмы управления памятью
 
 
 
        Для повышения  производительности  в  системе  МОС  ВП
 
   используется ряд механизмов управления памятью:
 
 
        1) автоматическая подстройка рабочего набора;
 
 
        2) подстройка планировщика памяти;
 
 
        3) разделеление памяти (совместное использование);
 
 
        4) планирование (диспетчеризация).
 
 
        Операционная система МОС ВП обеспечивает такие возмож-
 
   ности по умолчанию. В большинстве ситуаций они  дают  удов-
 
 
                            - 34 -
 
                         00152-01 97 12
 
 
   летворительные результаты в вопросах оптимизации производи-
 
   тельности системы.
 
 
 
        3.2.1. Автоматическая   подстройка    рабочего
 
               набора в МОС ВП
 
 
 
        Автоматическая  подстройка  рабочего   набора   (AWSA)
 
   характерна для системы, в которой процессы  могут  запраши-
 
   вать дополнительное место под рабочий набор  (в  физической
 
   памяти). Система МОС ВП распознает число страничных отказов
 
   для каждого процесса и учитывает его при работе.
 
 
        Всем процессам присваивается  исходный  лимит  страниц
 
   физической памяти по умолчанию. Лимит рабочего набора обоз-
 
   начается WSDEFAULT.  Любому  процессу,  которому  требуется
 
   больше места в памяти, разрешается расширять этот лимит  до
 
   большей величины, которая называется квотой рабочего набора
 
   (обозначается через WSQUOTA). Эти важные области  иллюстри-
 
   рует рис.3.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                            - 35 -
 
                         00152-01 97 12
 
 
       Oбласти рабочего набора процесса
 
 
 
       г !   -------------------    WSMAX
       р !                          WSEXTENT
       а !   -------------------
       н !   !                 !
       и !   !  выделенная     !
       ц /   !   область       !
       ы/    !                 !
        \    !.................!    WSQUOTA
       о \   !                 !
       б !   !                 !
       л !   !.................!    WSDEFAULT
       а !   !                 !
       с !   !...............  !    AWSMIN
       т !   !                 !
       и !   !.................!    SWPOUTPGCNT
         !   !                 !
         !   -------------------
 
     фактический размер рабочего набора в любой заданный
     момент хранится в WSSIZE.
     WSMAX, AWSMIN, SWPOUTPGCNT - системные параметры.
     WSEXTENT, WSQUOTA, WSDEFAULT - параметры  UAF.
 
 
                             Рис. 3
 
 
        Из-за того, что страничный отказ обходится  дорого,  в
 
   операционной системе МОС ВП имеется другая возможность рас-
 
   ширения пространства рабочего набора для  нуждающихся  про-
 
   цессов (если в системе имеется свободная  память).  Процесс
 
   может заимствовать место под рабочий набор вплоть до  окон-
 
   чательного предельного значения, которое называется экстен-
 
   том его рабочего набора или WSEXTENT.
 
 
        Системный администратор  должен  решить,  какое  число
 
   страниц в действительности требуется для  рабочего  набора.
 
   Такое число обозначается термином "счетчик  рабочего  набо-
 
   ра". Счетчик рабочего набора содержит число страниц процес-
 
   са плюс число глобальных страниц, которые используются про-
 
   цессом.
 
 
 
 
                            - 36 -
 
                         00152-01 97 12
 
 
        Увеличение размера рабочего набора происходит  опреде-
 
   ленными порциями в  соответствии  со  значением  системного
 
   параметра WSINC. Система МОС  ВП  узнает  или  подытоживает
 
   потребность в росте рабочего набора в следующих случаях:
 
 
        1) в конце следующего кванта;
 
 
        2) после того минимального интервала времени,  который
 
   задается системным параметром AWSTIME.
 
 
        Времемя от начала кванта после подстройки и до истече-
 
   ния следующего кванта после времени, заданного  посредством
 
   AWSTIME, - это время подстройки.  Величина  кванта  опреде-
 
   ляется системным параметром QUANTUM. О  частоте  страничных
 
   отказов  система  собирает  информацию  в  течении  периода
 
   подстройки,  заданного  системными  параметрами  AWSTIME  и
 
   QUANTUM. Например, если квант системы состаляет 200  милли-
 
   секунд, а AWSTIME - 700 миллисекунд, система МОС  ВП  будет
 
   анализировать потребность добавить или удалить страницы  из
 
   процесса всегда, когда данный процесс использует 800 милли-
 
   секунд времени центрального процессора или на  каждом  чет-
 
   вертом кванте.
 
 
        Анализируя потребность каждого процесса  в  добавлении
 
   нескольких страниц к его предельному об'ему рабочего набора
 
   посредством механизма  автоматической  подстройки,  система
 
   МОС ВП  может  сбалансировать  распределение  поля  рабочих
 
   наборов между процессами. Цель такой работы связана с  сок-
 
   ращением числа отказов страниц. Система МОС ВП решает, сле-
 
   дует ли предоставлять память, сравнивая текущее число стра-
 
   ничных отказов, которое испытывает каждый  процесс,  с  той
 
   нормой, которая была установлена для всех процессов в  сис-
 
 
                            - 37 -
 
                         00152-01 97 12
 
 
   теме. (системными  параметрами  PFRATH  и  PFRATL  задаются
 
   соответственно верхняя и нижняя граница  допустимого  числа
 
   страничных отказов).
 
 
        Если частота страничных отказов высока  (по  сравнению
 
   со значением PFRATH), система МОС ВП в конце периода подст-
 
   ройки каждого процесса  решает  увеличить  размер  рабочего
 
   набора такого процесса на величину, равную значению систем-
 
   ного параметра WSINC. Размер рабочего набора  увеличивается
 
   до величины WSQUOTA в течение следущего периода подстройки.
 
   Если при увеличении размера  процесс  выходит  за  границу,
 
   установленную  значением  WSQUOTA,  то  требуется  выделить
 
   дополнительное место. Система МОС ВП проверяет наличие сво-
 
   бодной памяти в пределах, установленной значением системно-
 
   го  параметра  BORROWLIM.  Только  механизм  автоматической
 
   подстройки рабочего набора позволяет процессу "расти" сверх
 
   значения его WSQUOTA,  если  существует  столько  свободных
 
   страниц  оперативной  памяти,  сколько  указано  параметром
 
   BORROWLIM. Таким образом автоматически подстройка  рабочего
 
   набора привязывает свободные участки к доступному об'екту.
 
 
        Если система МОС ВП может разрешить процессу "расти" в
 
   течение его следующего периода подстройки, и, если  слишком
 
   много процессов пытаются добавить себе страниц (одновремен-
 
   но), необходим дополнительный механизм, позволяющий системе
 
   МОС ВП останавливать этот рост, в то время, пока он  проис-
 
   ходит. Система МОС ВП останавливает рост процессов, которые
 
   уже успешно переросли свою  квоту.  Если  страничный  отказ
 
   процесса происходит после того, как  его  счетчик  рабочего
 
   набора превысил квоту, система МОС ВП анализирует  значение
 
   системного параметра GROWLIM прежде, чем она разрешит  про-
 
 
                            - 38 -
 
                         00152-01 97 12
 
 
   цессу воспользоваться участком, размером  WSINC.  (отметим,
 
   что данная работа не привязана и не входит в период  подст-
 
   ройки, а приводится в действие механизмом образования собы-
 
   тий на основе страничного отказа). Если существует  столько
 
   страниц в списке свободных страниц, сколько требуется  сог-
 
   ласно GROWLIM, система МОС ВП продолжает разрешать процессу
 
   добавлять страницы к его рабочему набору. Если  число  сво-
 
   бодных страниц равно или  не  превышает  значение  GROWLIM,
 
   система МОС ВП не разрешит рост  процесса.  Процесс  должен
 
   освободить несколько своих страниц прежде, чем  он  считает
 
   новые страницы.
 
 
        Пока ряд процессов,  испытывающих  тяжелые  страничные
 
   отказы, с разрешения системы расширяют размеры своих  рабо-
 
   чих наборов, другие процессы, которые не  испытывают  столь
 
   тяжелых потребностей (страничных отказов),  могут  отдавать
 
   часть поля своих рабочих наборов за счет их принудительного
 
   уменьшения. Те процессы, у которых частота страничных отка-
 
   зов ниже значения PFRATL (если  PFRATL  отлично  от  нуля),
 
   подвергаются сокращению, то есть осбождают страницы.  Такое
 
   сокращение происходит в конце следующего кванта после исте-
 
   чения AWSTIME. Величина сокращения  определяется  системным
 
   параметром WSDEC. Минимальный  размер  задается  параметром
 
   AWSMIN.
 
 
        Рис.4 иллюстрирует,  как  частота  страничных  отказов
 
   связана с размером рабочего набора. Под  влиянием  значений
 
   PFR1 и PFR2 частоты  страничных  отказов  размера  рабочего
 
   набора колеблятся между точками а и в в заштрихованной час-
 
   ти графика.
 
 
 
 
                            - 39 -
 
                         00152-01 97 12
 
 
        Не все рабочие наборы всех образов укладываются в одну
 
   и ту же кривую на рис.4. Например,  рабочие  наборы  других
 
   образов могут вести себя ближе к  кривой  рис.5.  Любая  из
 
   этих характерных кривых иллюстрирует,  что  при  уменьшении
 
   размера рабочего набора можно ожидать рост частоты странич-
 
   ных отказов. Если установить максимально допустимую частоту
 
   страничных отказов в  PFRI,  каждому  образу  соответствует
 
   минимально  необходимый  размер  рабочего  набора,  который
 
   помечен точкой а на всех  графиках.  Если  установить,  что
 
   минимальный уровень страничных отказов  соответствует  PFR2
 
   для всех образов, тогда каждому образу соответствует  точка
 
   в, которая характеризует максимальный размер рабочего набо-
 
   ра.
 
 
        Рис.6  иллюстрирует,  как  автоматическая   подстройка
 
   рабочего набора работает во времени в рамках целой  системы
 
   для минимизации числа страничных отказов посредством подст-
 
   ройки размеров рабочих наборов с  приведением  их  в  соот-
 
   ветствие с имеющимся в наличии об'емом свободной памяти.
 
 
        На рис.6 область между кривой желаемого размера  рабо-
 
   чего набора и  фактическим  пределом  для  рабочего  набора
 
   (область ниже кривой) соответствует тем местам, где  проис-
 
   ходит обмен страниц. Другая  часть  области  (выше  кривой)
 
   соответствует ненужным  излишкам  памяти  -  случай,  когда
 
   стоит израсходовать память для того,  чтобы  минимизировать
 
   страничный отказ.
 
 
        В момент, когда завершает свою  работы  образ,  предел
 
   размера рабочего набора процесса автоматически  уменьшается
 
   до значения WSDEFAULT.
 
 
 
                            - 40 -
 
                         00152-01 97 12
 
 
       Влияние размера рабочего набора на частоту
 
              страничных отказов
 
 
                 !
                 !
                 !
                 !    .
                 !    .
                 !    .                        PFR1
                 !-----------------------------------
                 !    !.
                 !    !/.
   частота       !    !///.
   страничных    !    !//////.
   отказов       !    !/////////.
                 !    !/////////////.
                 !    !////////////////.
                 !    !///////////////////.    PFR2
                 !----!////////////////////////.-----
                 !    !////////////////////////!  .
                 !    !////////////////////////!
                 !    !////////////////////////!
                 !-------------------------------------
                      A                        B
 
                        размер рабочего набора
 
 
                             Рис. 4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                            - 41 -
 
                         00152-01 97 12
 
 
       Влияние размера рабочего набора на частоту
 
                  страничных отказов
 
 
                  !
                  !    .
                  !     .                          PFR1
                  !------.--------------------------------
                  !      !.
                  !      !/.
                  !      !//.
                  !      !////.
                  !      !//////.
   частота        !      !////////.
   страничных     !      !//////////.
   отказов        !      !////////////.
                  !------!//////////////.----------PFR2---
                  !      !///////////////!.
                  !      !///////////////!  .
                  !      !///////////////!    .
                  !      !///////////////!
                  !      !///////////////!
                  !      !///////////////!
                  !      !///////////////!
                  ---------------------------------------
                         A                 в
 
                        размер рабочего набора
 
                             Рис. 5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                            - 42 -
 
                         00152-01 97 12
 
 
 
       Пример автоматической подстройки рабочего набора
               в процессе   работы
 
      !
      !
   р  !
   а  !
   з  !
   м  !                                            !--->!    !
   е  !           !---->!                          !    !   .!
   р  !           !     !<--фактический предел     !    !  . !
      !           !     !      рабочего набора     !    ! .  !
   р  !           !     !---->!                    !    !.-->!
   а  !           ! .         !                    !    .
   б  !          .!   .       !              !---->!   .
   о  !         . !     .     !---->!        !        .
   ч  !        .  !      .          !        !       .
   е  !     !---->!       .         !        !      .
   г  !     ! .            .        !--->!   !     .
   о  !     !.              .           .!   !    .
      !    .!                .         . !-->!   .
   н  !  .  !   желаемый       .      .   .     .
   а  !.    !   рабочий         .    .     .   .
   б  !---->!   набор ------->   .  .       . .
   о  !                            .         .
   р  !
   а  !
      !
      --------------------------------------------------------
   время    02    04    06    08   010  012  014  016  018  02
             !     !     !    !    !    !    !    !    !    !
   период    A1    A2    A3   A4   A5   A6   A7   A8   A9   A1
   подстройки                                единицы измерения
 
 
    время подстройки  измеряется в QUANTUM тиков
    период подстройки AWSTIME = 2 X QUANTUM
 
 
                             Рис. 6
 
 
 
        3.2.1.1. Размеры рабочих наборов
 
 
 
        Управление памятью зависит от  значений,  заданых  для
 
   квоты рабочего набора (WSQUOTA) и предела расширения  рабо-
 
   чего набора (WSEXTENT).
 
 
        Для процесса эти значения получаются из файла  автори-
 
   зации пользователя в том виде, в каком они были заданы сис-
 
 
 
                            - 43 -
 
                         00152-01 97 12
 
 
   темным администратором. При задании этих значений админист-
 
   ратор позволяет системе присвоить значения по умолчанию  по
 
   данным, хранящимся в записи DEFAULT (команда  SHOW  DEFAULT
 
   обслуживающей программы AUTHORIZE позволяет вывести на тер-
 
   минал принимаемые по умолчанию значения). Каждое хранящееся
 
   в файле  авторизации  пользователя  значение  соответствует
 
   верхней границе для процесса. При выполнении интерактивного
 
   процесса действительные значения могут быть  уменьшены  или
 
   увеличены либо посредством соответствующих квалификаторов в
 
   последней команде SET WORKING_SET, относящейся к ним,  либо
 
   с помощью программы системного обслуживания $ADJWSL.
 
 
        Подпроцессы и отсоединенные процессы получают характе-
 
   ристики своих  рабочих  наборов  при  создании  посредством
 
   программы системного обслуживания $CREPRC или  команды  RUN
 
   (процесс) диалогового  командного  языка.  Если  конкретные
 
   значения в этот момент не заданы, подпроцесс  или  отсоеди-
 
   ненный процесс получает в качестве  характеристик  рабочего
 
   набора значения по умолчанию из  соответствующих  системных
 
   параметров PQL следующим образом:
 
 
        Параметр                 характеристика
 
   PQL_DWSDEFAULT      значение по умолчанию WSDEFAULT
 
   PQL_DWSQUOTA        значение по умолчанию WSQUOTA
 
   PQL_DWSEXTENT       значение по умолчанию WSEXTENT
 
 
        Параметры PQL описываются  в  обслуживающей  программе
 
   SYSGEN.
 
 
        При создании очереди пакетного режима обработки коман-
 
   дой INITIALIZE/QUEUE диалогового командного языка  задаются
 
   значения,   принимаемые   по    умолчанию.    Квалификаторы
 
 
                            - 44 -
 
                         00152-01 97 12
 
 
   /WSDEFAULT, /WSQUOTA и /WSEXTENT можно  задать  так,  чтобы
 
   они соответствовали значениям пользователя из файла автори-
 
   зации пользователя. При выполнении задания пакетного режима
 
   фактические значения могут быть уменьшены с  помощью  соот-
 
   ветствующих   квалификаторов   команд   SUBMIT   или    SET
 
   QUEUE/ENTRY диалогового языка.
 
 
        Необходимо запомнить, что величина WSQUOTA должна быть
 
   достаточно большой для того, чтобы  процесс  мог  выполнять
 
   работу сравнительно успешно без привлечения  дополнительной
 
   памяти, и в то же время достаточно малой  для  того,  чтобы
 
   одиночный процесс гарантировано не требовал нерационального
 
   разделения памяти в тех ситуациях, когда память  достаточно
 
   полно занята.
 
 
        Для назначения оптимальных размеров для рабочих  набо-
 
   ров рекомендуется использовать следующую двухэтапную  стра-
 
   тегию:
 
 
        1) выбрать исходные границы рабочих наборов  для  раз-
 
   личных видов обработки на основе опыта;
 
 
        2) подстроить границы рабочих наборов на основе наблю-
 
   дения за работой.
 
 
 
        3.2.1.2. Исходные   границы   и   характеристики
 
                 рабочего набора
 
 
 
        Для обработки, включающей системные компоненты,  пред-
 
   лагается пользоваться следующими границами размеров рабоче-
 
   го набора:
 
 
 
 
                            - 45 -
 
                         00152-01 97 12
 
 
          - малый об'ем (60-300 страниц) - для редактирования,
 
            компиляции и компоновки небольших программ ("стан-
 
            дартная" интерактивная обработка);
 
 
          - большой об'ем (350-700 страниц) - для компиляции и
 
            компоновки  больших  программ  и  для   сортировки
 
            ("стандартная" пакетная обработка).
 
 
        Границы  рабочего  набора  для  программ  пользователя
 
   зависят от соотношения между командами и данными в програм-
 
   ме и от об'ема данных в  программе.  Программы,  которые  в
 
   основном состоят из машинных инструкций, то  есть  содержат
 
   небольшие или умеренные об'емы информации, либо  используют
 
   СУД-32 для позаписной обработки  данных,  должны  требовать
 
   небольшого  рабочего  набора.  Об'ем  программы  не  должен
 
   влиять, пока она является  в  разумных  пределах  линейной.
 
   Программы, в которых  может  потребоваться  преобразовывать
 
   большие об'емы данных внутри себя (например, процедуры сор-
 
   тировки, компоновщики, компиляторы, ассемблеры и  библиоте-
 
   кари), обычно будут нуждаться в больших рабочих наборах.
 
 
        При выборе исходных характеристик рабочего набора сле-
 
   дует учитывать следующее:
 
 
        1) системный параметр WSMAX необходимо  задать  равным
 
   наибольшему  числу  страниц,  которое  может  потребоваться
 
   любой программе;
 
 
        2) дополнительные возможности файла авторизации  поль-
 
   зователя :
 
 
          - для каждого пользователя значению WSQUOTA требует-
 
            ся присвоить то максимальное  количество  страниц,
 
 
                            - 46 -
 
                         00152-01 97 12
 
 
            которое потребуется программе,  которую  пользова-
 
            тель будет выполнять в интерактивном режиме;
 
 
          - значению WSDEFAULT  необходимо  присвоить  среднее
 
            число страниц,  которое  потребуется  для  задачи,
 
            выполняющейся пользователем в интерактивном  режи-
 
            ме;
 
 
          - значению WSEXTENT необходимо присвоить  то  макси-
 
            мальное число  страниц,  которое  предположительно
 
            потребуется процессу;
 
 
        3) очереди пакетной обработки для запускаемых  пользо-
 
   вателем заданий:
 
 
          - для каждой очереди  пакетной  обработки  параметру
 
            WSEXTENT,    получаемому    с    помощью    команд
 
            INITIALIZE/QUEUE   или   START/QUEUE   диалогового
 
            командного  языка,  необходимо  задать  наибольшее
 
            потребное число страниц;
 
 
          - для значения WSQUOTA необходимо задать такое число
 
            страниц, которое позволит заданиям  завершиться  в
 
            обозримый промежуток времени;
 
 
          - значению WSDEFAULT необходимо задать среднее  пот-
 
            ребное число страниц.
 
 
        Такое соглашение окажет воздействие на пользователей и
 
   принудит их подключить большие задания к пакетной  обработ-
 
   ке, так как задания не будут эффективно выполняться в инте-
 
   рактивном режиме. Для дальнейшего ограничения тех пользова-
 
   телей, которые пытаются выполнять большие задания  в  инте-
 
 
 
                            - 47 -
 
                         00152-01 97 12
 
 
   рактивном режиме, можно ввести ограничения на время исполь-
 
   зования центрального процессора, которые помещаются в  файл
 
   авторизации пользователя.
 
 
 
        3.2.1.3. Корректировка размеров рабочего набора
 
 
 
        После определения размеров  и  характеристик  рабочего
 
   набора, описанных в подпунктах 3.2.1.1 и  3.2.1.2,  следует
 
   дать системе поработать и понаблюдать за ее  производитель-
 
   ностью. Если  наблюдается  неудовлетворительная  производи-
 
   тельность необходимо обратиться к п.5.2.4.
 
 
 
        3.2.1.4. Корректировка параметров автоматической
 
                 подстройки рабочего набора
 
 
 
        Механизм автоматической подстройки рабочего  набора  в
 
   значительной степени зависит от значений ключевых системных
 
   параметров PFRATH, PFRATL, WSINC, WSDEC, QUANTUM,  AWSTIME,
 
   AWSMIN, GROWLIM и BORROWLIM. Обычно значения, которые  сис-
 
   тема подставляет в эти параметры  по  умолчанию,  полностью
 
   соответствуют потребности работы.
 
 
        Параметры PFRATL и WSDEC, которые  управляют  принуди-
 
   тельным уменьшением, чувствительны к загрузке от прикладных
 
   программ. Для параметров PFRATH и PFRATL можно задать такие
 
   значения, которые приведут к плохой производительности сис-
 
   темы. Проблема эта связана с используемым в системе МОС  ВП
 
   алгоритмом замещения страниц и временем,  которое  тратится
 
   на поддержание работы в пределах границ, установленных  для
 
   страничного  отказа.  Например,  при  некоторых   значениях
 
 
 
                            - 48 -
 
                         00152-01 97 12
 
 
   PFRATL возможно, что у процесса непрерывно происходят стра-
 
   ничные отказы, хотя размер его рабочего набора увеличивает-
 
   ся. Число  страничных  отказов  сокращается,  пока  процесс
 
   пытается поддерживать частоту страничных отказов в пределах
 
   тех  границ,  которые  установлены  параметрами  PFRATH   и
 
   PFRATL. Можно наблюдать тот же процесс в работе при пример-
 
   но того же размера рабочем наборе, но без единого  странич-
 
   ного отказа при  отключенном  параметре  PFRATL  (приравнен
 
   нулю). Чтобы предотвратить систему от нежелательных сильных
 
   колебаний, система МОС ВП отключает принудительное уменьше-
 
   ние размера, изначально установив  параметр  PFRATL  равным
 
   нулю.
 
 
        Вероятность того, что параметры автоматической  подст-
 
   ройки рабочего набора рассогласованы,  мала  и  не  следует
 
   пытаться изменить какой-либо  из  ключевых  параметров  без
 
   полного понимания всего механизма. Ряд системных параметров
 
   должны  быть  увязаны  с  остальными.  Например,   параметр
 
   BORROWLIM должен быть больше параметра FREELIM. Такие взаи-
 
   мосвязи рассматриваются в описании параметров обслуживающей
 
   программы генерации системы.
 
 
        Можно отключить для любого процесса процедуру  заимст-
 
   вования, для чего достаточно значение WSEXTENT сделать рав-
 
   ным значению его WSQUOTA. Можно обойти возможность  автома-
 
   тической подстройки рабочего набора, заблокировав ее коман-
 
   дой SET WORKING_SET/NOADJUST диалогового командного  языка.
 
   Необходимо соблюдать осторожность в отключении автоматичес-
 
   кой подстройки рабочего  набора  посредством  квалификатора
 
   /NOADJUST, и возможны ситуации, в которых планировщик памя-
 
   ти будет вынужден вернуть процесс в рамки,  соответствующие
 
 
                            - 49 -
 
                         00152-01 97 12
 
 
   значению  системного  параметра  SWPOUTPGCNT  (см.п.3.2.2).
 
   Если  для  некоторого  процесса  заблокирована  возможность
 
   автоматической подстройки рабочего набора,  то  процесс  не
 
   сможет увеличить размер своего рабочего набора после  того,
 
   как планировщик памяти уменьшит его для данного процесса до
 
   значения SWPOUTPGCNT.  Если  значение  SWPOUTPGCNT  слишком
 
   мало, процесс будет ограничен рабочим набором такого разме-
 
   ра и часто будет возникать страничный отказ.
 
 
        Можно  отключить  автоматическую  подстройку  рабочего
 
   набора при установке для WSINC значение, равное нулю.
 
 
 
        3.2.1.5. Управление    производительностью     и
 
                 автоматическая   подстройка    рабочего
 
                 набора
 
 
 
        Разрабатывая  метод  управления   производительностью,
 
   который учитывает желаемую автоматическую подстройку  рабо-
 
   чего набора, можно установить, когда параметры  выходят  за
 
   пределы возможной подстройки.
 
 
        На вычислительной системе обычно  выбирается  один  из
 
   следующих двух универсальных способов настройки  параметров
 
   автоматической подстройки рабочего набора:
 
 
        1) настройка выполняется с  целью  обеспечить  быструю
 
   реакцию в  тех  условиях,  когда  потребности  по  загрузке
 
   информации превосходят размеры рабочего набора;
 
 
        2) настройка  выполняется  с  целью  обеспечить  менее
 
   динамическую  реакцию,  которая  будет  "уравновешивать"  и
 
   отражать умеренные потребности в росте рабочего набора.
 
 
                            - 50 -
 
                         00152-01 97 12
 
 
        Первый способ используется в условиях разделения  вре-
 
   мени, когда возможны сильные колебания во  времени  потреб-
 
   ностей в памяти. Второй используется в условиях производст-
 
   венной среды, когда тенденции в потребностях более предска-
 
   зуемые и существенно меньше изменяются.
 
 
        Для использования способа с высокой степенью  реактив-
 
   ности, следует параметр  PFRATH  сделать  малым  (возможно,
 
   даже равным нулю), назначить низкое значение для AWSTIME  и
 
   задать  сравнительно  большое  значение  для  WSINC.  Будут
 
   запускаться процессы с малыми значениями по  умолчанию  для
 
   рабочих наборов. Если установить значение BORROWLIM малым и
 
   задать большие значения для WSEXTENT, можно  будет  обеспе-
 
   чить работу либо при больших квотах  для  рабочих  наборов,
 
   либо при больших потребностях в заимствовании.
 
 
        Для реализации  менее  "динамичного"  способа  следует
 
   установить умеренные значения для параметров AWSTIME, WSINC
 
   и PFRATH (например, можно установить WSINC равным  примерно
 
   10% от стандартного значения  WSDEFAULT).  Если  установить
 
   большие значения по умолчанию для рабочих  наборов,  то  не
 
   потребуется установить значение BORROWLIM столь малым, что-
 
   бы гарантировать выполнение операций заимствования.
 
 
 
        3.2.2. Подстройка планировщика памяти МОС ВП
 
 
 
        Операционная система МОС ВП может "выгрузить"  процесс
 
   на диск в файл обмена рабочими  наборами  для  того,  чтобы
 
   оставшиеся процессы могли использовать память в  отсутствии
 
   чрезмерных страничных отказов.  Обменом  рабочими  наборами
 
   (выгрузкой) называется вывод процесса в некоторый  зарезер-
 
 
                            - 51 -
 
                         00152-01 97 12
 
 
   вированный файл на диске, который называется файлом  обмена
 
   рабочими наборами.
 
 
        Для обеспечения  равномерного  использования  наличных
 
   ресурсов  памяти  между  процессами,  операционная  система
 
   обычно перераспределяет  память,  используя  более  сложную
 
   последовательность операций, чем просто обмен рабочих набо-
 
   ров.  Такой  способ  перераспределения  памяти   называется
 
   подстройкой планировщика памяти.
 
 
        Подстройка планировщика памяти может быть инициирована
 
   системой МОС ВП в любой момент времени, когда  обнаружится,
 
   что в списке свободных страниц их слишком мало. Когда число
 
   свободных страниц уменьшится на столько, что станет  меньше
 
   значения  системного  параметра  FREELIM,  система  МОС  ВП
 
   предпринимает необходимые действия для обеспечения по край-
 
   ней мере того количества свободных страниц,  которое  соот-
 
   ветствует значению системного параметра FREEGOAL:
 
 
        1) система МОС ВП проверяет по списку модифицированных
 
   страниц, содержится ли в нем минимальное число страниц  для
 
   вывода их на диск. Такое минимальное значение задается зна-
 
   чением системного параметра MPW_THRESH;
 
 
        2) если минимальное число страниц существует,  система
 
   МОС ВП запускает средство вывода изменненных  страниц  (для
 
   записи списка модифицированных страниц) и освобождения этих
 
   страниц (для списка свободных страниц);
 
 
        3) если модифицированных страниц нельзя получить  дос-
 
   таточного числа страниц, чтобы общее число свободных  стра-
 
   ниц соответствовало значению FREEGOAL, система  МОС  ВП  не
 
 
 
                            - 52 -
 
                         00152-01 97 12
 
 
   активизирует  средство  вывода  модифицированных   страниц.
 
   Вместо этого система МОС ВП решает, что ряд процессов  нуж-
 
   дается в "подстройке", т.е. принудительно изымает некоторые
 
   их страницы либо вообще выгружает процессы. Когда это  сде-
 
   лано, все оставшиеся  процессы  получают  более  корректную
 
   возможность использовать свободные страницы.
 
 
        Подстройка  происходит  на  двух  уровнях,  и  система
 
   пытается ее выполнить до того, как приступит к обмену рабо-
 
   чих наборов (выгрузке):
 
 
        1) планировщик памяти отыскивает те процессы,  которые
 
   заимствовали память до границы расширения  своего  рабочего
 
   набора. Такие процессы, по усмотрению планировщика  памяти,
 
   могут быть приведены к  состоянию  рабочего  набора,  соот-
 
   ветствующего размеру его квоты. Если полученное в результа-
 
   те такой подстройки число страниц окажется  не  достаточным
 
   (возможжно, из-за того, что в данный момент мало или вообще
 
   ни один из заимствованных  участков  памяти  не  свободен),
 
   планировщик памяти может перейти на второй  уровень  подст-
 
   ройки;
 
 
        2) планировщик памяти основывается на  значении  пара-
 
   метра   подстройки   -   значении   системного    параметра
 
   SWPOUTGCNT. Планировщик памяти пытается подстроить  столько
 
   кандидатов, сколько нужно, на уровень значения SWPOUTPGCNT,
 
   что является минимальным числом страниц для любого  процес-
 
   са, которое разрешено оставить в память прежде, чем процесс
 
   будет выгружен.  Обнако,  так  как  планировщик  памяти  не
 
   уменьшает число страниц у активного процесса, то  он  выби-
 
   рает  процесссы-кандидаты  на  сокращение  рабочего  набора
 
 
 
                            - 53 -
 
                         00152-01 97 12
 
 
   исходя из их состояния. Как только  достигнуто  необходимое
 
   число страниц,  планировшик  памяти  прекращает  подстройку
 
   второго уровня. Если с помощью подстройки второго уровня не
 
   удается получить достаточного  числа  страниц,  планировщик
 
   памяти приступает к выгрузке  процессов  по  своему  списку
 
   вероятных кандидатов. Память  всегда  сначала  изымается  у
 
   приостановленных процессов, а затем уже у всех прочих  про-
 
   цессов.
 
 
        Как только планировщик памяти определит, какие процес-
 
   сы выгружать, он сравнит фактическое время ожидания процес-
 
   са с момента, когда он перешел  в  состояние  ожидания  или
 
   ожидания локального события (флага), со значением системно-
 
   го параметра LONGWAIT. Такая проверка позволяет системе мос
 
   вп различить те процессы,  которые  простаивают  в  течение
 
   некоторого времени и останутся в таком состоянии. Процессы,
 
   которые не слишком долго простаивают смогут  быстрее  вклю-
 
   читься в вычислительный процесс. Из своих кандидатов систе-
 
   ма МОС ВП выбирает в качестве лучших кандидатов для выгруз-
 
   ки процессы, которые простояли в течение  отрезка  времени,
 
   не меньшего величины LONGWAIT. Освобождая за счет  выгрузки
 
   страницы, система МОС ВП должна разрешить достаточному чис-
 
   лу процессов удовлетворить свои потребности  в  центральном
 
   процессоре, и те процессы, которые  находятся  в  состоянии
 
   ожидания, смогут возобновить свою работу скорее.
 
 
        Ели система слегко загружена, большой  низкоприоритет-
 
   ный вычислительный процесс  может  расширить  свой  рабочий
 
   набор за пределы, установленные значением  его  квоты.  Для
 
   того чтобы изьять достаточный об'ем памяти для предотвраще-
 
   ния интенсивного страничного обмена в интерактивных процес-
 
 
                            - 54 -
 
                         00152-01 97 12
 
 
   сах, иногда приходится приостанавливать крупные процессы.
 
 
        В системе МОС ВП предложен вариант процедуры для из'я-
 
   тия "спящего" процесса. "спящий" процесс определяется двумя
 
   критериями:
 
 
        1) процесс не должен быть процессом реального времени,
 
   причем его текущий приоритет должен быть не больше значения
 
   параметра DEFPRI обслуживающей программы SYSGEN (по умолча-
 
   нию равен 4);
 
 
        2) процесс должен быть вычислительным, для которого не
 
   было важного события (страничный отказ, ввод-вывод в прямом
 
   доступе или буферизованный, выделение времени  центрального
 
   процессора) в промежутке истекшего  времени,  определяемого
 
   значением  параметра  DORMANTWAIT  обслуживающей  программы
 
   SYSGEN (по умолчанию в течение 10 секунд).
 
 
        После приостановленных процессов "спящие"  процессы  -
 
   наиболее вероятные кандидаты на высвобождение памяти.
 
 
        Минимальный размер рабочего набора,  при  котором  еще
 
   может выполняться некоторая работа, и  сравнительно  эффек-
 
   тивно - это значение ниже значения  пиковой  эффективности.
 
   Задавая параметру SWPOUTPGCNT такое значение, обеспечивает-
 
   ся возможность эффективно изымать память  у  процессов  без
 
   перехода к выгрузке процессов из балансного набора.
 
 
        Имеется возможность отключить второй уровень подстрой-
 
   ки планировщика памяти, увеличив  значение  SWPOUTPGCNT  до
 
   столь большого  значения,  что  подстройка  второго  уровня
 
   никогда не станет возможной. Планировщик памяти будет  про-
 
   должать еще подстраивать те процессы, размеры рабочих набо-
 
 
                            - 55 -
 
                         00152-01 97 12
 
 
   ров которых превышают выделенные квоты, доводя их до разме-
 
   ра квоты там, где в этом будет потребность. Если обнаружит-
 
   ся ситуация,  в  которой  любая  выполняемая  планировщиком
 
   памяти подстройка приводит к чрезмерному страничному  обме-
 
   ну, может показаться, что более предпочтительным в качестве
 
   корректирующего действия будет исключить подстройку второго
 
   уровня и вновь запустить планировщик памяти. В таком случае
 
   настройка обмена рабочих наборов  производится  посредством
 
   параметра SWPOUTPGCNT.
 
 
        Для процессов, обладающих  привилегией  PSWAPM,  можно
 
   отключить обмен рабочих наборов и подстройку второго уровня
 
   с  помощью  команды  SET   PROCESS/NOSWAPPING   диалогового
 
   командного языка.
 
 
 
        3.2.3. Разделение памяти в МОС ВП
 
 
 
        Разделение памяти позволяет многим  процессам  отобра-
 
   жаться (получать доступ) на одну и ту же страницу  (страни-
 
   цы) физической памяти. Разделение  памяти  (либо  программ,
 
   либо данных) выполняется под  управлением  системы  МОС  ВП
 
   через системную таблицу глобальных страниц, которая  анало-
 
   гична по назначению таблице страниц системы.
 
 
        Рис.7 и рис.8 иллюстрируют, как можно сохранить память
 
   за счет использования глобальных (разделяемых) страниц. Три
 
   процесса (а,в и с) используют одну и ту же программу, кото-
 
   рая содержит две страницы машинных команд и  одну  страницу
 
   данных. Записи информации). Рис.7 иллюстрирует  отображение
 
   виртуальной памяти в физическую, которое необходимо  выпол-
 
   нить, чтобы каждый процесс работал с личной копией програм-
 
 
                            - 56 -
 
                         00152-01 97 12
 
 
   мы. Рис.8 иллюстрирует те схемы физической памяти и  компо-
 
   новку структур данных, которые  необходимы,  чтобы  "только
 
   читаемая" часть программы  совместно  использовалась  тремя
 
   процессами. Для каждого  процесса  тем  не  менее  остается
 
   управление личным  полем  данных  во  избежание  разрушения
 
   информации, используемой другими процессами.
 
 
        Об'ем памяти, который экономится за  счет  разделения,
 
   есть произведение того числа страниц, которое занимает сов-
 
   местно используемая программа, на число процессов без  еди-
 
   ницы, которые используют разделенный доступ. В  примере  на
 
   рис.7 показано, что  при  отсутствии  разделения  требуется
 
   девять страниц памяти. Рис.8 показывает, что за счет разде-
 
   ления 4 страницы памяти сэкономлены (2 страницы разделенно-
 
   го использования программы, помноженные на  3-1  процесса).
 
   Если 30  пользователей  совместно  используют  300  страниц
 
   программ параллельно, экономия составляет 8700 страниц.
 
 
        Для достижения такой экономии памяти требуются неболь-
 
   шие накладные  расходы.  Накладные  расходы  содержат  поле
 
   структур данных, которое необходимо для хранения  элементов
 
   таблицы глобальных страниц и точек входа глобальных секций.
 
   Обе таблицы нужны для  обеспечения  отображения  на  память
 
   глобальной части программы. Каждой глобальной странице тре-
 
   буется один элемент в таблице глобальных страниц  (размером
 
   в 4 байта, размещаемый в таблице глобальных страниц,  кото-
 
   рая является частью заголовка системного процесса).  Каждой
 
   глобальной секции требуется элемент глобальной  секции  (32
 
   байта в таблице глобальных секций, которая  также  является
 
   частью заголовка системного процесса) и дескриптор глобаль-
 
   ной секций (48 байтов, которые  выделяются  из  страничного
 
 
                            - 57 -
 
                         00152-01 97 12
 
 
   динамического пула). Более подробная информация о  глобаль-
 
   ных секциях содержится в описании компоновщика.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                            - 58 -
 
                         00152-01 97 12
 
 
 
      Пример без совместно используемой программы
 
     процесс а           процесс а
   виртуальное адресное  таблица страниц ро
   пространство
    -----------------     ------------
    !               !\    !     .    !         физическая
    ! личные данные ! \   !     .    !          память
    !               !  \  !     .    !
    !---------------!   \ !----------!         -------------
    !               !    \! индекс   !-------->! личные    !
    ! программа     !     !----------!         ! данные    !
    !               !     ! индекс   !-----!   !(процесс а)!
    !---------------!     !----------!     !   !-----------!
    !               !     ! индекс   !--!  !   !           !
    ! программа     !    /!----------!  !  !-->! программа !
    !               !   / !    .     !  !      !(процесс а)!
    !               !  /  !    .     !  !      !-----------!
    ----------------- /   ------------  !----->! программа !
                                               !(процесс а)!
     процесс B             процесс B           !-----------!
   виртуальное адресное   таблица страниц ро   !  личные   !
   пространство                          !---->!  данные   !
    -----------------     ------------   !     !(процесс B)!
    !               !\    !     .    !   !     !           !
    ! личные данные ! \   !     .    !   !     !-----------!
    !               !  \  !     .    !   !     !           !
    !---------------!   \ !----------!   !     ! программа !
    !               !    \! индекс   !---!  !->!(процесс B)!
    ! программа     !     !----------!      !  !           !
    !               !     ! индекс   !------!  !-----------!
    !               !     !----------!         !           !
    !---------------!     ! индекс   !-------->! программа !
    !               !    /!----------!         !(процесс B)!
    ! программа     !   / !     .    !         !-----------!
    !               !  /  !     .    !         ! личные    !
    ----------------- /   ------------   !---->! данные    !
                                         !     !(процесс C)!
     процесс C            процесс C      !     !-----------!
   виртуальное адресное   таблица        !     !           !
   пространство           страниц ро     !  !->! программа !
    -----------------     ------------   !  !  !(процесс C)!
    !               ! \   !     .    !   !  !  !           !
    ! личные данные !  \  !     .    !   !  !  !-----------!
    !               !   \ !----------!   !  !  !           !
    !---------------!    \! индекс   !---!  !  ! программа !
    !               !     !----------!      !  !           !
    ! программа     !     ! индекс   !------!  !(процесс C)!
    !               !     !----------!     !-->!           !
    !---------------!     ! индекс   !-----!   !-----------!
    !               !    /!----------!
    ! программа     !   / !     .    !
    !               !  /  !     .    !
    !---------------! /   !----------!
                         суммарные потребности в физической
                         памяти: 9 страниц
 
                             Рис. 7
 
 
                            - 59 -
 
                         00152-01 97 12
 
 
 
     Пример с совместно используемой программой
 
   процесс а           процесс а
   виртуальное адрес-  таблица
   ное пространство    страниц ро
   -----------------   ------------
   !               !\  !     .    !            физическая
   ! личные данные ! \ !     .    !            память
   !               !  \!     .    !            -------------1-
   !---------------!   !----------!            !  личные     !
   !               !   ! индекс   !--->1       !  данные     !
   ! программа     !   !----------!            ! (процесс а) !
   !               !   ! индекс   !--->4       !------------2!
   !---------------!   !----------!            !  личные     !
   !               !   ! индекс   !--->5       !  данные     !
   ! программа     !   !----------!            ! (процесс B) !
   !               !  /!     .    !            !------------3!
   !               ! / !     .    !            !  личные     !
   !---------------!/  !----------!            !  данные     !
                                               ! (процесс C) !
   процесс в           процесс в               !------------4!
   виртуальное адрес-  таблица                 !             !
   ное пространство    страниц ро              ! программа   !
   -----------------   ------------            !(разделенный !
   !               !\  !     .    !            ! доступ)     !
   ! личные данные ! \ !     .    !            !             !
   !               !  \!----------!            !------------5!
   !---------------!   ! индекс   !--->3       !             !
   !               !   !----------!            ! программа   !
   ! программа     !   ! индекс   !--->4       !(разделенный !
   !               !   !----------!            ! доступ)     !
   !---------------!   ! индекс   !--->5       !             !
   !               !   !----------!            ---------------
   ! программа     !  /!     .    !
   !               ! / !     .    !
   !---------------!/  ------------
                                            таблица
   процесс с           процесс с            глобальных
   виртуальное адрес-  таблица              страниц
   ное пространство    страниц ро           ------------
   -----------------   ------------         !     .    !
   !               !\  !     .    !         !     .    !
   ! личные данные ! \ !     .    !         !     .    !
   !               !  \!     .    !         !          !
   !---------------!   !----------!         !----------!
   !               !   ! индEкс   !--->3    !размешение!--->4
   ! программа     !   !----------!         ! страницы !
   !               !   ! индекс   !--->4    !----------!
   !---------------!   !----------!         !размещение!--->5
   !               !   ! индекс   !--->5    ! страницы !
   ! программа     !   !----------!         !     .    !
   !               !  /!     .    !         !     .    !
   !               ! / !     .    !         !     .    !
   -----------------/  ------------         ------------
                        суммарные потребности в физической
                        памяти: 5 страниц
 
                             Рис. 8
 
 
                            - 60 -
 
                         00152-01 97 12
 
 
        Максимальные размеры двух структур данных определяются
 
   системными параметрами. GBLPAGES задает размер таблицы гло-
 
   бальных страниц, а GBLSECTIONS задает размер  таблицы  гло-
 
   бальных секций. Эти две структуры  данных  являются  частью
 
   заголовка системного процесса. Размер рабочего набора  сис-
 
   темы, определяемый системным параметром  SYSMWCNT,  следует
 
   увеличить увеличением значения GBLPAGES. Командная процеду-
 
   ра AUTOGEN автоматически  увеличивает  значение  системного
 
   параметра SYSMWCNT на единицу при каждом увеличении  значе-
 
   ния GBLPAGES на 128 страниц.
 
 
        После создания образа с разделенным доступом, его мож-
 
   но установить как образ с постоянно  разделенным  доступом.
 
   Память будет сэкономлена, если  одновременно  более  одного
 
   процесса отображаются на образ.
 
 
        Необходимо   пользоваться   обслуживающей   программой
 
   AUTHORIZE  для  увеличения  характеристик  рабочего  набора
 
   (WSDEF, WSQUO, WSEXTENT). Такое увеличение не означает, что
 
   увеличится использование памяти.  Совместное  использование
 
   программы многими пользователями в действительности  сокра-
 
   щает потребности в памяти.
 
 
        В системе МОС  ВП  можно  попытаться  проанализировать
 
   ситуацию, не много ли  происходит  параллельно  активизаций
 
   образов, которые нуждаются в  сохранении  информации.  Если
 
   этого нет, нет никакого основания пользоваться  программами
 
   с разделенным  доступом  (совместного  использования).  Для
 
   определения совместного использования секций образа исполь-
 
   зуется следуюшая процедура:
 
 
 
 
 
                            - 61 -
 
                         00152-01 97 12
 
 
        1)  запускается  обслуживающая   программа   установки
 
   (INSTALL) и выдается команда LIST/FULL;
 
 
        П_р_и_м_е_р_.
 
 
        $RUN SYS$SYSTEM:INSTALL
        INSTALL>LIST/FULL LOGINOUT
 
        INSTAL выдает информацию на терминал следующего вида:
 
        DISK$M32VOSRL4:<SYSO.SYSEXE>.EXE
        LOGINOUT:3   OPEN HDR   SHAR PRIV
        ENTRY ACCESS COUNT      =44
        CURRENT/MAXIMUM SHARED =3/5
        GLOBAL SECTION COUNT   =2
        PRIVILEGES = CMRNL SYSNAM TMPMBX EXQUOTA SYSPRV
 
   где
 
 
        OPEN HDR - открытый заголовок;
 
        SHAR PRIV - привилегия разделенного доступа;
 
        ENTRY ACCESS COUNT - счетчик точек входа для учета;
 
        CURRENT/MAXIMUM SHARED - текущее состояние/максималь-
 
        Ное число разделенных доступов;
 
        GLOBAL SECTION COUNT - счетчик глобальных секций;
 
        PRIVILEGES - привилегии;
 
 
        2) анализируются значения, приведенные в графах "теку-
 
   щее состояние/максимальное число  разделенных  доступов"  и
 
   "счетчики":
 
 
          - текущее значение - это текущее  значение  счетчика
 
            параллельных доступов к известному образу;
 
 
          - максимальное значение -  это  наибольшее  значение
 
            счетчика  параллельных  доступов  к  образу  после
 
            того, как он стал известен  системе  (установлен).
 
            Данное число появляется в выдаче на терминал толь-
 
            ко в том случае, если образ установлен с  квалифи-
 
 
                            - 62 -
 
                         00152-01 97 12
 
 
            катором /SHARED. Максимальное значение должно быть
 
            равно по крайней мере 3 или 4. Более низкое значе-
 
            ние указывает на то, что чрезмерны накладные  рас-
 
            ходы, связанные с распределенным доступом.
 
 
 
        3.2.4. Планирование (диспетчеризация) в МОС ВП
 
 
 
        Планировщик системы МОС ВП управляет ресурсами  систе-
 
   мы. Это планирование может оказывать влияние на  производи-
 
   тельность системы.
 
 
        Планировщик пытается получить максимум производиитель-
 
   ности для параллельно выполняемых процессов. Для достижения
 
   этого он передает  управление  центральным  процессором  по
 
   кругу для тех процессов, которые занимаются вычислениями, и
 
   все процессы вычислительного характера получают возможность
 
   завершить свои потребности. Как часть  возможной  оптимиза-
 
   ции, допускается наложение работ.  Например,  если  процесс
 
   должен ожидать завершения  операции  ввода-вывода,  другому
 
   процессу разрешается в этот момент работать.
 
 
        Планировщик МОС ВП использует модифицированную  круго-
 
   вую форму планирования. Процесс получает возможность выпол-
 
   нять свою работу исходя  из  принципа  обращения  с  учетом
 
   приоритета и состояния процесса.
 
 
        Каждый вычислительный процесс получает  квант  времени
 
   для своей работы. (кванты  времени  соответствуют  значению
 
   системного параметра QUANTUM, а обращение  квантов  времени
 
   между процессами называется разделением времени). До начала
 
   его кванта процесс выполняется до тех пор, пока:
 
 
 
                            - 63 -
 
                         00152-01 97 12
 
 
          - процесс более высокого приоритета не станет вычис-
 
            лительным (то есть не займет  центральный  процес-
 
            сор);
 
 
          - процесс более не вычислительный, так  как  ожидает
 
            некоторого ресурса;
 
 
          - процесс принудительно переходит в состояние ожида-
 
            ния;
 
 
          - квант не исчерпается.
 
 
        Если в момент  исчерпания  кванта  отсутствует  другой
 
   вычислительный процесс того же приоритета, подготовленный к
 
   работе, текущий процесс получает следующий квант времени.
 
 
        Смена состояния процесса вынуждает  планировшика  про-
 
   вести анализ того, какой из  процессов  должен  выполняться
 
   (кому  разрешить  работать).  Например,  процесс,   который
 
   завершит операцию ввода информации  с  терминала,  изменяет
 
   свое состояние из состояния ожидания локального флага собы-
 
   тия на состояние возможности  выполнения  вычислений.  Если
 
   требуется найти следующий процесс для диспетчеризации, пла-
 
   нировщик анализирует приоритеты, присвоенные всем  вычисли-
 
   тельным процессам, и выбирает тот процесс, у которого прио-
 
   ритет наивысший. Приоритеты - это числа от 0 до 31. Процес-
 
   сы с приоритетами 16 и выше получают максимальный доступ  к
 
   ресурсу центрального процессора (даже больше, чем системные
 
   процессы) каждый раз, когда они становятся вычислительными.
 
   Такие приоритеты, следовательно, используются для процессов
 
   реального времени.  Необходимо  выделить  следующие  случаи
 
   изменения приоритетов:
 
 
 
                            - 64 -
 
                         00152-01 97 12
 
 
        1) для процессов с  приоритетом  ниже  16  планировщик
 
   может изменять приоритеты процессов как в сторону  увеличе-
 
   ния, так и в сторону уменьшения. Пока процессы выполняются,
 
   планировщик распознает такие события, как завешение  опера-
 
   ции ввода-вывода, конец интервала времени и так далее.  Как
 
   только одно из распознаваемых событий происходит, а связан-
 
   ный с  ним  процесс  становится  вычислительным,  приоритет
 
   такого процесса может быть увеличен. Уровень роста  приори-
 
   тета связан с происшедшим событием. Например, если событием
 
   является завершение операции ввода с терминала,  то  такому
 
   событию дается большое приращение приоритета, так что вско-
 
   ре данный процесс сможет снова включиться в  работу.  Затем
 
   планировщик анализирует, у какого из вычислительных процес-
 
   сов  наивысший  приоритет,  и  при  необходимости  вызывает
 
   переключение контекста.  Процесс  с  наивысшим  приоритетом
 
   включается в работу. Как только процесс  подвергается  дис-
 
   петчеризации, его приоритет понижается на единицу, что поз-
 
   воляет процессам, получившим прирост по приоритету,  начать
 
   процедуру возврата к своему основному приоритету. Приоритет
 
   никогда не снижается ниже основного приоритета или не попа-
 
   дает в диапазон приоритетов реального времени;
 
 
        2) для процессов реального времени (то есть таких про-
 
   цессов, у которых основные приоритеты лежат в  пределах  от
 
   16 до 31) существует некоторое конкретное отличие. Для про-
 
   цессов реального времени отсутствует повышение  приоритета,
 
   на них не сказывается  механизм  автоматической  подстройки
 
   рабочих наборов или выделение  кванта  времени  на  занятие
 
   центрального процессора. И хотя разделение  времени  работы
 
   процессора с помощью квантов  времени  успешно  реализуется
 
 
 
                            - 65 -
 
                         00152-01 97 12
 
 
   для других процессов, система МОС  ВП  разрешает  процессам
 
   реального времени выполняться до их принудительного перехо-
 
   да в состояние ожидания или до того момента, когда  процесс
 
   реального времени с более высоким приоритетом станет вычис-
 
   лительным (потребует занятия для себя центрального  процес-
 
   сора);
 
 
        3) процесс получает основной приоритет по умолчению по
 
   квалификатору /PRIO из записи файла авторизации пользовате-
 
   ля, соответствующей данному пользователю,  либо  из  записи
 
   DEFAULT того же файла. Процесс может  также  изменить  свой
 
   приоритет  с  помощью  программы  системного   обслуживания
 
   $SETPRI. С помощью команды SET PROCESS/PRIORITY диалогового
 
   командного языка пользователи всегда могут понизить приори-
 
   тет своих процессов. Пользователи должны обладать  привиле-
 
   гией ALTPRI, чтобы использовать ту же команду для повышения
 
   приоритета тех же процессов. Для изменения приоритета  дру-
 
   гих процессов пользователю требуется привилегия  GROUP  или
 
   WORLD;
 
 
        4) отсоединеный процесс или подпроцесс  получает  свой
 
   основной приоритет при создании  его  с  помощью  программы
 
   системного обслуживания $CREPRC или команды RUN диалогового
 
   языка команд; если приоритет не задан, используется приори-
 
   тет того, кто создает данный процесс или подпроцесс.
 
 
        5) при создании очереди  пакетной  обработки  командой
 
   INITIALIZE/QUEUE/PRIORITY диалогового командного языка  для
 
   заданий устанавливается приоритет по умолчанию. При подклю-
 
   чении задания с помощью команды  SUBMIT  диалогового  языка
 
   команд или изменения характеристик такого задания с помощью
 
 
 
                            - 66 -
 
                         00152-01 97 12
 
 
   команды SET QUEUE/ENTRY диалогового командного языка  поль-
 
   зователь может регулировать приоритет посредством  квалифи-
 
   катора /PRIORITY. При использовании этих  команд  повышение
 
   приоритета допускается только для тех лиц или процессов,  у
 
   которых имеется привилегия OPER.
 
 
 
 
             4. ДИАГНОСТИКА ОГРАНИЧЕНИЙ ПО РЕСУРСАМ
 
 
 
 
        Если предполагается,  что  производительность  системы
 
   страдает от ограниченности некоторого  ресурса,  необходимо
 
   исследовать, какой из ресурсов наиболее вероятно сказывает-
 
   ся на  производительности.  В  системе  МОС  ВП  существуют
 
   ресурсы накладывающие следующие ограничения:
 
 
          - ограничения по памяти;
 
 
          - ограничения операций по вводу-выводу;
 
 
          - ограничения от центрального процессора.
 
 
 
        4.1. Диагностика
 
 
 
        Анализ вероятности ограничений необходимо  производить
 
   последовательно. Сначала  требуется  проверить  вероятность
 
   ограничений по памяти, затем проверить, не вносят ли  огра-
 
   ничения операции ввода-вывода, и  наконец,  ограничения  от
 
   центрального процессора. Может так случиться, что в резуль-
 
   тате проведенного исследования можно будет сделать заключе-
 
   ние, что действительным источником проблемы является ошибка
 
   пользователя, некорректное использование ресурсов одним или
 
 
 
                            - 67 -
 
                         00152-01 97 12
 
 
   несколькими пользователями.
 
 
        В данном подразделе описывается, как исследовать  каж-
 
   дую из таких возможностей. Процедуры исследования подытожи-
 
   вает рис.9.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                            - 68 -
 
                         00152-01 97 12
 
 
         Шаги процесса предварительного исследования
                      -------
                      !     !
                      !  2  !
                       \   /
                         !
                         !
                         !
                ---------------------------
                ! начало предварительного !
                ! исследования            !
                ---------------------------
                         !
                         !
                3        *
   --------------       * *     ! страничный
   !исследование !  да *   *    ! обмен или
   ! ограничения !<---*  ?  *---! обмен рабочих
   ! по памяти   !     *   *    ! наборов?
   ---------------      * *
                         *
                         ! нет
                         !
                         !
               3         *
   --------------       * *
   !исследование ! нет *   *    ! свободная
   ! ограничения !<---*  ?  *---! память?
   ! по памяти   !     *   *    !
   ---------------      * *
                         *
                         ! да
                         !
              12         *
   --------------       * *
   !исследование !  да *   *    ! ввод-вывод в
   ! ограничения !<---*  ?  *---! прямом доступе или
   ! по вводу-   !     *   *    ! буферизованный?
   ! выводу      !      * *
   ---------------       *
                         ! нет
                         !
              16         *
   --------------       * *     ! пользователи в состоянии
   !исследование !  да *   *    ! выполнения вычислительных
   !ограничения  !<---*  ?  *---! операций или не занимают
   !по централно-!     *   *    ! процессор?
   !му процессору!      * *
   ---------------       *
                         ! нет
                         !
                ----------------------------
                !    заключение действий   !
                !                          !
                ----------------------------
 
                             Рис. 9
 
 
 
 
                            - 69 -
 
                         00152-01 97 12
 
 
        При анализе ограничений  ресурсов  возможно  получение
 
   накладывающихся ограничений. Может оказаться,  что  имеются
 
   ситуации, в которых одновременно возникают  ограничения  по
 
   памяти и по вводу-выводу. В методах, которые описаны в дан-
 
   ном разделе, необходимо повторять тестирование нужное число
 
   раз, чтобы выделить все основные ограничения для дальнейше-
 
   го разрешения проблемы производительности.
 
 
        Приводятся общие описания ограничений по ресурсам:
 
 
        1) ограничения по  памяти.  Это  проявление  следующих
 
   проблем:
 
 
          - наличие слишком малого  об'ема  физической  памяти
 
            для попытки выполнить работу;
 
 
          - неудачное   использование    средств    управления
 
            памятью;
 
 
          - неправильное распределение ресурсов по памяти меж-
 
            ду пользователями и так далее.
 
 
        Для того, чтобы  определить,  можно  ли  исключить  из
 
   рассмотрения  ограничения  по  памяти,  необходимо   выдать
 
   команды MONITOR I0 или MONITOR SYSTEM диалогового командно-
 
   го языка и наблюдать за  значениями  системных  параметров.
 
   Исключение рассмотрения ограничения по  памяти  возможно  в
 
   следующих случаях:
 
 
          - если наблюдается  заметное  увеличение  свободного
 
            об'ема памяти (см.  Элементы  для  размера  списка
 
            свободных страниц и для размера списка  измененных
 
            страниц);
 
 
 
                            - 70 -
 
                         00152-01 97 12
 
 
          - если происходит  незначительный  страничный  обмен
 
            или он вообще отсутствует (см. Частоту  страничных
 
            отказов);
 
 
          - если происходит незначительный обмен рабочих набо-
 
            ров или он вообще отсутствует (см. Частоту загруз-
 
            ки в память).
 
 
   Если обмен рабочих наборов  наблюдается,  следует  провести
 
   дальнейшее исследование ограничений  по  памяти  (подраздел
 
   4.2);
 
 
        2) ограничения по  вводу-выводу.  Ограничение  данного
 
   типа возникает в следуюших случаях:
 
 
          - если не достаточно количества или скорости  обмена
 
            устройств;
 
 
          - если в результате ошибок  в  прикладной  программе
 
            возникнет неверный запрос (потребность) к конкрет-
 
            ному устройству;
 
 
          - если не будет  использоваться  достаточно  большой
 
            коэффициент  блокирования  или  достаточно   много
 
            буферов.
 
 
        Для определения того, можно ли  исключить  ограничения
 
   по вводу-выводу, необходимо выдать команду MONITOR  I0  или
 
   MONITOR SYSTEM диалогового командного языка  и  понаблюдать
 
   за скоростями обмена при вводе-выводе в прямом доступе  или
 
   при буферизованном вводе-выводе. Исключение ограничения  по
 
   вводу-выводу возможно в следующих случаях:
 
 
          - если система не выполняет операций ввода-вывода  в
 
 
                            - 71 -
 
                         00152-01 97 12
 
 
            прямом доступе;
 
 
          - если не наблюдается никаких операций  буферизован-
 
            ного ввода-вывода;
 
 
          - отсутствуют ограничения по вводу-выводу с термина-
 
            ла.
 
 
        Если одна либо две операции выполняются, нельзя исклю-
 
   чить возможность ограничений по вводу-выводу. Далее следует
 
   воспользоваться содержанием подраздела 4.3;
 
 
        3) ограничения  со  стороны  центрального  процессора.
 
   Центральный процессор может  стать  сдерживающим  ресурсом,
 
   если в больших количествах поступают запросы на его исполь-
 
   зование (интенсивные потребности). Возможно, вся  выполняе-
 
   мая на системе  работа  стала  в  основном  вычислительного
 
   характера либо существуют такие условия, в которых  опреде-
 
   ленным пользователям представляются не равные возможности.
 
 
        Для определения того, не страдают ли  пользователи  от
 
   ограничений со стороны центрального  процессора,  требуется
 
   воспользоваться командой MONITOR STATES диалогового команд-
 
   ного языка. Если  много  процессов  находится  в  состоянии
 
   выполнения вычислений и выгружены, необходимо заняться изу-
 
   чением ограничений по  центральному  процессору  (подраздел
 
   4.4).
 
 
        Необходимо воспользоваться командой MONITOR MODES диа-
 
   логового командного языка для определения следующих показа-
 
   телей:
 
 
          - об'ема времени, соответствующего режиму  пользова-
 
 
 
                            - 72 -
 
                         00152-01 97 12
 
 
            теля. Если величина  времени  режима  пользователя
 
            значительна,  то  источником  ограничений   служит
 
            использование центрального процессора;
 
 
          - об'ема времени простоя процессора, которое  иногда
 
            называют нуль-временем. Если  простоя  почти  нет,
 
            можно сделать вывод о том, что центральный процес-
 
            сор сильно загружен;
 
 
          - об'ема времени режима ядра. Высокий процент време-
 
            ни в режиме ядра может свидетельствовать  о  чрез-
 
            мерных накладных расходах со стороны  операционной
 
            системы. Возможно, что источником проблемы  высту-
 
            пает ограничение по памяти, но то  же  может  быть
 
            связано с  ограничением  со  стороны  центрального
 
            процессора.
 
 
        После предпринятий соответствующих  действий,  следует
 
   проследить за эффективностью сделанных изменений и, если не
 
   получается достаточное улучшение производительности,  попы-
 
   таться еще раз. В ряде случаев потребуется повторить те  же
 
   шаги, но при этом либо увеличить, либо  уменьшить  величину
 
   изменяемых параметров.
 
 
        Настройка - это итерационный процесс. Для  эффективной
 
   настройки обязательной является  возможность  наблюдать  за
 
   поведением системы в процессе выполнения  различных  прове-
 
   рок.
 
 
        Полезно хранить список текущих значений всех системных
 
   параметров во время проведения исследований. Один из спосо-
 
   бов получения списка показан на примере.
 
 
 
                            - 73 -
 
                         00152-01 97 12
 
 
        П_р_и_м_е_р.
 
                  $RUN SYS$SYSTEM:SYSGEN
                  SYSGEN>SET/OUTPUT FILENAME
                  SYSGEN>SHOW/ALL
                  SYSGEN>SHOW/SPECIAL
                  SYSGEN>EXIT
                  $PRINT/DELETE FILENAME
   где
 
   FILENAME - имя файла.
 
 
        4.2. Выделение ограничений по памяти
 
 
 
        Успешное управление производительностью системы МОС ВП
 
   - поддержание на минимальном  уровне  работ  по  управлению
 
   памятью. Ограничения по памяти приводят к страничному обме-
 
   ну и/или обмену рабочими наборами, т.е. к  активизации  тех
 
   работ, об'ем которых желательно минимизировать.
 
 
        Когда в системе обнаруживается  страничный  обмен  или
 
   обмен рабочих наборов при снижении производительности, сле-
 
   дует изучить ограничение по памяти. Если наблюдается недос-
 
   таток свободной памяти, но отсутствует серьезный страничный
 
   обмен или обмен рабочих  наборов,  система  может  как  раз
 
   находиться у той точки, когда она начнет  испытывать  чрез-
 
   мерный страничный обмен или обмен рабочих наборов даже  при
 
   незначительном увеличении потребностей. Наблюдаемое состоя-
 
   ние может служить  началом  неблагоприятного  состояния.  В
 
   п.4.2.5 описывается  ситуация  с  малым  об'емом  свободной
 
   памяти, но  без  интенсивного  страничного  обмена  рабочих
 
   наборов.
 
 
 
 
 
 
 
 
 
 
                            - 74 -
 
                         00152-01 97 12
 
 
        4.2.1. Анализ признака чрезмерного страничного
 
               отказа
 
 
 
        Не существует каких-либо  универсальных  оценок  того,
 
   что частота страничных отказов на системе МОС ВП перешла из
 
   разряда умеренных в разряд чрезмерных. Единственной хорошей
 
   частотой страничных отказов является величина нуль странич-
 
   ных отказов в секунду. Если  задано  максимальное  значение
 
   частоты страничных отказов, следует такую частоту  странич-
 
   ных отказов рассматривать в качестве чрезмерной. Страничный
 
   обмен всегда занимает системные ресурсы  (центральный  про-
 
   цессор и ввод-вывод). Наносимый им ущерб  в  производитель-
 
   ности целиком зависит от наличия используемых ресурсов.
 
 
        При принятии решения, какую частоту страничных отказов
 
   считать для данной системы максимально допустимой,  следует
 
   учесть конфигурацию системы и тип происходящего страничного
 
   обмена. Например, на системе с медленными дисками  то,  что
 
   может в других случаях показаться низкой частотой  странич-
 
   ного обмена с диском,  в  действительности  может  выражать
 
   недопустимый страничный обмен из-за величины времени  реак-
 
   ции, связанной  с  медленным  диском.  Относительно  частот
 
   страничных отказов можно судить только в условиях собствен-
 
   ной конфигурации. Следует проанализировать числа в связи  с
 
   общим числом отказов и в связи с наблюдаемой производитель-
 
   ностью системы. Системный администратор, который знает кон-
 
   фигурацию системы, может наилучшим образом оценить  влияние
 
   страничных отказов.
 
 
        После того, как установлено,  что  частота  страничных
 
   обменов чрезмерно высокая, необходимо установить ее  причи-
 
 
                            - 75 -
 
                         00152-01 97 12
 
 
   ну. Как следует из рис.10, можно начать с  просмотра  коли-
 
   чества активизаций образов на системе.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                            - 76 -
 
                         00152-01 97 12
 
 
         Исследование чрезмерного страничного обмена
           (фаза 1)
                      -------
                      !  3  !
                       \   /
                         !
                         !
                ---------------------------
                ! исследование ограничений!
                ! по памяти               !
                ---------------------------
               8         !
   ---------------       *      ! высокая частота
   !исследование ! нет  * *     ! страничных
   ! работы по   !<----* ? *----! отказов с диска
   ! обмену рабо-!      * *     ! или из кэш-памяти?
   !чими наборами!       *
   ---------------       ! да
                         !
   ---------------       *
   ! ошибка      !   да * *     ! слишком
   ! прикладной  !<----* ? *----! много активизаций
   ! программы   !      * *     ! образов ?
   ---------------       *
                         !            ! общая частота
                         ! нет    ----! отказов
                         !        !   ! высокая ?
                         !        !
      высокая    !       *        *      ---------------
      частота    !      * *  да  * * нет ! увеличение  !
      аппаратных !-----* ? *----* ? *----!  размер     !
      страничных !      * *      * *     ! кэш-памяти  !
      отказов ?  !       *        *      ---------------
                         ! нет    ! да
                         !    ------------------
                         !    !страничный обмен!
                         !    ! переполняет    !
                         !    ! системный диск !
                         !    ------------------
   ---------------       *
   ! страничный  !  нет * *      ! общая частота
   ! обмен  не   !<----* ? *-----!  отказов
   ! черезмерных !      * *      !  высокая?
   !  об'емов    !       *
   ---------------       ! да
                4        !
   ---------------       *
   ! сумма разме-!  нет * *      ! слишком
   ! ров рабочих !<----* ? *-----! большой
   !наборов слиш-!      * *      ! размер
   ! ком мала    !       *       ! кэш-памяти?
   ---------------       ! да
                         !
              -----------------------
              ! уменьшeние размера  !
              ! кэш-памяти          !
              -----------------------
 
                             Рис. 10
 
 
                            - 77 -
 
                         00152-01 97 12
 
 
        4.2.1.1. Анализ  чрезмерного  числа  активизаций
 
                 образов
 
 
 
        Для анализа  общего  числа  запущенных  на  выполнение
 
   образов  можно  воспользоваться  обслуживающей   программой
 
   обработки учетной информации (см.подраздел  2.3.).  Если  в
 
   системе наблюдается чрезмерное число активизаций образов  и
 
   не собирается информация для  обработки  файла  ACCOUNTING,
 
   можно по выводу, порождаемому командой MONITOR PAGE, прове-
 
   рить количество отказов "запрос  нуля".  Если  оказывается,
 
   что 50 процентов или более всех отказов - это  отказы  типа
 
   "запрос нуля", подтверждается  вероятность  слишком  частой
 
   активизации образов. Следует деблокировать учет  на  уровне
 
   образов и собрать данные в достаточном об'еме для подтверж-
 
   дения данного заключения.
 
 
        Для сокращения числа  активизаций  образов  необходимо
 
   просмотреть разработку прикладных программ в соответствии с
 
   основными положениями подраздела 5.2. Проблема  страничного
 
   обмена, вызванная активизациями образов,  не  устранится  в
 
   результате попыток произвести настройку системы. Соответст-
 
   вующая работа связана с внесением  изменений  в  прикладные
 
   программные разработки.
 
 
        Если, несмотря на действия  по  внесению  исправлений,
 
   сохранится недостаточная производительность, то  это  будет
 
   являться результатом многих обстоятельств. Следует  продол-
 
   жить дальнейшие исследования (подраздел 4.1).
 
 
 
 
 
 
 
 
                            - 78 -
 
                         00152-01 97 12
 
 
        4.2.1.2. Анализ   сравнительных    характеристик
 
                 аппаратных и программных отказов
 
 
 
        Необходимо получить характеристики страничных отказов.
 
   Существуют два вида страничного обмена:
 
 
          - аппаратный страничный обмен;
 
 
          - программный страничный обмен.
 
 
        Страничный обмен с диска - это  аппаратный  страничный
 
   обмен. Он является менее желательным из двух видов странич-
 
   ного обмена. Программный страничный обмен относится к стра-
 
   ничному обмену из страничной кэш-памяти в основную  память.
 
   Программный страничный обмен не желателен, когда он  проис-
 
   ходит в больших об'емах, обычно он  меньше  сказывается  на
 
   общей производительности системы, чем  страничный  обмен  с
 
   диска потому, что он происходит быстрее.
 
 
        Все решения по настройке системы при чрезмерном  стра-
 
   ничном обмене связаны с перераспределением ресурсов памяти.
 
   Не следует уменьшать размер рабочего набора системы и выде-
 
   лять освобожденную память под рабочие наборы или страничную
 
   кэш-память. Это в значительно большей мере  сказывается  на
 
   производительности,  если  система  испытывает   страничные
 
   отказы, а не  другие  процессы  испытывают  аппаратные  или
 
   программные страничные  отказы.  Всегда  следует  стараться
 
   поддержать частоту страничных  отказов  системы  на  уровне
 
   ниже двух отказов в секунду (частоту отказов системы  можно
 
   наблюдать с помощью команды MONITOR PAGE). Чтобы  уменьшить
 
   рабочий набор системы и увеличить вероятность возникновения
 
   страничных отказов системы, следует рассмотреть возможность
 
 
                            - 79 -
 
                         00152-01 97 12
 
 
   приобретения дополнительной памяти.
 
 
        Слишком мала страничная кэш-память.  Когда  чрезмерный
 
   страничный обмен является не следствием  активизаций  обра-
 
   зов, следует определить, какие типы  отказов  существуют  и
 
   какова частота  этих  отказов.  Необходимо  воспользоваться
 
   командой MONITOR PAGE.  Если  наблюдается  высокая  частота
 
   аппаратных отказов (выраженная частотой считывания  страниц
 
   при вводе-выводе), следует оценить  общую  частоту  отказов
 
   (выраженную частотой страничных отказов). Если общая часто-
 
   та отказов мала, а частота аппаратных  отказов  высока,  не
 
   эффекктивно используется страничная кэш-память, т.е.  Слиш-
 
   ком мал размер списка свободных страниц и/или списка  моди-
 
   фицированных   страниц.   Необходимо    увеличить    размер
 
   кэш-памяти. Такая сравнительно редкая ситуация возникает  в
 
   тех случаях, когда система расстроена (обойдено использова-
 
   ние AUTOGEN).
 
 
        До принятия решения относительно приобретения дополни-
 
   тельной памяти, необходимо сделать следующие действия:
 
 
          - увеличить   значения    параметров    MPW_LOLIMIT,
 
            MPW_THRESH, FREEGOAL и FREELIM (п.5.2.2.);
 
 
          - уменьшить системный параметр BALSETCNT (п.5.2.13);
 
 
          - уменьшить    характеристики    рабочего     набора
 
            (п.5.2.4).
 
 
        Если  после  изменения  параметров  кэш-память  станет
 
   слишком велика,  а  рабочие  наборы  слишком  малы,  другие
 
   варианты или  возможности  настройки  отсутствуют.  Следует
 
   сократить потребности (запросы)  либо  приобрести  дополни-
 
 
                            - 80 -
 
                         00152-01 97 12
 
 
   тельно память.
 
 
        В результате страничных отказов переполняется  систем-
 
   ный диск. Если в системе наблюдается высокая частота  аппа-
 
   ратных отказов наряду с  высокой  общей  частотой  отказов,
 
   возможно, что в системе слишком высокая загрузка. Это озна-
 
   чает, что происходит переполнение системного диска, и  сле-
 
   дует уменьшить об'ем страничных отказов на диск.
 
 
        Сначала следует выполнить действия для малых  размеров
 
   рабочих наборов (подпункт 4.2.1.3). Это исключит или  скор-
 
   ректирует возможность, связанную с  тем,  что  значительное
 
   число отказов при  значительном  числе  аппаратных  отказов
 
   является следствием того, что страничная  кэш-память  имеет
 
   слишком большой размер, и слишком много процессов  пытаются
 
   работать с малыми рабочими наборами.  Необходимо  уменьшить
 
   размер кэш-памяти и увеличить значение параметра WSQUOTA.
 
 
        При получении отрицательных результатов следует  пред-
 
   положить, что системный диск переполнен. Необходимо выбрать
 
   следующие варианты:
 
 
          - добавить другой файл страничного обмена на  другом
 
            диске;
 
 
          - сократить потребности;
 
 
          - добавить еще памяти.
 
 
        Слишком большая кэш-память. Если отказы  в  системе  в
 
   большинстве программного  происхождения,  требуется  прове-
 
   рить, не слишком ли высока обшая  частота  отказов.  Размер
 
   страничной кэш-памяти должен быть примерно на один  порядок
 
 
 
                            - 81 -
 
                         00152-01 97 12
 
 
   меньше общего об'ема приобретенной  памяти  для  балансного
 
   набора в условиях загрузки.
 
 
        Единственный  способ  создать  страничную   кэш-память
 
   слишком большого размера связан с расстройкой системы (воз-
 
   можно была обойдена процедура AUTOGEN).  В  п.5.2.3  описы-
 
   ваются средства уменьшения размера страничной кэш-памяти за
 
   счет системных параметров MPW_LOLIMIT, MPW_THRESH, FREEQOAL
 
   и FREELIM.
 
 
 
        4.2.1.3. Мал размер рабочего набора
 
 
 
        Если страничная кэш-память приемлемого размера,  необ-
 
   ходимо исследовать, что чрезмерный страничный обмен  возни-
 
   кает в тех ситуациях, когда ряд процессов  пытается  выпол-
 
   няться в условиях, когда размеры рабочих  наборов  для  них
 
   слишком малы. Если обший  об'ем  памяти  балансного  набора
 
   слишком мал, при работе может возникать одна  из  следующих
 
   трех ситуаций (или комбинация их):
 
 
        1) размер рабочего набора не соответствует  потребнос-
 
   тям из-за того, что:
 
 
          - рабочие наборы (размеры) были заданы слишком малы-
 
            ми с помощью характеристик WSDEFAULT и  WSQUOTA  в
 
            файле авторизации пользователя;
 
 
          - действительная квота рабочего набора была уменьше-
 
            на с помощью команд диалогового  командного  языка
 
            или  программ  системного  обслуживания,   которые
 
            запускались в процессе выполнения процесса;
 
 
 
 
                            - 82 -
 
                         00152-01 97 12
 
 
          - для  процессов  неудачно  заканчивались   операции
 
            заимствования;
 
 
        2) было отключено средство  автоматической  подстройки
 
   рабочего набора (AWSA) при  по  некоторой  причине  оно  не
 
   столь эффективно работает;
 
 
        3)  подстройка  планировщика  памяти  слишком   сильно
 
   уменьшила размеры рабочих наборов.
 
 
        Рис.11, 12 и 13 дают сводку процедур, которые последо-
 
   вательно  применяются  для  выделения  причины,  вследствие
 
   которой размеры рабочих наборов сказываются слишком малыми.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                            - 83 -
 
                         00152-01 97 12
 
 
            Исследование чрезмерного страничного обмена
    (фаза 2)                     -------
                                 !  4  !
                                  \   /
                                    !
                                    !
                                    !
                     ---------------------------------
                     ! сумма   размеров рабочих на-  !
                     !  боров слишком  мала          !
                     ---------------------------------
                                    !
                                    !
                                    !
                     ---------------------------------
                     ! определить для каких процессов!
                     ! чаще всего происходит странич-!
                     !      ный  отказ               !
                     ---------------------------------
                                    !
                                    !
                                    !
                     --------------------------------
                     ! что делают другие процессы?  !
                     -------------------------------
                                    !
                                    !
                                    !
                     --------------------------------
                     !                              !
                     ! сколько памяти они используют!
                     --------------------------------
                                    !
                                    !
                                    !              5
                     --------------------------------
                     !  определить  характеристики  !
                     !  рабочих наборов таких проце-!
                     !         ссов                 !
                     --------------------------------
                                    !
                                    !
                                    !
                     --------------------------------
                     ! пронаблюдать, как изменяются !
                     ! во  времени  размеры рабочих !
                     !           наборов            !
                     --------------------------------
                                    !
                                    !
                                    !
                     --------------------------------
                     ! проанализировать информацию  !
                     !                              !
                     -------------------------------
 
                             Рис. 11
 
 
 
 
                            - 84 -
 
                         00152-01 97 12
 
 
         Исследование чрезмерного страничного обмена
         (фаза 3)
 
                      -------
                      !  5  !
                       \   /
                         !
                         !
                ------------------------
                ! проанализировать     !
                ! информацию           !
                ------------------------
                         !
   ---------------       *
   ! изменить    !  да  * *     ! значения
   ! значения    !<----* ? *----! WSQUOTA и WSEXTENT
   ! WSQUOTA и   !      * *     ! слишком малы/велики ?
   ! WSEXTENT    !      *
   ---------------       ! нет
                         !
   ----------------      *
   !увеличить зна !  да * *     ! слишком мало процессов
   !чения WSEXTENT!<---* ? *----! выполняют заимствование
   !или уменьшить-!     * *     ! сверх значения WSQUOTA ?
   ! BORROWLIM,   !      *
   !PFRATH,GROWLIM!      ! нет        ! нужнA ли
   ----------------      !        ----! подстройка
                         !        !   ! рабочего набора ?
                         !        !                    7
   подстройка ра- !      *        *      ----------------
   бочего набора  !     * * да   * * нет ! исследовать  !
   отключена      !----* ? *----* ? *----! подстройку   !
   полностью?     !     * *      * *     ! планировщика !
                         *        *      ! памяти       !
                         ! нет    V да   ----------------
                         !   ---------------
                         !   ! установить  !
                         !   ! WSINC>0     !
                6        !   ---------------
   ----------------      *
   !проанализиро- ! нет * *      ! медленная реакция
   !вать принуди- !----* ? *-----! средств автоматической
   !тельное умень-!     * *      ! подстройки ?
   ! шение        !      *
   ----------------      ! да
                         !
                  --------------------
                  ! уменьшить        !
                  ! PFRаTH, AWSTIME, !
                  ! увеличить WSINC  !
                  --------------------
 
                             Рис. 12
 
 
 
 
 
 
 
 
                            - 85 -
 
                         00152-01 97 12
 
 
        Исследование чрезмерного страничного обмена
     (фаза 4)
 
                              -------
                              !  6  !
                               \   /
                                 !
                                 !
                      -----------------------
                      ! проанализировать    !
                      ! принудительное      !
                      ! уменьшение          !
                      -----------------------
                                 !
               ------------      !
               ! задать   !      !
               ! WSINC>0  !      !
               ! PFRATL>0 !      !
               ------------      !
                     !           !
                     ! да        !
                     !           !
   нужно ли    !     *           *
   принудитель-!    * *   да    * *     !средства принудитель-
   ное умень-  !---* ? *<------* ? * ---!ного уменьшения
   шение?      !    * *         * *     !отключены ?
                     *           *
                     !           !
            7        ! нет       ! нет
           -------------------   !
           ! исследование под!   !
           !стройки планиров-!   !
           !щика памяти      !   !
           -------------------   !
                                 *
           -------------    да  * *     ! размеры рабочих
           ! задать    !<------* ? * ---! наборов
           ! PFRATL=0  !        * *     ! колеблюбся ?
           -------------         *
                                 ! нет
                                 !
     ----------------            *      ! автоматическая
     ! исследовать  !      нет  * *     ! подстройка рабо-
     ! подстройку   !<---------* ? * ---! чего набора слиш-
     ! планировщика !           * *     ! ком уменьшает
     ! памяти       !            *      ! его размер ?
     ----------------            !
                                 ! да
                      --------------------
                      ! уменьшение       !
                      ! WSDEC и PFRATL   !
                      --------------------
 
                             Рис. 13
 
 
 
 
 
 
 
                            - 86 -
 
                         00152-01 97 12
 
 
        4.2.1.4. Анализ параметров WSDEFAULT, WSQUOTA  и
 
                 WSEXTENT
 
 
 
        Для сокращения числа возможных причин  слишком  малого
 
   общего об'ема (размера) рабочих наборов, сначала просматри-
 
   вается распределение на системе размеров  рабочих  наборов.
 
   Это нужно для того, чтобы приобрести некоторое  представле-
 
   ние о загрузке системы и о том, для каких процессов слишком
 
   мало памяти. Это возможно при следующих действиях:
 
 
        1)     необходимо     выдать      команду      MONITOR
 
   PROCESSES/TOPFAULT чтобы узнать, для каких процессов наблю-
 
   даются отказы из-за того, что слишком малы размеры их рабо-
 
   чих наборов;
 
 
        2)   необходимо    воспользоваться    командой    SHOW
 
   PROCESS/CONTINUOUS чтобы  узнать,  что  делают  процессы  с
 
   большим уровнем отказов и сколько памяти они используют;
 
 
        3) необходимо посмотреть, сколько памяти занимают дру-
 
   гие более крупные процессы, для чего  требуется  воспользо-
 
   ваться командами SHOW SYSTEM и MONITOR PROCESSES.
 
 
        Возможно, что одному крупному процессу (может  и  нес-
 
   кольким) не требуется столько памяти,  сколько  им  исполь-
 
   зуется. Если уменьшить  значения  параметра  WSQUOTA  и/или
 
   WSEXTENT, другие процессы смогут использовать память, зани-
 
   маемую крупным процессом в данный момент (см.п.5.2).
 
 
        Чтобы делать какие-то выводы, необходимо больше  знать
 
   о поведении процесса по мере роста и уменьшения размера его
 
   рабочего набора. Для этой цели  необходимо  воспользоваться
 
 
 
                            - 87 -
 
                         00152-01 97 12
 
 
   командой MONITOR PROCESSES и лексической функцией F$GETJPI.
 
 
        Чтобы следить за текущими значениями в процессе работы
 
   процесса, необходимо выполнить следующие действия:
 
 
        1) заметить идентификатор  процесса  (PID)  по  выводу
 
   команды MONITOR PROCESSES;
 
 
        2) убедится в том, что обладаем привилегией WORLD;
 
 
        3) для каждого из  процессов  со  значительным  числом
 
   отказов из тех, которые желательно  исследовать,  запросить
 
   следующие характеристики:
 
 
          - размер квоты рабочего набора;
 
 
          - значение счетчика страниц процесса;
 
 
          - значение счетчика глобальных страниц;
 
 
          - значение экстента рабочего набора.
 
 
        Чтобы запросить эти  характеристики,  в  кавычках  (")
 
   необходимо задать идентификатор процесса (PID) в ниже  при-
 
   водимом примере:
 
 
        П_р_и_м_е_р.
 
        WSQUOTA = F$GETJPI("PID","WSQUOTA")
        SHOW SYMBOL WSQUOTA
        WSSIZE = F$GETJPI("PID","WSSIZE")
        SHOW SYMBOL WSSIZE
        PPGCNT = F$GETJPI("PID","PPGCNT")
        SHOW SYMBOL PPGCNT
        GPGCNT = F$GETJPI("PID","GPGCNT")
        SHOW SYMBOL GPGCNT
        WSEXTENT = F$GETJPI("PID","WSEXTENT")
        SHOW SYMBOL WSEXTENT
 
 
        П_р_и_м_е_ч_а_н_и_е. Необходимо написать программу или
 
   командную процедуру, которая запрашивает идентификатор про-
 
 
                            - 88 -
 
                         00152-01 97 12
 
 
   цесса, форматирует и выводит получаемую в  результате  ука-
 
   занных команд информацию.
 
 
        Об'ект лексической  функций  PPGCNT  выражает  счетчик
 
   страниц процесса, тогда как GPGCNT  выражает  счетчик  гло-
 
   бальных страниц. Эти значения необходимы  для  того,  чтобы
 
   оценить, насколько  полон  список  рабочего  набора.  Сумма
 
   PPGCNT и GPGCNT - это фактический об'ем используемой  памя-
 
   ти. Она  всегда  должна  быть  меньше  или  равна  значению
 
   WSSIZE. Опрашивая фактический об'ем памяти при работе  про-
 
   цессов, можно начать давать оценку того,  насколько  удачны
 
   значения WSQUOTA и WSEXTENT для каждого процесса.
 
 
        Если значения  WSQUOTA  и  WSEXTENT  либо  неоправдано
 
   ограничены, либо слишком велики, тогда  их  следует  подст-
 
   роить.  Далее  следует  выполнить  действия,  описанные   в
 
   (п.5.2.4).
 
 
 
        4.2.1.5. Блокировка  автоматической   подстройки
 
                 рабочего набора
 
 
 
        Следует исследовать состояние автоматической подстрой-
 
   ки рабочих наборов. Для этого проверяются значения  систем-
 
   ного параметра WSINC. Если  окажется,  что  значение  WSINC
 
   больше нуля, это означает, что в действительности  задейст-
 
   вована автоматическая  подстройка  рабочих  наборов  (более
 
   точно, включена в работу та  часть  средств  автоматической
 
   подстройки рабочих наборов, которая обеспечивает рост  раз-
 
   меров рабочих наборов). Одновременно следует проверить,  не
 
   равны ли  нулю  также  WSDEC  и/или  PFRATL.  Если  задание
 
   WSINC=0 приводит к полному отключению  механизма  автомати-
 
 
                            - 89 -
 
                         00152-01 97 12
 
 
   ческой подстройки рабочих наборов, то задание PFRATL=0 (при
 
   том WSINC больше нуля), будет блокировать только  ту  часть
 
   автоматической подстройки,  которая  обеспечивает  принуди-
 
   тельное сокращение размеров рабочих наборов.
 
 
        Если заблокирована автоматическая подстройка  рабочего
 
   набора, процессы не могут увеличивать размеры своих рабочих
 
   наборов. Будет наблюдаться случай, что,  хотя  у  процессов
 
   значения WSQUOTA выше их значений WSDEFAULT, для  тех  про-
 
   цессов, которые в данный момент активны (выполняют какую-то
 
   вычислительную работу), счетчик размера рабочего набора  не
 
   выше их значений WSDEFAULT. Одновременно система испытывает
 
   интенсивный страничный отказ. Следует деблокировать автома-
 
   тическую подстройку рабочих наборов, сделав значение  WSINC
 
   большим нуля, чтобы стала возможной операция роста  размера
 
   рабочего набора (п.5.2.10).
 
 
 
        4.2.1.6. Эффективность автоматической подстройки
 
                 рабочего набора
 
 
 
        При включенной автоматической подстройке рабочих набо-
 
   ров, имеются четыре варианта, в которых она может  работать
 
   на уровне, ниже оптимального.  Следует  выделять  следующие
 
   варианты:
 
 
        1) автоматическая подстройка рабочих наборов может  не
 
   достаточно быстро  реагировать  на  возросшие  потребности,
 
   т.е. при значительном росте числа страничных отказов разме-
 
   ры рабочих наборов растут не достаточно быстро  до  сравни-
 
   тельно больших значений;
 
 
 
 
                            - 90 -
 
                         00152-01 97 12
 
 
        2) автоматическая подстройка рабочих наборов с  прину-
 
   дительным уменьшением (деблокированным) может вызывать зна-
 
   чительные колебания размеров рабочих наборов;
 
 
        3) автоматическая подстройка рабочих наборов с  дебло-
 
   кированным принудительным  уменьшением  может  приводить  к
 
   быстрому сокращению размеров рабочих наборов,  что  в  свою
 
   очередь вызовет излишний страничный обмен;
 
 
        4) автоматическая подстройка рабочих наборов не произ-
 
   водит уменьшения рабочих наборов, когда это возможно, из-за
 
   того, что заблокировано средство  принудительного  уменьше-
 
   ния.
 
 
        Автоматическая подстройка рабочих наборов не реагирует
 
   на возросшие  потребности.  Если  воспользоваться  командой
 
   SHOW PROCESS/CONTINUOUS  для  тех  процессов,  для  которых
 
   команда  MONITOR  PROCESSES/TOPFAULT  указывает  наибольшее
 
   число страничных отказов, то окажется,  что  автоматическая
 
   подстройка рабочих наборов не увеличивает размеры их  рабо-
 
   чих наборов достаточно быстро в соответствии с их отказами.
 
   Если были изменены по отношению к действующим по  умолчанию
 
   значения WSINC, PFRATH или AWSTIME, следует восстановить их
 
   исходные значения и рассмотреть вопрос о подстройке  значе-
 
   ний WSDEF и WSQUO для "ущемленных" процессов.
 
 
        Автоматическя подстройка  с  деблокированным  принуди-
 
   тельным уменьшением приводит к колебаниям размеров  рабочих
 
   наборов. Использование средства принудительного  уменьшения
 
   в составе автоматической подстройки рабочих наборов вызовет
 
   переход процессов в  режим  колебаний,  в  котором  размеры
 
   рабочих наборов никогда не стабилизируются, а будут продол-
 
 
                            - 91 -
 
                         00152-01 97 12
 
 
   жать расти и уменьшаться, что будет сопровождаться странич-
 
   ными отказами. Если обнаружится данная ситуация в результа-
 
   те наблюдения за вызовом команды  SHOW  PROCESS/CONTINUOUS,
 
   следует заблокировать принудительное уменьшение,  установив
 
   PFRATL=0 (п.5.2.7).
 
 
        Автоматическая подстройка рабочих наборов  приводит  к
 
   слишком быстрому сокращению их размеров. Из вывода  команды
 
   SHOW PROCESS/CONTINUOUS можно определить, слишком ли быстро
 
   происходит процесс сокращения размеров  рабочих  наборов  в
 
   результате работы средства  принудительного  уменьшения  из
 
   автоматической подстройки рабочих наборов. Следует рассмот-
 
   реть вопрос о сокращении значения  WSDEC  и  об  уменьшении
 
   значения PFRATL (п.5.2.8).
 
 
        Для автоматической подстройки рабочих наборов требует-
 
   ся, чтобы  было  деблокировано  принудительное  уменьшение.
 
   Может наблюдаться такая ситуация, когда один или  несколько
 
   процессов быстро достигнут весьма больших размеров  рабочих
 
   наборов, а затем будут удерживать в течение некоторого про-
 
   межутка времени размер в этом пределе.  Этим  процессам  не
 
   должно требоваться непрерывно столь много  памяти.  И  хотя
 
   такие процессы вовсе не подвержены страничным отказам, дру-
 
   гие процессы страдают от страничных отказов. Следует прове-
 
   рить, отключено ли принудительное  уменьшение  (PFRATL=0  и
 
   дополнительно WSDEC=0) (см.рис.13). При том характере  заг-
 
   рузки системы, который наблюдается в  системе,  может  ока-
 
   заться, что принудительное уменьшение будет приводить почти
 
   к улучшению, так как оно  производится  на  основе  квантов
 
   времени, а не по загрузке. Можно деблокировать принудитель-
 
   ное уменьшение в соответствии с предложениями (п.4.2.9).
 
 
                            - 92 -
 
                         00152-01 97 12
 
 
        Если никаких улучшений не наблюдается, следует  отклю-
 
   чить принудительное уменьшение. Предположение  о  том,  что
 
   можно уменьшить размер рабочего  набора,  было  не  верным.
 
   Если же в результате  действительно  наблюдаются  колебания
 
   размеров и нет признаков того, что  они  стабилизируются  в
 
   течение небольшого промежутка времени, следует вновь отклю-
 
   чить  принудительное  уменьшение.  Вместо   этого   следует
 
   использовать другие способы планирования таких процессов  с
 
   тем, чтобы они поменьше вызывали нарушений в загрузке  сис-
 
   темы.
 
 
 
        4.2.1.7. Подстройка планировщика памяти
 
 
 
        Возможно,  на  вычислительной  системе  были  причины,
 
   вследствие которых WSINC был сделан равным нулю для  отклю-
 
   чения автоматической подстройки рабочих наборов. Так,  нап-
 
   ример, вполне понятными могут быть прикладные задачи.  Пот-
 
   ребности в  памяти  каждого  образа  могут  быть  настолько
 
   предсказуемыми, что можно точно задать значения  параметров
 
   WSQUOTA и WSDEFAULT. Возможно, что в случае  деблокирования
 
   автоматической подстройки рабочих наборов на вычислительной
 
   системе, пользователей удовлетворяет используемый системный
 
   набор   соответствующих   значений   параметров    WSQUOTA,
 
   WSEXTENT, PFRATH, BORROWLIM и GROWLIM. В  таких  ситуациях,
 
   возможно, виновником чрезмерного страничного обмена  оказы-
 
   вается подстройка  планировщика  памяти.  Может  быть,  что
 
   подстройка на втором уровне окажется слишком сильной.
 
 
        Рис.14 иллюстрирует исследование  проблем  страничного
 
   обмена, вызванных подстройкой планировщика памяти.  Следует
 
 
 
                            - 93 -
 
                         00152-01 97 12
 
 
   определить те процессы, у которых наиболее  высока  частота
 
   страничных  отказов.  Требуется  воспользоваться  командами
 
   MONITOR PROCESSES/TOPFAULT и MONITOR PROCESSES. Выбрав про-
 
   цессы с наибольшим числом страничных отказов и  внимательно
 
   изучив   их    поведение    с    помощью    команды    SHOW
 
   PROCESS/CONTINUOUS,  можно  определить,   насколько   много
 
   активных процессов, для  которых  следует  вывести  размеры
 
   рабочих наборов, которые соответствуют:
 
 
          - их значению WSQUOTA;
 
 
          - общему для системы значению, заданному посредством
 
            системного параметра SWPOUTPGCNT.
 
 
        Обнаружение любого из  таких  процессов  указывает  на
 
   слишком сильную подстройку планировщика памяти.
 
 
        В этом случае требуется рассмотреть вопрос об увеличе-
 
   нии значения системного параметра SWPOUTPGCNT, одновременно
 
   оценив потребность увеличения значения системного параметра
 
   LONGWAIT. Планировщик памяти использует  параметр  LONGWAIT
 
   для выделения тех процессов, которые действительно не зани-
 
   мают процессора.  Если  значение  LONGWAIT  задает  слишком
 
   короткий промежуток времени, планировщик памяти может  вре-
 
   менно выгрузить стоящие процессы, которые в противном  слу-
 
   чае вскоре бы стали вновь вычислительными  (п.5.2.11).  Для
 
   вычислительных процессов та же ситуация  может  возникнуть,
 
   если значение параметра DORMANTWAIT задано слишком малым.
 
 
 
 
 
 
 
 
 
 
                            - 94 -
 
                         00152-01 97 12
 
 
        Исследование чрезмерного страничного обмена
      (фаза 5)
 
                             -------
                             !  7  !
                              \   /
                                V
                                !
                                !
                       --------------------
                       ! исследование     !
                       ! подстройки       !
                       ! планировщика     !
                       ! памяти           !
                       --------------------
                                !
                                !
                                !
                                V
         ---------------        *
         ! увеличение  !       * *       ! слишком большая
         !  значения   !   да *   *      ! подстройка
         ! SWPOUTPGCNT,!<----*  ?  * ----! планировщика
         ! LONGWAIT,   !      *   *      ! памяти ?
         ! DORMANTWAIT !       * *
         ---------------        *
                                ! нет
                                !
                                !
                                V
                    -------------------------
                    !потребности превосходят!
                    !возмозности. Уменьшить !
                    !потребности или доба-  !
                    !вить  памяти           !
                    -------------------------
 
                             Рис. 14
 
 
 
        4.2.2. Анализ признака обмена рабочих наборов
 
 
 
        Опыт эксплуатации системы МОС ВП  показал,  что  обмен
 
   рабочих наборов активных  процессов  менее  желателен,  чем
 
   умеренный страничный обмен. И это действительно так, потому
 
   что для обмена рабочих наборов используется доступ к  диску
 
   (что верно только в случае аппаратных страничных  отказов).
 
   При обмене рабочих наборов каждый процесс  и  его  контекст
 
   записываются на диск - событие, которое  обычно  происходит
 
 
 
                            - 95 -
 
                         00152-01 97 12
 
 
   медленнее, чем в среднем операция страничного  обмена,  так
 
   как процесс содержит больше  блоков.  В  системе  возникают
 
   дополнительные  задержки  (накладные  расходы)  при  обмене
 
   рабочих наборов, вызванные остановкой и запуском процессов.
 
   Интенсивное использование дискового ресурса может приводить
 
   к тому, что планировщик памяти создаст дополнительные точки
 
   входа в очереди на свой диск, тем самым  задерживая  другие
 
   процессы, которые нуждаются в доступе к тому же диску.
 
 
        Если источником является скорость  работы  процессора,
 
   можно принять решение об уменьшении обмена рабочих  наборов
 
   и о том, чтобы в системе в основном  происходил  страничный
 
   обмен. Сначала требуется убедиться в том, что обмен рабочих
 
   наборов в действительности сказывается на производительнос-
 
   ти при загрузке.
 
 
 
        4.2.3. Обмен рабочих наборов
 
 
 
        Отрицательные  последствия  обмена   рабочих   наборов
 
   проявляются в значительном потреблении ресурса центрального
 
   процессора и диска. Он появляется во вред остальным процес-
 
   сам. Для выделения любого признака, который  свидетельство-
 
   вал бы о том, что обмен рабочих наборов вреден,  необходимо
 
   воспользоваться следующими командами:
 
 
          - следует  выдать  команду  MONITOR  I0  диалогового
 
            командного языка и проанализировать скорость  заг-
 
            рузки с диска. Если скорость нулевая,  отсутствует
 
            обмен рабочих наборов и не следует  далее  продол-
 
            жать данную последовательность проверок;
 
 
 
 
                            - 96 -
 
                         00152-01 97 12
 
 
          - по выводу команды MONITOR PROCESSES/TOPCPU необхо-
 
            димо проверить, не занимает ли значительную  часть
 
            времени обслуживания со стороны центрального  про-
 
            цессора процесс NULL (нулевой). Если  это  обнару-
 
            жится в сочетании с обменом рабочих наборов,  пос-
 
            ледний (обмен рабочих наборов) определенно  вреден
 
            и нуждается в корректировке;
 
 
          - следует выдать команду MONITOR STATES  диалогового
 
            командного языка. Если наблюдается не  много  про-
 
            цессов в состоянии сомо, обмен рабочих наборов  не
 
            влияет на работу центрального процессора.
 
 
        Если обмен рабочих наборов на системе прошел все (три)
 
   проверки, можно сделать вывод, что обмен рабочих наборов не
 
   столь вреден на системе, чтобы его следовало исключить.
 
 
        Такие признаки вредной активности  по  обмену  рабочих
 
   наборов, как чрезмерное использование центрального  процес-
 
   сора или диска, требуют некоторого внимания. (рис.15, 16  и
 
   17 подытоживают исследование обмена рабочих наборов). Можно
 
   преобразовать систему в такую систему,  которая  занимается
 
   только страничным обменом  и  лишь  изредкаобменом  рабочих
 
   наборов. Это выполняется следующим образом:
 
 
          - понижается    значение    системного     параметра
 
            SWPOUTPGCNT;
 
 
          - в качестве значения системного параметра BALSETCNT
 
            задается значение, которое на два меньше  значения
 
            системного параметра MAXPROCESSCNT;
 
 
          - добавляется память.
 
 
                            - 97 -
 
                         00152-01 97 12
 
 
        Дополнительно можно решить, что следует уменьшить кво-
 
   ты рабочих наборов процессов (в файле авторизации пользова-
 
   теля).
 
 
        Даже если так настроить систему, что она  редко  будет
 
   выполнять обмен рабочих наборов, в системе нужно иметь файл
 
   обмена рабочих  наборов.  Однако,  требование  по  размерам
 
   такого файла уменьшаются. Если пространство на диске  поль-
 
   зуется значительным спросом, можно уменьшить потребности  в
 
   месте для файла обмена рабочих наборов до 75  процентов  от
 
   его  прежнего  значения  с  помощью   командной   процедуры
 
   AUTOGEN.
 
 
        Если система проявляет признаки вредного обмена  рабо-
 
   чих наборов и  производительность  уменьшилась,  существуют
 
   две возможные причины:
 
 
        1) нет свободных участков в балансном наборе. Если нет
 
   свободных участков в балансном наборе, необходимо  восполь-
 
   зоваться командой SHOW MEMORY для проверки числа  свободных
 
   участков балансного набора. Если их число мало,  а  сущест-
 
   вует свободная память (что можно также проверить с  помощью
 
   команды SHOW MEMORY), следует уменьшить обмен рабочих набо-
 
   ров, увеличив системный параметр BALSETCNT;
 
 
        2) не достаточно свободной  памяти  для  всех  рабочих
 
   наборов. Если имеются свободные участки балансного  набора,
 
   но сумма размеров рабочих наборов превышает размер величины
 
   доступной памяти, то не  достаточно  свободной  памяти  для
 
   одновременного обслуживания  всех  рабочих  наборов.  Такое
 
   положение может явиться следствием одного или нескольких из
 
   следующих обстоятельств:
 
 
                            - 98 -
 
                         00152-01 97 12
 
 
          - неверное разбиение памяти на разделы  из-за  того,
 
            что страничная кэш-память слишком большого  разме-
 
            ра;
 
 
          - ситуации, когда ряд пользователей использует неоп-
 
            равданно большие об'емы памяти;
 
 
          - потребности, которые  просто  слишком  велики  при
 
            данных об'емах.
 
 
        Требуется воспользоваться командой SHOW MEMORY,  чтобы
 
   определить  общий  используемый  об'ем  физической  памяти,
 
   который  используется  системой  МОС  ВП.  Памяти,  который
 
   используется системой МОС  ВП.  Далее  следует  определить,
 
   сколько памяти выделено под страничную  кэш-память,  сложив
 
   значения двух системных параметров FREEGOAL  и  MPW_THRESH.
 
   Если размер кэш-памяти более 15 процентов от общего  об'ема
 
   используемой памяти, то кэш-память слишком велика.
 
 
        В тех случаях, когда система серьезно расстроена, ока-
 
   зывается, что страничная кэш-память слишком большого разме-
 
   ра (возможно, была обойдена процедура AUTOGEN). В  п.5.2.14
 
   описывается, как уменьшить размер страничной  кэш-памяти  с
 
   помощью  системных  параметров   MPW_LOLIMIT,   MPW_THRESH,
 
   FREEGOAL и FREELIM.
 
 
        Если выяснится, что страничная кэш-память  не  слишком
 
   велика, либо после уменьшения ее размера окажется, что  все
 
   еще не достаточно свободной памяти для всех  рабочих  набо-
 
   ров, необходимо исследовать  другие  потенциальные  причины
 
   возникшей проблемы.
 
 
 
 
 
                            - 99 -
 
                         00152-01 97 12
 
 
        Исследование обмена рабочих наборов
       (фаза 1)
                             -------
                             !  8  !
                              \   /
                                V
                                !
                      ----------------------
                      ! исследовать работу !
                      ! в связи с обменом  !
                      ! рабочих наборов    !
                      ----------------------
                                !
                    11          V
   --------------------         *
   ! исследование,    !  нет  *   *     ! интенсивный
   ! почему мало      !<----*   ?   * --! обмен рабочих
   ! свободной памяти !       *   *     ! наборов ?
   --------------------         *
                                ! да
                                V
   --------------------         *
   ! увеличить значе- !  нет  *   *     ! имеются свободные
   ! ние BALSETCNT    !<----*   ?   * --! участки в баланс-
   --------------------       *   *     ! ном наборе ?
                                *
                                ! да
                                V
    ------------------          *
    !ошибочный случай!   нет  *   *    ! достаточно памя-
    !                ! <----*   ?   *--! ти для всех ра-
    ------------------        *   *    ! бочих наборов
                                *
                                !
                                V
   --------------------         *
   ! уменьшить размер !   да  *   *     ! слишком большого
   !  страничной      !<----*   ?   * --! размера страничная
   !  кэш-памяти      !       *   *     ! кэш-памяти ?
   --------------------         *
                                ! нет
                    9           V
   --------------------         *
   !исследование  про-!  нет  *   *     ! крупные процессы,
   !цессов, находящих-!<----*   ?   * --! связанные с вычисле-
   !ся в  состоянии   !       *   *     ! ниями, поглашают
   !  ожидания        !         *       ! системные ресурсы ?
   --------------------         ! да
                                V
                    --------------------------------
                    ! уменьшение DORMANTWAIT       !
                    ! приостановка процессов       !
                    ! предупредительные регулировки!
                    --------------------------------
 
                             Рис. 15
 
 
 
 
 
                            - 100 -
 
                         00152-01 97 12
 
 
        Исследование обмена рабочих наборов
     (фаза 2)
                        -------
                        !  9  !
                         \   /
                           V
                           !
                   -----------------
                   ! исследование  !
                   !  процесса     !
                   !  ожидания     !
                   -----------------
                           !               ! вспомогательный
                           !            ---! управляющий
                           !            !  ! процесс диска ?
                           V            !
    есть  процес-!         *            *       --------------
    сы, которые  !       *   *   да   *   *  да ! подстройка !
   простаивают и !---- *   ?   *--->*   ?   *-->! SWAPFLGS   !
   не выгружались!       *   *        *   *     !перезагрузка!
                           *            *       !  системы   !
                        нет!            ! нет   --------------
                           !            V
                           !   ---------------------
                           !   !деблокировка обмена!
                           *   !рабочих наборов    !
                           V   ---------------------
                           !
   ---------------         *
   !слишком много!       *   *      ! счетчики рабочего
   ! параллельных!<----*   ?   * ---! набора содержат
   !процессов или!       *   *      ! слишком большие
   ! запросов    !         *        ! значения ?
   ---------------         ! да
               10          !                  V
   ---------------         *
   !не является ли!  нет *   *      ! значения счетчиков
   ! большинство  !<---*   ?   *----! рабочих наборов
   ! процессов вы-!      *   *      ! превышают значения
   !числительными !        *        !  WSQUOTA ?
   ----------------        ! да
                           !
                   ----------------------
                   !увеличение значения !
                   !параметра BORROWLIM!
                   ----------------------
 
                             Рис. 16
 
 
 
 
 
 
 
 
 
 
 
 
 
                            - 101 -
 
                         00152-01 97 12
 
 
         Исследование обмена рабочих наборов
       (фаза 3)
                 -------
                 !  10 !
                  \   /
                    V
                    !
             ----------------
             !определение   !
             !вычислительных!       !не слишком ли велико
             !процессов     !   ----!значение параметра
             ----------------   !   !SWPOUTPQCNT ?
                    !           !
                    V           !      ---------------------
                    *           *      !уменьшение значений!
                   * *нет      * *нет  !WSQUOTA, WSINT;    !
   процессы  !----* ? *------>* ? *--->!увеличение значения!
   вычисли-  !     * *         * *     !PFRATH; деблокиро- !
   тельные  ?!      *           *      !вание AWSA         !
                    ! да        ! да   ---------------------
                    !           !
                    !           !   -------------------------
                    !           !   !не эффективна подстрой-!
                    !           !-->!ка планировщика памяти !
                    !               !уменьшить WSQUOTA      !
                    V               -------------------------
                    *
   процесс    !    * * нет
   COMO с ос- !---* ? *---          ! имеются ли страничные
   новным при-!    * *   !          ! отказы, отличные от
   оритетом ? !     *    !      ----! глобальных допустимых
                    !да  !      !   ! страничных отказов ?
                    !    !      !
                    !    !      *
                    !    !     * * нет ---------------------
                    !    ---->* ? *--->!уменьшить значения !
                    !          * *     !WSQUOTA, WSINC;    !
                    !           *      !увеличить значения !
                    !           ! да   !PPATH              !
                    !           !      ---------------------
                    !           !
                    !           !     ----------------------
                    !           !     !уменьшить потребнос-!
                    !           ----->!ти либо увеличить   !
                    !                 !память              !
                    V                 ----------------------
   крупные за- !    *        ----------------------------
   дания пакет-!   * * нет   !увеличить скорость обмена !
   ного режима !--* ? *----->!рабочих наборов(SWPRATE)  !
   обработки ? !   * *       !если приоритет DEFPRI     !
                    *        ----------------------------
                    ! да
                    V
          -----------------------
          !уменьшить потребности!
          !либо увеличить память!
          -----------------------
 
                             Рис. 17
 
 
                            - 102 -
 
                         00152-01 97 12
 
 
        4.2.4. Причины  расхода  недопустимых  об'емов
 
               памяти
 
 
 
        Обмен рабочих наборов может быть порожден всякий  раз,
 
   когда один или небольшое число процессов используют  память
 
   за счет других процессов. Можно установить,  использует  ли
 
   небольшое число пользователей больше об'емы памяти, проана-
 
   лизировав вывод, порожденный командой MONITOR PROCESSES.
 
 
        В данном пункте описываются причины, вследствие  кото-
 
   рых процессы расходуют недопустимые об'емы памяти.
 
 
        Крупный  вычислительный  процесс  получает  чрезмерное
 
   управление памятью. Возможны ситуации, в которых  один  или
 
   несколько крупных вычислительных процессов при низком прио-
 
   ритете "потребляют" память за счет ряда более  мелких  про-
 
   цессов. Стандартно более  мелкие  процессы  могут  пытаться
 
   выполнить  некоторый  ввод-вывод  на  терминале,  например,
 
   редактирование. Когда оперативной памяти мало, крупный про-
 
   цесс, который связан с вычислениями, менее вероятно  станет
 
   кандидатом на выгрузку из памяти, чем любой другой процесс,
 
   который находится в  состоянии  ожидания  флага  локального
 
   события. В таких ситуациях  система  МОС  ВП  для  выгрузки
 
   выберет те процессы, в которых работает редактор, как толь-
 
   ко они начнут ожидать завершения операций  ввода-вывода.  В
 
   результате процессы редактирования будут вызывать медленные
 
   реакции из-за частого обмена рабочих наборов. Командой SHOW
 
   SYSTEM возможна проверка приоритетов  и  состояния  крупных
 
   процессов.
 
 
        Требуется заметить идентификатор процесса  при  помощи
 
 
 
                            - 103 -
 
                         00152-01 97 12
 
 
   команды MONITOR PROCESSES и убедиться в  том,  что  процесс
 
   обладает привилегией WORLD. Для каждого  процесса,  который
 
   предполагается исследовать, необходимо воспользоваться лек-
 
   сической функцией F$GETJPI,  чтобы  получить  информацию  о
 
   квоте, размере рабочего набора, счетчике страниц  процесса,
 
   счетчике глобальных страниц и экстенте рабочего набора.
 
 
        Если обнаруживается, что некоторые из процессов  вышли
 
   за пределы своих квот, может потребоваться уменьшить значе-
 
   ние параметра DORMANTWAIT и следует наблюдать за производи-
 
   тельностью  системы  в  течение  некоторого  времени.  Если
 
   уменьшение значения DORMANTWAIT  окажется  не  эффективным,
 
   можно  выдать  команду  SET   PROCESS/SUSPEND   диалогового
 
   командного языка для  того,  чтобы  приостановить  крупный,
 
   нагруженный  вычислительными  операциями  процесс,  который
 
   вышел за пределы, установленные  значением  WSQUOTA.  Такое
 
   действие  представляет  быстрое   средство   восстановления
 
   активности другого процесса  (если  процесс  приостановлен,
 
   планировщик памяти может подстроить процесс  до  соответст-
 
   вующего ему значения SWPOUTPGCNT). Как только командой SHOW
 
   PROCESS/CONTINUOUS обнаружится, что процесс подстроен, воз-
 
   можно возобновить его работу.
 
 
        Следует определить основную причину  проблемы  (напри-
 
   мер, может быть, что  слишком  велика  для  процесса  квота
 
   рабочего набора) и предпринять исправляющее действие. Можно
 
   увеличить значение WSEXTENT.  Тогда  заимствованные  об'емы
 
   будут возвращены планировщиком памяти. Если  крупный,  свя-
 
   занный с вычислениями процесс, не выходит за пределы  своей
 
   квоты рабочего набора,  приостановка  процесса  может  дать
 
   временное улучшение. Как только будет продолжена работа тем
 
 
                            - 104 -
 
                         00152-01 97 12
 
 
   же процессом, он сможет начать вновь использовать память.
 
 
        Крупный процесс,  находящийся  в  состоянии  ожидания,
 
   никогда не  выгружается.  При  использовании  команды  SHOW
 
   SYSTEM может обнаружиться, что один или  несколько  крупных
 
   процессов "спят" или находятся в некотором  ином  состоянии
 
   ожидания. Для таких процессов был заблокирован обмен  рабо-
 
   чих наборов. Для  каждого  процесса  можно  воспользоваться
 
   командой  SHOW  PROCESS/CONTINUOUS  для  определения  того,
 
   "избегает" ли выгрузки  какой-либо  неактивный  процесс.  В
 
   качестве следующего шага с помощью  команды  ANALYZE/SYSTEM
 
   диалогового командного языка можно сравнить строку  состоя-
 
   ния процесса, порожденную командой SHOW  PROCESS  программы
 
   SDA с состоянием процесса по PSWAPM.
 
 
        Если обнаружится процесс, который не допускает выгруз-
 
   ки, хотя явно использует большие об'емы памяти  находясь  в
 
   неактивном состоянии, можно сделать вывод, что следует  для
 
   такого процесса  разрешить  (деблокировать)  обмен  рабочих
 
   наборов. Деблокирование обмена рабочих наборов  предоставит
 
   другим процессам более равные возможности  в  использовании
 
   памяти в условиях, когда скудные ресурсы памяти  и  крупный
 
   процесс не активен. Большинство процессов реального времени
 
   не должны быть выгружаемыми.  Поэтому  необходимо  выяснить
 
   причины, почему процесс не был  выгружаемым.  Для  выгрузки
 
   процесса   необходимо    воспользоваться    командой    SET
 
   PROCESS/SWAPPING, требующей привилегии PSWAPM.
 
 
        Если процесс-нарушитель - это  вспомогательный  управ-
 
   ляющий процесс диска (только для уровня 1 файловой структу-
 
   ры), следует соответствующим образом  установить  системный
 
 
 
                            - 105 -
 
                         00152-01 97 12
 
 
   параметр ACP_SWAPFIGS и перезагрузить систему.
 
 
        Слишком много процессов конкурирует  за  право  занять
 
   свободную память. Если из собранной с  помощью  лексической
 
   функции F$GETJPI информации следует, что счетчики  рабочего
 
   набора (фактически занятая процессами  память)  не  велики,
 
   возможно много процессов пытается одновременно  параллельно
 
   выполняться на доступной  памяти.  Следует  убедиться,  что
 
   ACP_XQP_RES установлен в 1  (значение  по  умолчанию),  что
 
   разрешает совместное использование страниц  XQP.  Возможные
 
   случаи решения:
 
 
          - уменьшить системный параметр MAXPROCESSCNT,  кото-
 
            рым задается  количество  параллельно  выполняемых
 
            процессов;
 
 
          - если MAXPROCESSCNT уже представляет то число поль-
 
            зователей, которому следует обеспечить одновремен-
 
            ный доступ к системе, уменьшение MAXPROCESSCNT  не
 
            являются выходом из положения;
 
 
          - перепрограммировать прикладную программу;
 
 
          - добавить памяти.
 
 
        Слишком велико заимствование.  Для  процесса,  которые
 
   занимают наибольшие об'емы памяти, требуется воспользовать-
 
   ся командой SHOW PROCESS/CONTINUOUS для определения,  рабо-
 
   тают ли процессы в пределах области, отведенной  параметром
 
   WSEXTENT. Если этого  нет,  необходимо  увеличить  значения
 
   параметров BORROWLIM и/или GROWLIM. Увеличение обоих  пара-
 
   метров исключает резервы при скудных ресурсах памяти.  Уве-
 
   личением данных значений будет сокращена частота  заимство-
 
 
                            - 106 -
 
                         00152-01 97 12
 
 
   ваний для процессов с наиболее крупными рабочими  наборами,
 
   в особенности, в те моменты, когда загрузка достигает пико-
 
   вых значений.
 
 
        Не эффективна  подстройка  планировщика  памяти.  Если
 
   памяти не достаточно для обслуживания всех рабочих  наборов
 
   активных процессов,  причиной  может  быть  не  эффективная
 
   подстройка планировщика памяти.
 
 
        В таком случае может оказаться слишком большим  значе-
 
   ние параметра SWPOUTPGCNT. Следует сравнить значение  пара-
 
   метра  SWPOUTPGCNT  с  фактически  наблюдаемыми  значениями
 
   счетчиков  рабочих   наборов.   При   уменьшении   значения
 
   SWPOUTPGCNT  увеличиваются  об'емы  затребываемой   обратно
 
   (возвращаемой) памяти при каждой инициации подстройки  вто-
 
   рого уровня. Данный параметр наиболее  эффективно  преобра-
 
   зует систему из системы с обменом рабочих наборов в систему
 
   со страничным обменом и  наоборот.  При  снижении  значения
 
   SWPOUTPGCNT имеется вероятность задействования интенсивного
 
   страничного обмена. Если  возникнет  такая  ситуация  и  не
 
   удается  достигнуть  удовлетворительного  равновесия  между
 
   обменом  рабочих  наборов  и  страничным  обменом,  следует
 
   уменьшить потребности или добавить памяти.
 
 
        Много рабочих наборов слишком большого  размера.  Если
 
   параметр SWPOUTPGCNT не слишком  велик,  определилось,  что
 
   рабочие наборы достаточно велики, но не превышают квоты  и,
 
   что несколько процессов вычислительные.  Возможно,  обнару-
 
   жится, что имеет место  один  или  несколько  из  следующих
 
   признаков:
 
 
          - в ряде случаев слишком велики квоты рабочих  набо-
 
 
                            - 107 -
 
                         00152-01 97 12
 
 
            ров;
 
 
          - параметр WSINC слишком велик или  параметр  PFRATH
 
            слишком мал;
 
 
          - слишком много рабочих наборов блокировано в памяти
 
            и не может быть выгружено.
 
 
        Первые два признака могут быть определены по собранной
 
   информации. Если слишком много  пользователей  использовало
 
   команду SET PROCESS/NOSWAPPING в целях предотвращения  выг-
 
   рузки своих процессов (даже тех, которые не являются вычис-
 
   лительными),   необходимо   вызвать   лексическую   функцию
 
   F$GETJPI для процессов,  вызывающих  подозрение.  (подозри-
 
   тельными  являются  такие  процессы,  которые   в   течение
 
   какого-то  времени  остаются  в  состоянии  ожидания  флага
 
   локального события, когда система ведет  интенсивный  обмен
 
   рабочих наборов. Данный признак можно наблюдать  с  помощью
 
   команды SHOW SYSTEM). Если флаг  PSWAPM  в  поле  состояния
 
   (STS) в единичном состоянии, процесс нельзя выгружать. Фла-
 
   ги состояния описываются в документе [4].
 
 
        Можно  воспользоваться  командой  ANALYZE/SYSTEM   для
 
   запуска анализатора системного дампа  (SDA).  Дамп  исполь-
 
   зуется для получения информации по подозрительным процессам
 
   (при помощи команды SHOW  PROCESS).  Те  процессы,  которые
 
   нельзя выгружать, сверху при выводе в строке  будут  содер-
 
   жать значение PSWARM.
 
 
        Если один или несколько процессов следует сделать выг-
 
   ружаемыми, следует найти  компромисс  и  взаимопонимание  с
 
   пользователями (если соглашение достигнуто, но пользователи
 
 
 
                            - 108 -
 
                         00152-01 97 12
 
 
   его не придерживаются, можно снять с пользователей привиле-
 
   гии PSWARM и/или SETPRV с помощью квалификатора /PRIVILEGES
 
   обслуживающей программы авторизации пользователей в  систе-
 
   ме).
 
 
        Возникает интенсивный обмен  с  диском.  Если  большое
 
   число процессов являются вычислительными, следует убедиться
 
   в том, что не начался интенсивный обмен с диском в  резуль-
 
   тате выгрузки процессов, пока они находятся в режиме вычис-
 
   лений. (интенсивный обмен с диском означает, что происходит
 
   чрезмерное  считывание  и  запись  информации  на  диск,  в
 
   результате чего достигается малый эффект. В  данном  случае
 
   это выгрузка процессов, за которой быстро следует  загрузка
 
   тех же процессов).
 
 
        Процессы, которые при выводе  команды  MONITOR  STATES
 
   помечены, как находяшиеся в состоянии выгрузки и вычислений
 
   (сомо) - это те процессы, которые завершили ожидание  флага
 
   локального события и готовы быть загруженными в память.  На
 
   системе без обмена рабочих наборов  такими  являются  новые
 
   процессы. Может оказаться, что среди  выгруженных  вычисли-
 
   тельных процессов есть и такие, которые  были  выгружены  в
 
   процессе выполнения вычислительных операций. Такой  нежела-
 
   тельный обмен рабочих наборов является вредным.
 
 
        Должна  существовать  конкретная  проблема   загрузки,
 
   которая вызывает такую ситуацию. Предположим,  что  имеется
 
   некоторое число процессов, связанных с вычислениями,  кото-
 
   рые стремятся  выполняться  параллельно.  Пока  выполняются
 
   вычисления, процессы не будут  изменять  своего  состояния.
 
   Так как они занимаются вычислениями, они избегают подстрой-
 
 
 
                            - 109 -
 
                         00152-01 97 12
 
 
   ки планировщика памяти второго уровня до значения параметра
 
   SWPOUTPGCNT. Такая ситуация может быть следствием того, что
 
   памяти становится мало, что затем может привести к принуди-
 
   тельному началу обмена рабочих наборов процессов  (загрузке
 
   и выгрузке). Всякий раз, когда выгруженный  процесс  стано-
 
   вится вычислительным, запускается планировщик,  выполняющий
 
   передиспетчеризацию. Процесс, который  выгружен  в  момент,
 
   когда он занимался вычислительными операциями, также запра-
 
   шивает немедленной  передиспетчеризации.  Если  процесс  не
 
   может получить достаточного времени на обработку  от  цент-
 
   рального процессора до того, как  он  выгружается,  и  если
 
   процессы выгружаются в процессе выполнения вычислений, воз-
 
   никает интенсивный обмен.
 
 
        Если выдать команду SHOW SYSTEM и окажется, что  много
 
   вычислительных выгруженных процессов  находятся  на  уровне
 
   своих основных приоритетов, следует проверить, не  были  ли
 
   выгружены процессы во время выполнения вычислительных  опе-
 
   раций.
 
 
        Необходимо выдать команду SHOW PROCESS/CONTINUOUS  для
 
   процессов сом и понаблюдать, не удастся  ли  им  перейти  в
 
   состояние LEF до того, как они перейдут в состояние сомо. В
 
   качестве другого варианта можно понаблюдать,  не  низка  ли
 
   частота  (скорость)  обмена  при  прямом  и  буферизованном
 
   вводе-выводе. Низкие  скорости  обмена  также  вытекают  из
 
   того, что процессы редко переходили  в  состояние  ожидания
 
   флага локального события.
 
 
        Если наблюдается признак того, что процессы выгружают-
 
   ся в процессе выполнения вычислительных операций, возможно,
 
 
 
                            - 110 -
 
                         00152-01 97 12
 
 
   что слишком много процессов, которые в значительной степени
 
   носят вычислительный характер, пытаются выполняться  парал-
 
   лельно, либо что значение DORMANTWAIT  установлено  слишком
 
   малым. Следует исключить возможные последствия  одновремен-
 
   ной работы слишком большого числа пакетной обработки  преж-
 
   де, чем пытаться регулировать частоту, с  которой  процессы
 
   загружаются в память.
 
 
        Для выяснения числа  параллельно  выполняемых  заданий
 
   пакетной обработки и обмена занимаемой ими  памяти  следует
 
   выдать команду  SHOW  SYSTEM/BATCH  диалогового  командного
 
   языка. Если можно сделать вывод о том, что число параллель-
 
   но выполняемых заданий пакетной обработки может  влиять  на
 
   производительность, можно уменьшить их запросы, изменив для
 
   очередей   пакетной   обработки   значение    квалификатора
 
   /JOB_LIMIT.  Необходимо  включить  данный  квалификатор   в
 
   команду диалогового командного языка, которая  используется
 
   для задания очереди  пакетной  обработки  (INITIALIZE/QUEUE
 
   или START/QUEUE).
 
 
        Если обнаружено  какое-либо  соперничество  за  память
 
   между крупными параллельно выполняемыми заданиями  пакетной
 
   обработки, потребуется изменить частоту, с которой  система
 
   выгружает из памяти, а затем загружает  в  память  вычисли-
 
   тельные процессы. Если системный параметр QUANTUM  выражает
 
   значение для всех прочих нагрузок в системе, можно  сделать
 
   следующий вывод. Если окажется, что текущие приоритеты про-
 
   цессов, связанных с выполнением вычислений, меньше или рав-
 
   ны значению DEFPRI, следует увеличить значение специального
 
   параметра SWPRATE для того, чтобы менее  часто  происходила
 
   загрузка в память вычислительных процессов.
 
 
                            - 111 -
 
                         00152-01 97 12
 
 
        Система занята обменом рабочих наборов, а не  странич-
 
   ным обменом. Если обнаружится большое число  вычислительных
 
   процессов, которые находяться не на уровне  своих  основных
 
   приоритетов, и если их рабочие наборы относительно  велики,
 
   но все еще не превышают установленных для них квот, следует
 
   проверить, происходит ли страничный обмен. Если  фактически
 
   страничного  обмена  нет,  может  существовать   страничный
 
   обмен, порожденный работой по обмену рабочих наборов. Опре-
 
   делить, что страничный  обмен  является  следствием  обмена
 
   рабочих наборов, можно по наличию высокого процента в стра-
 
   ничном обмене обмена, происходящего  вследствие  глобальных
 
   допустимых страничных отказов. Для оценки страничных  отка-
 
   зов  требуется  использовать  вывод,  порожденный  командой
 
   MONITOR PAGE.
 
 
        Если  большая  часть  страничного  обмена  обусловлена
 
   работой  планировщика  памяти,  производительность  системы
 
   можно улучшить (повысить), если вызвать некоторый  реальный
 
   страничный обмен за счет уменьшения размеров рабочих  набо-
 
   ров. Этим действием можно уменьшить обмен рабочих  наборов.
 
   Чтобы вызвать к работе страничный обмен,  можно  попытаться
 
   уменьшить рост при автоматической подстройке рабочих  набо-
 
   ров за счет снижения значения WSINC или увеличения значения
 
   PFRATH.
 
 
 
        4.2.5. Анализ     признака      ограниченности
 
               свободной памяти
 
 
 
        Если система работает медленно при  наличии  свободной
 
   памяти, то это значит,  что  скоро  возникнут  проблемы  со
 
 
 
                            - 112 -
 
                         00152-01 97 12
 
 
   страничным обменом или обменом рабочих наборов.  Необходимо
 
   проанализировать следующее:
 
 
          - тщательно исследовать возможности (об'емы) и срав-
 
            нить  их  с  предполагаемыми  потребностями.  Если
 
            единственным подходящим вариантом  является  заказ
 
            памяти, ее следует заказать поскорее с тем,  чтобы
 
            ее  можно  было  смонтировать   до   возникновения
 
            серьезных проблем с производительностью;
 
 
          - до решения на заказ дополнительной  памяти,  может
 
            потребоваться посмотреть, как распределена  память
 
            (см.рис.18). Возможно,  можно  извлечь  пользу  из
 
            подстройки  параметров  использования   физической
 
            памяти, сделав  большей  страничную  кэш-память  и
 
            сократив страничный обмен с диском. Для того чтобы
 
            сделать такую подстройку, может потребоваться нес-
 
            колько сократить общий об'ем рабочих наборов;
 
 
          - если пространство рабочих наборов на системе  было
 
            сделано слишком большим, обнаружен важный параметр
 
            регулировки, которую можно выполнить до того,  как
 
            проблема возникнет. В п.5.2.4.2  описывается,  как
 
            уменьшить квоты рабочих наборов и экстенты рабочих
 
            наборов.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                            - 113 -
 
                         00152-01 97 12
 
 
       Исследование ограничений свободной памяти
                 -------
                 !  11 !
                  \   /
                    V
                    !
                    !
              --------------
              !исследования!
              !"скудности" !
              ! свободной  !
              ! памяти     !
              --------------
                    !
                    !
                    V
                    *                           12
                    *        -------------------------
   предполага-!    * * нет   !отсутствует ограничения!
   ется рост  !---* ? *----->!по памяти. Исследование!
   потребнос- !    * *       !ограничения по         !
   тей  ?     !     *        !вводу-выводу           !
                    ! да     -------------------------
                    V
                    *       --------------------
   перераспре-!    * * нет  !уменьшение потреб-!
   деление    !---* ? *---->!ности  либо доба- !
   памяти     !    * *      !вление памяти     !
                    *       --------------------
                    ! да
                    !
                    V
           --------------------
           !уменьшение WSQUOTA!
           !и WSEXTENT        !
           --------------------
 
                             Рис. 18
 
 
 
        4.3. Выделение ограничений по вводу-выводу
 
 
 
        До выделения ограничений  по  вводу-выводу  системному
 
   администратору  приходилось  наблюдать  либо  за  скоростью
 
   обмена в прямом доступе, либо за скоростью обмена при буфе-
 
   ризованном вводе-выводе. Далее необходимо определить, может
 
   ли существовать какое-то ограничение по вводу-выводу, кото-
 
   рое   служит   источником   снижения    производительности.
 
   Ввод-вывод в прямом доступе порождается дисками, лентами  и
 
 
 
                            - 114 -
 
                         00152-01 97 12
 
 
   некоторым другими видами высокоскоростных линий связи.
 
 
 
        4.3.1. Прямой ввод-вывод
 
 
 
        Проблемы обмена в прямом доступе для дисков  или  лент
 
   проявляются  в  больших   задержках   завершения   операций
 
   ввода-вывода. Простейший способ получения  подтверждения  о
 
   наличии проблемы с обменом в прямом доступе  заключается  в
 
   выделении конкретного устройства с очередью ожидающих обра-
 
   ботки запросов. Очередь свидетельствует о наличии  соперни-
 
   чества за  устройство  или  контроллер.  Для  дисков  такая
 
   информация получается в результате выдачи  команды  MONITOR
 
   DISK/ITEM=QUEUE_LENGTH.
 
 
        Обмен в прямом доступе связан с  пересылкой  данных  с
 
   прямым доступом в память, на которую тратится  сравнительно
 
   мало времени центрального процессора. Из снижения  произво-
 
   дительности следует, что возможен один  или  оба  следующих
 
   признака, связанных с устройством:
 
 
          - устройство не достаточно быстрое;
 
 
          - совокупность запросов к устройству  столь  высока,
 
            что ряд запросов  блокируется,  тогда  как  другие
 
            обслуживаются.
 
 
        Для ограничений по вводу-выводу,  связанных  с  диском
 
   или лентой, которые приводят к снижению производительности,
 
   единственное возможное решение связано с  настройкой  прог-
 
   раммного обеспечения, которое использует память,  и  заклю-
 
   чается в увеличении размеров кэш-памяти и буферов,  исполь-
 
   зуемых при обработке операций ввода-вывода, тем самым  сок-
 
 
                            - 115 -
 
                         00152-01 97 12
 
 
   ращая количество обращений (доступов) к устройству.
 
 
 
        4.3.2. Определение скоростей обмена
 
 
 
        При выдаче команды MONITOR I0 и наблюдении за протека-
 
   нием операций обмена в  прямом  доступе  можно  определить,
 
   является ли скорость обмена. Если скорость обмена в  прямом
 
   доступе оказывается либо выше, либо ниже,  чем  предполага-
 
   лось в нормальном варианте, необходимо провести  исследова-
 
   ние причин такого явления (рис.19).
 
 
        Требуется  исключить  любые  возможные  устройства  из
 
   рассмотрения в качестве основных источников ввода-вывода  в
 
   прямом доступе, для чего требуется  воспользоваться  лекси-
 
   ческой функцией F$GETDVI.
 
 
        Необходимо сравнить таким образом полученные  скорости
 
   обмена с  наблюдаемыми  по  выводу,  порождаемому  командой
 
   MONITOR DISK, с номинальной производительностью устройства.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                            - 116 -
 
                         00152-01 97 12
 
 
        Исследование ограничений ввода-вывода на диск
        (фаза 1)
                        -------
                        ! 12  !
                         \   /
                           V
                           !
                           !
                           V
                    ----------------
                    !исследование  !
                    !ограничений по!
                    !вводу-выводу  !
                    ----------------
                           !
                           !
                           !
                           V
                           *
   высокая скорость !     * * нет
   ввода-вывода в   !----* ? *----
   прямом доступе ? !     * *    !
                           *     !        !имеются ли очереди
                           !     !    ----!пакетов запросов
                           !     !    !   !на ввод-вывод ?
                           !     !    !
                           V     !    !
                           *     !    *     ------------------
   ввод-вывод преры-!     * *нет V   * * да !выделить и ис-  !
   вает производи-  !----* ? *----->* ? *-->!ключить блокиро-!
   тельность ?      !     * *        * *    !вание записей   !
                           *          *     ------------------
                           ! да       ! нет
                           !          !
                           !          V       14
                           !   ------------------
                           !   !исследование ог-!
                           !   !раничений по    !
                           !   !вводу-выводу с  !
                           !   !терминала       !
                           !   ------------------
                           !
                           V   13
                    --------------
                    !исследование!
                    !файловой    !
                    !системы     !
                    --------------
 
                             Рис. 19
 
 
 
 
 
 
 
 
 
 
 
                            - 117 -
 
                         00152-01 97 12
 
 
        Исследование ограничений ввода-вывода на диск
        (фаза 2)
                -------
                ! 13  !
                 \   /
                   V                   !высок ли процент за-
                   !               !---!полнения кэш-памяти
                   !               !   !файловой системы
                   V               !
            ---------------        *     ---------------------
            !исследование !       * *да  !производится рекон-!
            !работы файло-!   -->* ? *-->!фигурация для умен-!
            !вой системы  !   !   * *    !шения потребности  !
            ---------------   !    *     !при вводе-выводе   !
                   !          !    !нет  ---------------------
                   !          !    !
                   !          !    !     ---------------------
                   V          !    !     !установление пара- !
                   *          !    !     !метров ACP_HDRCACHE!
   слишком  !     * * да      !    !---->!ACP_MAPCACHE       !
   активный !----* ? *---------          !ACP_DIRCACHE и пе- !
   ACP/XQP ?!     * *                    !резагружение памяти!
                   *                     ---------------------
                   ! нет
                   !           !улучшение использо-
                   !        ---!вания кэш-памяти ?
                   V        !
                   *        *
   много ра-!    * * да   * * да   ---------------------
   боты при !----* ? *--->* ? *---->!улучшение исполь-  !
   создании !     * *      * *      !зовании кэш-памяти !
   файлов ? !      *        *       ---------------------
                   !нет     !нет
                   !        !       ---------------------
                   !        !       !реконфигурация для !
                   V        !------>!уменьшения потреб- !
                   *                !ности              !
   много поль-!   * * да            ---------------------
   зовательс- !--* ? *-----
   ких прог-  !   * *     !    ---------------
   рамм ?     !    *      !    !исследование  !
                   !нет   !--->!ограничения  !
                   !           !по памяти    !
                   V           ---------------
                --------
                !ошибка!
                --------
 
                             Рис. 20
 
 
 
        4.3.2.1. Скорость ввода-вывода ниже номинальной
 
 
 
        Иногда скорость ввода-вывода в  прямом  доступе  может
 
   оказаться ниже той, которая  ожидалась.  Из  этого  следует
 
 
                            - 118 -
 
                         00152-01 97 12
 
 
   следующее:
 
 
          - либо не завершаются передачи очень больших об'емов
 
            данных (возможно связав с  проблемами  страничного
 
            обмена и обмена рабочих наборов);
 
 
          - либо существует какие-то другие устройства,  кото-
 
            рые блокируют работу дисков или лент.
 
 
        Если уже были исследованы ограничения по памяти и были
 
   предприняты все возможные шаги для уменьшения  их  влияния,
 
   нужно попытаться определить источник блокировки.
 
 
        Блокировка в подсистеме ввода-вывода исходит из  пред-
 
   положения о том, что запросы на ввод-вывод ставятся в  оче-
 
   редь из-за наличия некоторого "узкого"  места.  Для  дисков
 
   наличие такого состояния можно определить с помощью команды
 
   MONITOR DISK/ITEM=QUEUE_LENGTH.
 
 
        Если обнаружится очередь на  определенном  устройстве,
 
   не следует сразу делать вывод о  том,  что  "узким"  местом
 
   системы является именно данное устройство. Требуется  отме-
 
   тить все устройства с очередями, что понадобится далее  для
 
   справки (потребуется определить, какие процессы выдали зап-
 
   росы на выполнение операций ввода-вывода  для  устройств  с
 
   очередями).
 
 
        Следует исключить возможность отключения  (блокировки)
 
   устройства, вызванного вспомогательным управляющим  процес-
 
   сом (асп). (отметим, что такое возможно только при  наличии
 
   дисков уровня 1 файловой структуры). Если система  пытается
 
   использовать один вспомогательный управляющий  процесс  как
 
   для медленных, так и для  быстрых  устройств,  задержки  по
 
 
                            - 119 -
 
                         00152-01 97 12
 
 
   вводу-выводу могут возникать в тех случаях, когда вспомога-
 
   тельный управляющий процесс  пытается  обслужить  медленное
 
   устройство. Такая ситуация может  возникать  только  в  том
 
   случае,  когда  устройство  смонтировано  с  квалификатором
 
   /PROCESSOR.
 
 
 
        4.3.2.2. Высокая частота ввода-вывода
 
 
 
        Если частота ввода-вывода в прямом доступе ненормально
 
   высокая в сочетании со снижением производительности  систе-
 
   мы, можно предположить, что потребность в вводе-выводе  для
 
   такого устройства превышает его производительность. Необхо-
 
   димо выполнить следующие действия:
 
 
        1) выяснить место  выполнения  операций  ввода-вывода.
 
   Требуется выдать команду MONITOR PROCESSES/TOPDIO. Из полу-
 
   ченной в результате  вывода  информации  можно  определить,
 
   какие из процессов интенсивно  задействуют  ввод-вывод,  и,
 
   какие  из  процессов  успешно   завершают   свои   операции
 
   ввода-вывода, но не какие процессы находятся в ожидании;
 
 
        2) определить, какие из устройств, которыми пользуются
 
   процессы,  -  наиболее  интенсивные   потребители   ресурса
 
   ввода-вывода в прямом доступе, также обладают счетчиками  с
 
   наибольшими значениями числа  выполненных  операций.  Таким
 
   образом можно выделить район "узкого" места системы.  Здесь
 
   необходимо достаточно хорошо представлять загрузку системы,
 
   чтобы знать, какие устройства  используют  какие  процессы.
 
   Если окажется, что такие устройства среди  тех,  у  которых
 
   имеются очереди, значит найдено "узкое" место (места);
 
 
 
 
                            - 120 -
 
                         00152-01 97 12
 
 
        3) когда определено устройство, находящееся на  уровне
 
   насыщения,   необходимо   определить    виды    работ    по
 
   вводу-выводу, которые на нем наблюдаются. Возможно, некото-
 
   рые из них неверно обрабатываются и их  можно  скорректиро-
 
   вать  либо  отрегулировать.  Среди  возможных  вариантов  -
 
   использование кэш-памяти файловой системой,  буферизация  в
 
   СУД-32, использование явно директив QIO в программах  поль-
 
   зователей, страничный обмен или обмен рабочих наборов. Пос-
 
   ле того, как будут исключены такие возможности, можно будет
 
   сделать вывод о том, что устройство просто не  в  состоянии
 
   справиться с такой нагрузкой.
 
 
        Кэш-память файловой системы субоптимальна.  Для  того,
 
   чтобы оценить эффективность использования кэш-памяти, необ-
 
   ходимо  понаблюдать  за  выводом,  получаемым  по   команде
 
   MONITOR  FILE_SYSTEM_CACHE.  Если  заполненость  кэш-памяти
 
   составляет 70 процентов и более,  работа  кэш-памяти  может
 
   считаться нормальной. Более низкий процент загрузки в соче-
 
   тании с большим числом попыток (запросов) свидетельствует о
 
   том, что использование кэш-памяти ниже  оптимальной  эффек-
 
   тивности. Следует выполнить следующие действия:
 
 
        1) следует убедиться в том, что  прикладные  программы
 
   написаны так, что в них минимизировано  число  операций  по
 
   открытию и закрытию файлов;
 
 
        2) следует проверить, достаточны ли размеры,  выделяе-
 
   мые   под   файл   и    экстент.    С    помощью    команды
 
   DIRECTORY/SIZE=ALL диалогового командного языка  получается
 
   информация о том месте, которое файлы занимают,  и  о  том,
 
   которое им выделено. Если отношение используемого об'ема  к
 
 
 
                            - 121 -
 
                         00152-01 97 12
 
 
   выделенному обьему примерно 90 процентов, никаких изменений
 
   производить не требуется.  Однако,  при  существенно  более
 
   низком  проценте  использования  следует  задать   значения
 
   поточнее либо явно, либо изменив назначения  по  умолчанию,
 
   особенно для критичных файлов. С помощью  системного  пара-
 
   метра RMS_EXTEND_SIZE  необходимо  задать  используемые  по
 
   умолчанию размеры экстентов файлов в рамках системы. Коман-
 
   дой SET_RMS_DEFAULT/EXTEND_QUANTITY диалогового  командного
 
   языка можно определить размеры экстентов  файлов  в  рамках
 
   конкретного процесса (либо в рамках системы при помощи ква-
 
   лификатора /SYSTEM).
 
 
        Если в системе существуют стандартные параметры,  сле-
 
   дует обратиться к п.5.3.3, где обсуждаются  вопросы  подст-
 
   ройки  следующих  системных   параметров   вспомогательного
 
   управляющего процесса:
 
 
          - ACP_HDRCACHE;
 
 
          - ACP_MAPCACHE;
 
 
          - ACP_DIRCACHE.
 
 
        Ошибки   СУД-32   МОС   ВП   вызывают    проблемы    с
 
   вводом-выводом.  Неправильное  использование  СУД-32  может
 
   приводить к ограничениям  ввода-вывода  в  прямом  доступе.
 
   Если пользователи "привязаны" к диску из-за того, что счет-
 
   чики блокирования записей (блоков) слишком велики,  необхо-
 
   димо уменьшить обмен с диском (об'ем порции  информации)  с
 
   помощью  команды  SET  RMS_DEFAULT/BLOCK_COUNT  диалогового
 
   командного языка (п.5.3.2).
 
 
 
 
 
                            - 122 -
 
                         00152-01 97 12
 
 
        Можно изменить один или несколько системных параметров
 
   в группе RMS_DFMB с помощью процедуры  AUTOGEN  либо  можно
 
   включить соответствующую команду SET RMS_DEFAULT в  команд-
 
   ную процедуру регистрации в рамках системы в целом.
 
 
        Слишком большой об'ем  явного  использования  директив
 
   QIO. Следует определить, нет ли какого-то процесса, исполь-
 
   зуюшего некоторое устройство, в котором  исполняется  прог-
 
   рамма, употребляющая явно директивы QIO, а не  СУД-32.  При
 
   помощи команды MONITOR  PROCESSES/TOPDIO  можно  определить
 
   такие процессы пользователей. Может быть следует  перерабо-
 
   тать программу в целях использования  средств  обслуживания
 
   кэш-памяти для повышения эффективности директив QIO.  Отме-
 
   тим, что система  МОС  ВП  не  обеспечивает  автоматическое
 
   использование средств обслуживания кэш-памяти для  директив
 
   QIO.
 
 
 
        4.3.2.3. Страничный обмен при работе с диском
 
 
 
        Если не выделены процессы, в которых выполняются прог-
 
   раммы, в которых  пользователями  явно  написаны  директивы
 
   QIO, следует допустить, что операционная система генерирует
 
   работу с диском в связи со страничным обменом  или  обменом
 
   рабочих наборов. Страничный обмен и/или обмен рабочих набо-
 
   ров  может  быть  вполне  приемлемым  и  не   приводить   к
 
   каким-либо проблемам в связи с управлением памятью.  Работа
 
   по страничному обмену и/или обмену рабочих  наборов  блоки-
 
   рует иные работы по вводу-выводу, тем самым порождая  огра-
 
   ничение по вводу-выводу. Необходимо выдать команду  MONITOR
 
   I0 для выполнения следующих проверок:
 
 
 
                            - 123 -
 
                         00152-01 97 12
 
 
          - для проверки частоты считывания страниц и  частоты
 
            вывода (записи) страниц (для работ по  страничному
 
            обмену);
 
 
          - частоты загрузки  (для  работ  по  обмену  рабочих
 
            наборов).
 
 
        Корректирующим средством является использование коман-
 
   ды MONITOR I0, так как работа по вводу-выводу  на  диск  не
 
   отражается в счетчике операций ввода-вывода в прямом досту-
 
   пе, который опрашивается командой MONITOR.
 
 
        Если в данной точке исследования  обнаружится  сущест-
 
   венный страничный обмен или обмен рабочих наборов,  следует
 
   решить, насколько удачным выбрано место  нахождения  файлов
 
   страничного обмена и/или обмена рабочих наборов,  насколько
 
   удачен используемый в  конфигурации  контроллер  или  шина.
 
   Следует также решить, даст ли какие-либо преимущества  вве-
 
   дение вспомогательных файлов и разделение файлов.
 
 
 
        4.3.3. Потребности в вводе-выводе
 
 
 
        Единственное решение с малыми затратами связано с сок-
 
   ращением потребностей. Можно попытаться  сдвинуть  загрузку
 
   так, чтобы меньше запросов одновременно  адресовалось  уст-
 
   ройствам с прямым доступом или изменить конфигурацию систе-
 
   мы, перенеся магнитные ленты и диски на отдельные шины  для
 
   уменьшения потребности в занятии шины.
 
 
        Если ни одно из решений не даст увеличения  производи-
 
   тельности, может потребоваться увеличить производительность
 
   устройств. Потребуется приобрести диски  с  более  высокими
 
 
                            - 124 -
 
                         00152-01 97 12
 
 
   скоростями обмена, а не  просто  увеличить  число  дисковых
 
   накопителей. Если интенсивно используются магнитные  ленты,
 
   может потребоваться изучить способы  разнесения  прикладных
 
   задач  для  более  эффективного  использования  дисков.   В
 
   п.5.3.1 приводится ряд соображений относительно  сокращения
 
   потребности либо повышения производительности.
 
 
 
        4.3.4. Буферизованный ввод-вывод
 
 
 
        Работа терминала представляет  случай,  относящийся  к
 
   исследованию ограничений по  центральному  процессору,  так
 
   как терминал использует  ресурсы  центрального  процессора.
 
   Работа терминала рассматривается в связи  с  тем,  что  она
 
   может казаться связанной с проблемами ввода-вывода.
 
 
        Для выяснения проблем, связанных  с  вводом-выводом  с
 
   терминала, необходимо выполнить следующие действия:
 
 
          - выдать команду MONITOR I0, чтобы  проанализировать
 
            частоту буферизованного ввода-вывода (рис.21);
 
 
          - выдать команду  MONITOR  STATES,  чтобы  проверить
 
            наличие процессов в состоянии сом.
 
 
        Процессы в состоянии сом в сочетании с высокой  часто-
 
   той буферизованного  ввода-вывода  позволяют  предположить,
 
   что работа центрального процессора  сдерживается  запросами
 
   на ввод-вывод от терминалов. Если не наблюдается процессов,
 
   находящихся в  состоянии  вычислительного  процесса,  можно
 
   сделать вывод о  том,  что  система  хорошо  справляется  с
 
   существенным об'емом буферизованного ввода-вывода.  Необхо-
 
   димо перейти к содержанию подраздела 4.4  для  того,  чтобы
 
 
                            - 125 -
 
                         00152-01 97 12
 
 
   исследовать другие формы ограничений по  центральному  про-
 
   цессору.
 
 
        Если наблюдаются процессы  в  состоянии  сом,  следует
 
   проверить, действительно ли большое значение счетчика буфе-
 
   ризованного ввода-вывода (операций) связано с  терминалами,
 
   а не с устройствами обеспечения связи, построчно печатающи-
 
   ми устройствами, либо с устройствами, эмулирующими термина-
 
   лы. Следует проанализировать счетчики операций  всех  таких
 
   устройств с помощью лексической функции  F$GETDVI.  Большие
 
   значения счетчика операций для любого уствойства, отличного
 
   от терминала, указывают на то, что это  устройство  потреб-
 
   ляет ресурс центрального процессора.
 
 
        Если счетчик  операций  для  терминалов  соответствует
 
   высокому проценту от счетчика общего числа операций буфери-
 
   зованного ввода-вывода, то ввод-вывод с  терминала  снижает
 
   производительность системы.  Для  продолжения  исследования
 
   данной проблемы требуется выдать команду MONITOR  MODES.  В
 
   результате вывода следует ожидать, что много  времени  тра-
 
   тится либо на стек прерывания,  либо  на  работу  в  режиме
 
   ядра. Слишком большие затраты времени  на  стек  прерывания
 
   позволяют предположить, что слишком  много  символов  пере-
 
   даются несколькими весьма крупными запросами  QIO.  Слишком
 
   большие затраты времени в режиме ядра  могут  указывать  на
 
   то, что в системе слишком много мелких QIO.
 
 
 
 
 
 
 
 
 
 
 
 
                            - 126 -
 
                         00152-01 97 12
 
 
   Исследование ограничений от вв0да-вывода на терминал
 
 
   (фаза 1)          -------
                     !  14 !
                      \   /
                        V
                        !
           -----------------------------
           !исследование ограничений   !
           !от ввода-вывода на терминал!
           -----------------------------
                        !
                        V
                        *
   высокая частота!    * * нет
   буферизованного!---* ? *-------
   ввода-вывода ? !    * *       !
                        *        !
                        ! да     !
                        V        !                        16
                        *        !    -----------------------
   процессы   !        * *нет    V    !исследование ограни- !
   в состоянии!-------* ? *---------->!чения по центральному!
   COM ?      !        * *            !процессору           !
                        *             -----------------------
                        ! да
                        V
                        *           --------------
   терминал -    !     * * нет      !исследование!
   источник буфе-!----* ? *-------->!устройства  !
   ризированного !     * *          !ввода-вывода!
   ввода-вывода ?!      *           --------------
                        ! да
                        V
                        *                   15
   много времени  !    * * да  ----------------
   тратится на    !---* ? *--->!много символов!
   стек прерывании!    * *     !в запросах QIO!
         ?        !     *      ----------------
                        ! нет
                        V
                        *        ------------------
   сократить   !       * * да    !перепрограммиро-!
   число запро-!------* ? *----->!вание прикладной!
   сов QIO  ?  !       * *       !программы       !
                        *        ------------------
                        !нет
                        V
                -----------------
                !увеличить про- !
                !изводительность!
                !процесса       !
                -----------------
 
 
                             Рис. 21
 
 
 
 
                            - 127 -
 
                         00152-01 97 12
 
 
        Велико время обработки стека прерывания. Если  слишком
 
   велики затраты времени на обработку стека прерывания и если
 
   известно, что большая часть обмена с терминалом  связана  с
 
   выводом информации, можно добиться улучшения производитель-
 
   ности путем замены устройства МПД_А на устройство,  которое
 
   может "мгновенно" выполнять вывод, например, на МКС. "мгно-
 
   венный" вывод означает вывод большого числа символов однов-
 
   ременно за одно прерывание. Устройство  МКС  -  это  пример
 
   устройства, в котором имеется две формы "мгновенного" выво-
 
   да:
 
 
          - обмен в режиме с буфером;
 
 
          - обмен с прямым доступом к памяти.
 
 
   Устройство, на котором реализован "мгновенный" вывод, может
 
   уменьшить время обработки стека прерывания  для  вывода  на
 
   терминал за счет передачи больших об'емов символов  единов-
 
   ременно и генерации прерывания только по завершении переда-
 
   чи. Таким образом,  потенциально  исключается  значительное
 
   число прерываний плюс время, затрачиваемое программой  обс-
 
   луживания прерывания на  обработку  каждого  прерывания.  В
 
   п.5.3.4 рассматриваются устройства  с  мгновенным  выводом,
 
   включая и те прикладные задачи, в которых они  дают  макси-
 
   мальный выигрыш.
 
 
        Если окажется, что "мгновенные" обмены по  всей  види-
 
   мости  не  сокращают  основной  источник   ограничений   по
 
   вводу-выводу с терминала, следует воспользоваться либо спо-
 
   собами сокращения потребностей, либо  увеличить  производи-
 
   тельность центрального процессора (см.п.5.3.4).
 
 
 
 
                            - 128 -
 
                         00152-01 97 12
 
 
        Велико время режима ядра. Если в выводе, полученном  в
 
   результате команды MONITOR  MODES,  указывется,  что  много
 
   времени затрачивается на режим ядра,  возможно,  что  из-за
 
   множества  запросов  QIO  центральный  процессор   начинает
 
   "перегреваться" (рис.22). Следует выяснить, нельзя ли пере-
 
   работать прикладную задачу так, чтобы сгруппировать большое
 
   число QIO в меньшее число тех же запросов, с помощью  кото-
 
   рых единовременно передается большее число символов.  Такая
 
   переработка прикладной задачи может смягчить ситуацию, осо-
 
   бенно, если в работе  устройства  с  "мгновенным"  выводом.
 
   Также возможно  произвести  некоторую  подстройку  загрузки
 
   системы, при которой сбалансируются потребности.
 
 
        Если ни один из предложенных  подходов  не  реализуем,
 
   необходимо сократить потребности либо увеличить  производи-
 
   тельность центрального процессора.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                            - 129 -
 
                         00152-01 97 12
 
 
   Исследование ограничений от ввода-вывода на терминал
    (фаза 2)
 
                    -------
                    !  15 !
                     \   /
                       V
                       !
                       !
                ----------------
                !много символов!
                !в запросах QIO!
                ----------------
                       !
                       !
                       V
                       *        ------------------------
   терминал   !       * *нет    !уменьшение потребности!
   ориентиро- !------* ? *----->!в вводе-выводе на     !
   ван на вы- !       * *       !терминал              !
   вывод?     !        *        ------------------------
                       ! да
                       !
                       !
                       V
   используются!       *        --------------------
   устройства  !      * * нет   !сокращение времени!
   "мгновенно- !-----* ? *----->!обслуживания стека!
   го" вывода  !      * *       !прерывания        !
   на терминал !       *        --------------------
       ?       !       ! да
                       !
                       !
                       V
            -----------------------
            !уменьшение потребнос-!
            !ти в вводе-выводе на !
            !терминал             !
            -----------------------
 
                             Рис. 22
 
 
 
        4.4. Выделение ограничений  по  центральному
 
             процессору
 
 
 
        Правильный способ определения того, не  вследствие  ли
 
   ограничений  со  стороны  центрального  процессора   падает
 
   производительность, заключается в проверке очереди  состоя-
 
   ний с помощью команды MONITOR STATES.  Если  окажется,  что
 
   какие-то процессы находятся в состоянии сом или сомо, может
 
 
                            - 130 -
 
                         00152-01 97 12
 
 
   проявляться ограничение со стороны центрального процессора.
 
   Если отсутствуют процессы, пребывающие в состоянии сом  или
 
   сомо, далее заниматься исследованием ограничений со стороны
 
   центрального процессора не имеет смысла.
 
 
        Если имеются процессы, пребывающие в состояние сом или
 
   сомо и им отказано в  доступе  к  центральному  процессору,
 
   возникает одна или ряд следующих ситуаций:
 
 
          - процессы блокируются в результате выполнения  дру-
 
            гого процесса с более высоким приоритетом;
 
 
          - процессы разделяют время на основе квантов времени
 
            с другими процессами того же приоритета;
 
 
          - процессы блокируются в результате чрезмерной рабо-
 
            ты по обслуживанию стека прерывания;
 
 
          - процессы  блокируются  каким-то   иным   ресурсом.
 
            (отметим, что последняя возможность означает,  что
 
            ограничение не является  ограничением  со  стороны
 
            центрального процессора, а  является  ограничением
 
            по памяти или по вводу-выводу).
 
 
 
        4.4.1. Блокировка процессов
 
 
 
        Если система работает в  субоптимальном  режиме  из-за
 
   того, что процессы блокируются процессом,  выполняющимся  с
 
   более высоким приоритетом,  необходимо  получить  доступ  к
 
   учетной информации тех  процессов,  которые  выполняются  в
 
   данный момент. В качестве первого шага неоходимо  убедиться
 
   в том, что обладаем привилегией  ALTPRI,  затем  необходимо
 
 
 
                            - 131 -
 
                         00152-01 97 12
 
 
   установить   привилегию   15   с   помощью   команды    SET
 
   PROCESS/PRIORITY=15 диалогового командного языка. Без тако-
 
   го высокого права на  доступ  дальше  исследовать  проблему
 
   может оказаться невозможным, если только не привести систе-
 
   му к аварийному отказу и затем просмотреть выдачу  по  ава-
 
   рийному отказу. Можно получить  доступ  к  системе,  и  как
 
   показано на рис.23, можно проверить  наличие  высокоприори-
 
   тетной блокировки, выдав команду MONITOR  PROCESSES/TOPCPU.
 
   Если  затем  проанализивовать  (с  помощью   команды   SHOW
 
   PROCESS/CONTINUOUS) текущие и основные приоритеты тех  про-
 
   цессов, которые, как оказалось, наибольшим образом  исполь-
 
   зуют ресурс центрального процессора,  можно  будет  сделать
 
   вывод  о  том,  действительно  ли  какой-то  процесс  несет
 
   ответственность за блокировку процессов более низкого прио-
 
   ритета.
 
 
        Если окажется, что  ситуация  именно  такова,  имеется
 
   возможность изменить приоритеты процесса. В п.5.4.1  приво-
 
   дится обсуждение того, как изменять  приоритеты  процессов,
 
   назначаемые по файлу авторизации пользователей,  как  зада-
 
   вать приоритеты в командной процедуре входа в  систему  или
 
   как изменять приоритеты процессов во время их выполнения.
 
 
        Необходимо восстановить приоритет того процесса, кото-
 
   рым воспользовались для проведения исследования. В  против-
 
   ном случае, может оказаться, что такой процесс сам  породит
 
   собственную проблему, связанную с производительностью  сис-
 
   темы.
 
 
 
 
 
 
 
 
                            - 132 -
 
                         00152-01 97 12
 
 
   Исследование ограничений центрального процессора
   (фаза 1)
                   -------
                   !  16 !
                    \   /
                      V
                      !
                      !
                --------------
                !исследование!
                !ограничений !
                !центрального!
                !процессора  !
                --------------
                      !
                      V
                      *
   COM, COMO  !      * * нет --------
   в очереди ?!-----* ? *--->!ошибка!
                     * *     --------
                      *
                      ! да
                      !        -------!приоритеты верные ?
                      V        !
                      *        *      -----------------
   блокировка!       * * да   * * нет !отрегулирование!
   приоритета!------* ? *--->* ? *--->!приоритета     !
       ?     !       * * /\   * *     -----------------
                      *   !    *
                      !нет!    ! да
                      !   !    !      --------------------
                      V   !    !      !увеличение        !
                      *   !    !      !производительности!
   разделения!       * *да!    ------>!центрального      !
   времени ? !------* ? *--           !процессора        !
                     * *              --------------------
                      *
                      ! нет           !сократить число
                      !        -------!прерываний  ?
                      V        !
   много ра- !        *        *      --------------------
   боты со   !       * * да   * * нет !увеличение        !
   стеком    !------* ? *--->* ? *--->!производительности!
   прерываеия!       * *      * *     !центрального      !
        ?    !        *        *      !процессора        !
                      ! нет    ! да   --------------------
                      !        !
                      V   17   !
                -------------- !      ------------
                !исследование! !      !уменьшение!
                !время       ! !----->!числа     !
                !простоя     !        !прерываний!
                --------------        ------------
 
                             Рис. 23
 
 
 
 
 
 
                            - 133 -
 
                         00152-01 97 12
 
 
        4.4.2. Разделение времени между процессами
 
 
 
        После исключения из рассмотрения  возможности  захвата
 
   процессора процессами более высокого приоритета, необходимо
 
   выяснить, не существует ли серьезной проблемы с разделением
 
   времени между процессами одного и  того  же  приоритета.  С
 
   помощью списка наиболее активных пользователей центрального
 
   процессора необходимо сравнить приоритеты и оценить,  какое
 
   число процессов работает одновременно. Если приоритеты наз-
 
   начены не верно, можно  воспользоваться  шагами  процедуры,
 
   намеченной в п.5.4.1, для того, чтобы их изменить.
 
 
        Если приоритеты назначены верно и в  результате  таких
 
   регулировок ничего выиграть  не  удастся,  то  единственным
 
   подходящим решением в данной ситуации является  регулирова-
 
   ние загрузки системы в сторону сокращения потребностей либо
 
   увеличение   производительности   центрального   процессора
 
   (п.5.4.4).
 
 
 
        4.4.3. Работа со стеком прерывания
 
 
 
        Если блокировка не является следствием соперничества с
 
   другими процессами того же или более  высокого  приоритета,
 
   необходимо  выяснить,  не  слишком  ли  интенсивная  работа
 
   ведется со стеком прерывания, т.е. не столь ли велика  час-
 
   тота следования прерываний, что этим препятствуется исполь-
 
   зование процессами центрального процессора.
 
 
        Определить промежуток времени, затрачиваемый на  обра-
 
   ботку стека  прерывания,  можно  по  информации,  выводимой
 
   командой MONITOR MODES. Если процент  использовния  времени
 
 
                            - 134 -
 
                         00152-01 97 12
 
 
   на обработку стека прерывания менее 10 процентов, его  сле-
 
   дует рассматривать в качестве умеренного.
 
 
        Если время  обслуживания  стека  прерывания  чрезмерно
 
   велико, необходимо выяснить, какие  из  устройств  вызывают
 
   значительную долю прерывания в системе и как  можно  умень-
 
   шить частоту выработки прерываний.  Если  терминалы  оказы-
 
   ваются основным источником  прерываний,  производительность
 
   системы улучшится в результате использования устройства МКС
 
   вместо МПД_А, так что обмен с терминалом будет  происходить
 
   "мгновенно" (группами).
 
 
        Принимаемые  решения  будут  определяться   источником
 
   большого числа прерываний. Возможно, они происходят на уст-
 
   ройствах  связи  или  на  специальной  аппаратуре,  которая
 
   используется в прикладных задачах реального масштаба време-
 
   ни. Каков бы ни был источник, необходимо  отыскать  способы
 
   сокращения числа прерываний,  чтобы  центральный  процессор
 
   мог обслуживать работы других процессов.
 
 
        Замаскированное ограничение по памяти. После  исключе-
 
   ния из рассмотрения либо устранения всех вариантов блокиро-
 
   вок (ограничения со стороны центрального процессора), необ-
 
   ходимо определить, какой ресурс в силу своей ограниченности
 
   порождает блокирование.  Следующей  проверкой  должна  быть
 
   проверка времени простоя  (рис.24).  Необходимо  воспользо-
 
   ваться командой MONITOR MODES. Если имеется какое-то  время
 
   простоя, проблема  заключена  в  другом  ресурсе,  и  можно
 
   произвести настройку для получения  нужного  решения.  Если
 
   еще раз проанализировать информацию, выведенную по  команде
 
   MONITOR STATES, вероятно, обнаружится ряд процессов в  сос-
 
 
 
                            - 135 -
 
                         00152-01 97 12
 
 
   тоянии сомо. Можно сделать вывод о том, что данная ситуация
 
   соответствует ограничению по памяти, а не  по  центральному
 
   процессору. Необходимо применить последовательно процедуры,
 
   описанные в подразделе 4.2, для выяснения причины блокиров-
 
   ки, а затем предпринять корректирующие  действия,  рекомен-
 
   дуемые в разделе 5.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                            - 136 -
 
                         00152-01 97 12
 
 
   Исследование ограничений центрального процессора
   (фаза 2)      -------
                 !  17 !
                  \   /
                    V
                    !
                    V
              --------------
              !исследование!
              !время       !
              !простоя     !
              --------------
                    !
                    V
                    *
                    *      --------------
   существует!     * * да  !исследование!
   время     !----* ? *--->!ограничения !
   простоя ?       * *     !по памяти   !
                    *      --------------
                    ! нет
                    !        -------!работа в режиме
                    !        !      !управления  ?
                    V        !
                    *        *      -----------------
   интенсивная!    * * нет  * * нет !увеличение про-!
   работа в ре-!--* ? *--->* ? *--->!изводительности!
   жиме ядра ? !   * *      * *     !процессора     !
                    *        *      -----------------
                    ! да     ! да
                    !        !      -----------------------
                    !        !      !исследование проблем,!
                    !        !----->!вызванных использова-!
                    !               !нием СУД-32          !
                    !               -----------------------
                    V
                    *      --------------
   исследованы!    * * нет !исследование!
   ограничения!---* ? *--->!ограничения !
   по памяти ?!    * *     !по памяти   !
                    *      --------------
                    ! да
                    !
                    V
                    *       -----------------
                   * * нет  !увеличение про-!
                  * ? *---->!изводительности!
                   * *      !процессора     !
                    *       -----------------
                    ! да
                    V
               ------------
               !увеличение!
               !величины  !
               !кванта    !
               ------------
 
                             Рис. 24
 
 
 
                            - 137 -
 
                         00152-01 97 12
 
 
        4.4.4. Загрузка операционной системы
 
 
 
 
        Если в информации, выведенной по команде MONITOR MODES
 
   указывется, что простоя нет, центральный процессор загружен
 
   на 100  процентов.  В  информации,  выведенной  по  команде
 
   MONITOR STATES, обнаружатся процессы, находящиеся в состоя-
 
   нии сом. Система используется действительно для работы  или
 
   это перегрузка операционной системы?  если  это  перегрузка
 
   операцоинной  системы,  можно  попытаться  уменьшить  такую
 
   перегрузку.
 
 
        Информацию, выведенную по команде MONITOR MODES,  сле-
 
   дует тщательнейшим образом проанализировать.  Если  система
 
   указывет на излишнюю работу в режиме  ядра,  возможно,  что
 
   система дает издержки в связи с управлением памятью,  обра-
 
   боткой ввода-вывода или  диспетчеризацией  (планированием).
 
   Следует исследовать ограничения по памяти и ограничения  по
 
   вводу-выводу (см.подразделы 4.2, 4.3).
 
 
        После  исключения  возможности  улучшения   управления
 
   памятью или обработки  ввода-вывода,  проблема  интенсивной
 
   работы в режиме ядра может  быть  следствием  "издержек"  в
 
   диспетчеризации. Практически ничего  не  требуется  делать,
 
   чтобы настроить функцию планирования (диспетчеризации). Это
 
   случай, когда возможна ответная реакция на настройку. Пере-
 
   диспетчеризация по  времени,  которая  происходит  в  конце
 
   кванта, обходится дороже, чем стандартная передиспетчериза-
 
   ция, которая происходит по событиям,  соответствующим  сос-
 
   тоянию процесса. Требуется выяснить,  не  слишком  ли  мало
 
   значение системного параметра QUANTUM и можно ли его увели-
 
 
 
                            - 138 -
 
                         00152-01 97 12
 
 
   чить для того, чтобы  поднять  производительность  за  счет
 
   снижения частоты передиспетчеризации по времени (п.5.4.3).
 
 
 
        4.4.5. Использование системы СУД-32
 
 
 
        Если из информации, выведенной командой MONITOR MODES,
 
   следует, что большая часть  времени  расходуется  в  режиме
 
   управления, возможно, что не правильно используется СУД-32.
 
   Если предполагается, что проблема именно в этом, необходимо
 
   воспользоваться шагами процедуры, описанной  в  п.4.3.1,  в
 
   связи  с  порожденными  системой  СУД-32  ограничениями  по
 
   вводу-выводу.
 
 
 
        4.4.6. Работа центрального процессора с полной
 
               загрузкой
 
 
 
        Если из исследований информации, полученной в  резуль-
 
   тате команды MONITOR MODES, следует, что большая часть вре-
 
   мени расходуется в режиме супервизора, режиме  пользователя
 
   или режиме совместимости, то  центральный  процессор  занят
 
   фактической работой, а потребности превосходят  возможности
 
   по производительности. В таком случае  следует  отрегулиро-
 
   вать загрузку для снижения потребностей  (более  эффективно
 
   переписав прикладные программы)  или  увеличить  производи-
 
   тельность центрального процессора.
 
 
 
 
 
 
 
 
 
 
 
 
                            - 139 -
 
                         00152-01 97 12
 
 
             5. КОМПЕНСАЦИЯ ОГРАНИЧЕНИЙ ПО РЕСУРСАМ
 
 
 
 
        В данном разделе описываются корректирующие  процедуры
 
   для каждой из различных категорий ограничений по  ресурсам,
 
   описанным в разделе 4.
 
 
        Когда в корректирующей процедуре предлагается изменить
 
   значение одного или нескольких системных параметров, кратко
 
   поясняется, следует ли увеличить значение параметра, умень-
 
   шить либо задать весьма конкретное значение. При  необходи-
 
   мости, указываются и поясняются взаимосвязи между  парамет-
 
   рами. Прежде, чем изменять параметры,  следует  просмотреть
 
   описания системных параметров.
 
 
 
        5.1. Изменение параметров связи
 
 
 
        Для изменения системных параметров необходимо восполь-
 
   зоваться процедурой  AUTOGEN,  поскольку  она  подстраивает
 
   взаимосвязанные параметры автоматически.  В  ряде  случаев,
 
   когда более удобно изменить значение параметра из специаль-
 
   ном группы параметров, в данном  разделе  приводится  более
 
   подробное пояснение параметра. Перед тем,  как  производить
 
   какие-либо изменения параметров системы, необходимо сделать
 
   копию существующей версии  файла,  находящегося  в  рабочей
 
   области обслуживающей программы SYSGEN.
 
 
        П_р_и_м_е_р.
 
 
          $RUN SYS$SYSTEM:SYSGEN
          SYSGEN>WRITE SYS$SYSTEM:спец-файла
          SYSGEN>EXIT
 
 
 
 
                            - 140 -
 
                         00152-01 97 12
 
 
        Может потребоваться использовать дату в качестве части
 
   имени файла, указываемого в  качестве  спецификации  файла.
 
   Это бывает нужно для непосредственного отыскания файла  при
 
   обращении к нему в будущем.
 
 
        Создав копию текущих значений, всегда можно к ним вер-
 
   нуться позже. В общем случае необходимо выполнить следующие
 
   команды для задания файла параметров в спецификации файла.
 
 
        П_р_и_м_е_р.
 
 
        $RUN SYS$SYSTEM:SYSGEN
        SYSGEN>USE SYS$SYSTEM:спец-файла
        SYSGEN>WRITE ACTIVE
        SYSGEN>EXIT
 
        Если же среди тех параметров, которые  были  изменены,
 
   имеется ряд не динамических, то для  восстановления  их  из
 
   скопированного файла следует воспользоваться командой WRITE
 
   CURRENT, обслуживающей программы SYSGEN, и затем перезагру-
 
   зить систему.
 
 
        Если производимые изменения настройки включают систем-
 
   ные параметры, которые являются  динамическими,  необходимо
 
   сначала протестивовать результат изменений на  основе  вре-
 
   менного файла. Это  единственный  случай,  когда  оправдано
 
   использование SYSGEN для выполнения  настроечных  изменений
 
   (после того, когда  удовлетворят  произведенные  изменения,
 
   следует обратиться к процедуре AUTOGEN с параметром REBOOT,
 
   чтобы сделать текущие значения параметров постоянными).
 
 
        Если планируется изменить  системный  параметр  и  нет
 
   ясности относительно его окончательного значения,  а  также
 
   относительно  чувствительности  конкретного   параметра   к
 
   производимыми изменениям, следует придерживаться при выпол-
 
 
                            - 141 -
 
                         00152-01 97 12
 
 
   нении исходных изменений консервативных позиций. В качестве
 
   отправной точки можно сделать сначала изменение значения на
 
   10 процентов с тем, чтобы понаблюдать за проявлением такого
 
   изменения в системе. Если  наблюдается  малая  реакция  или
 
   реакции на изменение нет вообще, можно  попытаться  удвоить
 
   либо уменьшить вдвое исходное значение параметра в  зависи-
 
   мости от того, увеличивается или уменьшается значение пара-
 
   метра. Если и такое изменение не оказывает никакого влияния
 
   на систему, следует восстановить исходное значение парамет-
 
   ра из файла параметров, который был сохранен до начала про-
 
   ведения изменений. Если при изменениях  такого  порядка  не
 
   удается повлиять на производительность системы,  сомнитель-
 
   но, что был правильно выбран параметр для проведения  изме-
 
   нений.
 
 
        Одновременно следует изменять только  небольшое  число
 
   параметров.
 
 
        После изменения значений или параметров системы, необ-
 
   ходимо проконтролировать результаты согласно методике, опи-
 
   санной в п.2.2.3. Контроль помогает выяснить следующее:
 
 
        1) следует убедиться, что в  результате  изменений  не
 
   возникли новые проблемы;
 
 
        2) следует оценить степень успешности таких изменений.
 
 
        Всякий раз, когда произведенные изменения  оказываются
 
   неудачными, необходимо восстановить прежние значения  пара-
 
   метров до того, как продолжить настройку. В противном  слу-
 
   чае может быть сложно определить, какие изменения порождают
 
   наблюдаемые в данный момент эффекты.
 
 
 
                            - 142 -
 
                         00152-01 97 12
 
 
        5.2. Компенсация    работы    в     условиях
 
             ограничений по памяти
 
 
 
        В этом подразделе описываются процедуры устранения тех
 
   конкретных условий, которые могли быть обнаружены в резуль-
 
   тате исследований, описанных в подразделе 4.2.
 
 
 
        5.2.1. Сокращение    количества    активизаций
 
               образов
 
 
 
        Существует несколько способов уменьшения числа активи-
 
   заций образов. Системному администратору и всем программис-
 
   там следует пользоваться такими способами и  применять  те,
 
   которые представляются реально  осуществимыми  и  должны  с
 
   большей вероятностью дать наилучшие результаты.
 
 
        Интенсивная активизация образов может быть  следствием
 
   выполнения большого числа командных  процедур,  что  встре-
 
   чается наиболее часто на практике, так как для всех  команд
 
   диалогового командного языка (за исключением  тех,  которые
 
   выполняются внутри интерпретатора команд) требуется активи-
 
   зация образа. Если источником проблемы  являются  командные
 
   процедуры, необходимо рассмотреть вопрос о целесообразности
 
   их замены разработкой соответствующих программ.
 
 
        Если программа активно используется в  "нном"  доступе
 
   (совместно), уменьшаются затраты на запуск образов. Система
 
   страдает от прикладных программ с  совместно  используемыми
 
   участками  программ.   Следует   проанализировать   способы
 
   использования техники совместного  использования  программ.
 
   Проявление совместного использования  программ  связано  со
 
 
                            - 143 -
 
                         00152-01 97 12
 
 
   смещением типа отказов при активизации образов от  аппарат-
 
   ных отказов в сторону программных отказов.
 
 
        Одним  источником  интенсивной   активизации   образов
 
   является перенос программ из других операционных систем  на
 
   систему МОС ВП без  какого-либо  перепрограмирования.  Так,
 
   например, программы, в которых для другой операционной сис-
 
   темы используется техника цепочек, на  системе  МОС  ВП  не
 
   будут эффективно  использоваться  память,  если  их  просто
 
   перетранслировать и не учесть различий  в  разработке.  При
 
   преобразовании прикладных программ к работе на системе  мос
 
   вп всегда необходимо рассматривать вопросы относительно тех
 
   преимуществ, которые достигаются при перепрограммировании и
 
   адаптации каждой прикладной программы к естественному режи-
 
   му работы.
 
 
 
        5.2.2. Увеличение      размера      страничной
 
               кэш-памяти
 
 
 
        Можно увеличить страничную кэш-память, увеличив четыре
 
   параметра   страничной   кэш-памяти:   FREEGOAL,   FREELIM,
 
   MPW_THRESH и MPW_LOLIMIT. Нет небходимости удалять  свобод-
 
   ные участки балансного набора или уменьшить размер рабочего
 
   набора какого-либо из процессов.
 
 
        Следует увеличить количество страниц в списке  свобод-
 
   ных  страниц,  увеличив  значения  параметров   FREELIM   и
 
   FREEGOAL. Цель такого изменения - обеспечить каждый процесс
 
   одной  страницей  в  списке  свободных  страниц.   Значение
 
   FREEGOAL должно всегда быть больше значения  FREELIM.  Если
 
   загрузка системы позволяет  это  сделать,  можно  увеличить
 
 
                            - 144 -
 
                         00152-01 97 12
 
 
   размер списка модифицированных страниц,  увеличив  значения
 
   параметров MPW_THRESH и MPW_LOLIMIT.  Значение  MPW_LOLIMIT
 
   должно не превосходить 10 процентов физической памяти.
 
 
        Дополнительно можно решить сократить  число  свободных
 
   участков балансного набора, что описывается в п.5.2.13.
 
 
 
        5.2.3. Уменьшение      размера      страничной
 
               кэщ-памяти
 
 
 
        Размер страничной кэш-памяти уменьшается в  результате
 
   уменьшения  значений  системных   параметров   MPW_LOLIMIT,
 
   MPW_THRESH, FREEGOAL и FREELIM с соблюдением тех  соотноше-
 
   ний, о которых говорилось в п.5.2.2.
 
 
        Приемлемая производительность может быть получена  при
 
   размере страничной кэш-памяти, который на один  порядок  по
 
   величине меньше доступного пространства для нее  и  рабочих
 
   наборов.
 
 
 
        5.2.4. Подбор  характеристик  рабочего  набора
 
               для квоты и экстента
 
 
 
        Если квота рабочего набора и/или  характеристики  экс-
 
   тента рабочего набора в ряде случаев не верны, то корректи-
 
   рующее действие зависит от того, каким образом эти значения
 
   были заданы. Следует знать, влияют ли значения  характерис-
 
   тик на процесс, подпроцесс, отсоединенный процесс или зада-
 
   ние пакетной обработки.
 
 
        Если желательно зафиксировать текущую  ситуацию,  сле-
 
 
 
                            - 145 -
 
                         00152-01 97 12
 
 
   дует оценить степень серьезности проблемы. В  ряде  случаев
 
   достаточно будет приостановить  образы  или  процессы  либо
 
   попросить пользователей выйти из системы  для  того,  чтобы
 
   производимые изменения  могли  оказать  какой-либо  эффект.
 
   Столь решительные действия следует предпринимать  только  в
 
   том случае, когда проблема  порождает  невыносимые  условия
 
   работы, для которых требуется предпринять  незамедлительные
 
   действия.
 
 
        В дополнение  к  изменениям  значений  квоты  рабочего
 
   набора и экстента рабочего набора, следует оценить  необхо-
 
   димость изменения значений системных параметров BORROWLIM и
 
   GROWLIM. Обсуждение таких изменений содержится в п.5.2.5.
 
 
 
        5.2.4.1. Установка значений для вспомогательного
 
                 управляющего процесса
 
 
 
        Данный подпункт может представлять интерес только  для
 
   работающих с файловой структурой 1 уровня.
 
 
        Вспомогательный упраляющий процесс (АСП)  используется
 
   только для дисков с уровнем 1 файловой структуры.  Устанав-
 
   ливаемый по умолчанию размер рабочего набора (и квота рабо-
 
   чего набора) для всех вспомогательных управляющих процессов
 
   задается системным параметром  ACP_WORKSET.  Если  значение
 
   ACP_WORKSET нулевое, система вычисляет нужный размер  рабо-
 
   чего набора. Если желательно задать конкретное значение для
 
   рабочего набора в качестве значения  по  умолчанию,  указы-
 
   вается нужный размер в страницах в процедуре AUTOGEN  (если
 
   в системе используется  много  вспомогательных  управляющих
 
   процессов,  необходимо  помнить   о   том,   что   параметр
 
 
                            - 146 -
 
                         00152-01 97 12
 
 
   ACP_WORKSET работает в рамках системы в целом.  Любое  выб-
 
   ранное значение должно в равной  мере  подходить  для  всех
 
   вспомогательных управляющих процессов).
 
 
        Если принято решение уменьшить ACP_WORKSET (с  намере-
 
   нием обеспечить умеренный страничный обмен в рамках вспомо-
 
   гательного управляющего  процесса),  необходимо  воспользо-
 
   ваться командой SHOW SYSTEM для  определения,  какой  об'ем
 
   физической памяти занят  в  данный  момент  вспомогательным
 
   управляющим процессом. Затем необходимо вычислить значение,
 
   равное 90 процентов от текущего об'ема используемой вспомо-
 
   гательным управляющим процессом памяти. Требутся установить
 
   в качестве значения системного параметра ACP_WORKSET вычис-
 
   ленное уменьшенное значение. Чтобы данное изменение оказало
 
   влияние на все вспомогательные процессы  в  системе,  а  не
 
   только на те, которые были созданы после данного изменения,
 
   следует перезагрузить систему.
 
 
        После уменьшения значения ACP_WORKSET, требуется  про-
 
   вести наблюдение за процессом с помощью команды SHOW SYSTEM
 
   для того, чтобы убедиться в умеренности страничного  обмена
 
   в рамках вспомогательного управляющего процесса. Цель долж-
 
   на состоять в том, чтобы обеспечить общий уровень  странич-
 
   ных отказов для вспомогательного управляющего процесса ниже
 
   20 процентов от значения счетчика операций обмена в  прямом
 
   доступе для данного вспомогательного процесса.
 
 
 
        5.2.4.2. Установка значений для прочих процессов
 
 
 
        Настоящее  изложение  относится  ко  всем   процессам,
 
   отличным от  вспомогательных  управляющих  процессов.  Если
 
 
                            - 147 -
 
                         00152-01 97 12
 
 
   значения для процессов были установлены на основе значений,
 
   принимаемых по умолчанию, из файла авторизации  пользовате-
 
   ля,  следует  описать  предполагаемые  изменения  и  выдать
 
   команду SET WORKING_SET/EXTENT или/и SET  WORKING_SET/QUOTA
 
   диалогового командного языка в  зависимости  от  того,  что
 
   требуется.
 
 
        Необходимо внести изменения в файл авторизации пользо-
 
   вателя. Для изменения значения в файле авторизации  пользо-
 
   вателя, запускается обслуживающая программа AUTHORIZE  и  с
 
   помощью команд SHOW и MODIFY изменяются значения параметров
 
   /WSQUOTA и /WSEXTENT для одного или нескольких  пользовате-
 
   лей. Если по команде SHOW обнаружится, что  значения  такие
 
   же, как по умолчанию, то следует изменить все присваиваемые
 
   значения в существующих записях файла авторизации пользова-
 
   телей. Затем следует изменить запись DEFAULT файла  автори-
 
   зации пользователей, чтобы  и  для  новых  учетных  номеров
 
   устанавливались желаемые значения.
 
 
        Если  значения  характеристик  рабочего  набора   были
 
   подстроены процессом посредством  команды  SET  WORKING_SET
 
   диалогового командного языка, пользователь  может  еще  раз
 
   выдать ту же команду, но уже с измененными значениями. Если
 
   же значения были установлены средствами системного обслужи-
 
   вания, а процесс в данный  момент  исполняется  и  вызывает
 
   интенсивный страничный обмен, то либо  пользователь  должен
 
   остановить образ с помощью ус/Y,  либо,  должны  остановить
 
   процесс с помощью команды STOP диалогового командного языка
 
   (для того чтобы изменить значения, устанавливаемые програм-
 
   мами системного обслуживания, требуется изменять  программы
 
   прежде, чем их запустить на выполнение еще раз).
 
 
                            - 148 -
 
                         00152-01 97 12
 
 
        5.2.4.3. Установка  значения  для  отсоединенных
 
                 процессов или подпроцессов
 
 
 
        Если источником проблемы является  отсоединенный  про-
 
   цесс или подпроцесс, следует определить, каким образом сде-
 
   лать значения эффективными. Если значения были  установлены
 
   посредством команды RUN, их можно  изменить  только  в  том
 
   случае, когда пользователь остановит отсоединенный  процесс
 
   или подпроцесс, а затем запустить его с помощью команды RUN
 
   с измененными параметрами (можно  остановить  отсоединенный
 
   процесс с помощью команды STOP диалогового командного  язы-
 
   ка).
 
 
        Если значения были  установлены  с  помощью  программы
 
   системного обслуживания, необходимо остановить  выполняемый
 
   отсоединенный процесс или подпроцесс, и внести изменения  в
 
   программу.
 
 
        Если же значения были установлены по умолчанию,  может
 
   потребоваться пересмотреть  значения  системных  параметров
 
   PQL_DWSEXTENT и/или PQL_DWSQUOTA. Если проблема  не  общего
 
   характера, можно употреблять конкретные  значения,  которые
 
   меньше или равны соответствующим им по умолчанию  значениям
 
   из  файла  авторизации  пользователей.  Непривилегированным
 
   пользователям нельзя запрашивать значения, которые бы  пре-
 
   восходили разрешенные  им  значения  из  файла  авторизации
 
   пользователей.
 
 
 
 
 
 
 
 
 
 
                            - 149 -
 
                         00152-01 97 12
 
 
        5.2.4.4. Установка    значения    для    заданий
 
                 пакетного режима
 
 
 
        Если источником проблемы  является  задание  пакетного
 
   режима обработки, следует определить, каким  образом  взяты
 
   значения характеристик рабочего набора:
 
 
        1) если это те значения, которые установлены для  оче-
 
   реди при ее инициализации, то их нельзя изменить для данно-
 
   го задания, пока оно выполняется. Следует повторить инициа-
 
   лизацию  очереди.  Для  повторения  инициализации   очереди
 
   пакетного режима требуется выполнить следующие действия:
 
 
          - сначала  остановить  очередь  с  помощью   команды
 
            STOP/QUEUE диалогового командного языка;
 
 
          - повторить запуск ее с помощью команды  START/QUEUE
 
            диалогового командного языка.
 
 
        Если при новых значениях характеристик рабочего набора
 
   получаются хорошие результаты, следует подключать задания с
 
   соответствующими значениями в будущем;
 
 
        2) если характеристики рабочих наборов  получаются  по
 
   умолчанию из пользовательского файла авторизации  пользова-
 
   теля, следует рассмотреть назначение значений для  очередей
 
   пакетной обработки  или  создание  дополнительных  очередей
 
   пакетной обработки.  Если  значения  назначались  по  файлу
 
   авторизации пользователя, но обнаружились  ситуации,  когда
 
   наилучшие  значения  не  используются  в  действительности,
 
   необходимо определить, будут  ли  изменения  эффективны  во
 
   всех ситуациях или только в тех случаях, когда определенный
 
 
 
                            - 150 -
 
                         00152-01 97 12
 
 
   пользователь подключит конкретные задания. Лучше приспосаб-
 
   ливать каждое подключение задания, чем изменять значения  в
 
   файле авторизации пользователя, которые влияют на всю рабо-
 
   ту пользователя, или изменять характеристики очереди пакет-
 
   ного режима, которые влияют на все задания  пакетной  обра-
 
   ботки.
 
 
 
        5.2.5. Проведение настройки  для  эффективного
 
               заимствования
 
 
 
        Если  ограниченное  число  процессов   преимущественно
 
   использует  заимствование,  следует  рассмотреть  вопрос  о
 
   целесообразности внесения следующих изменений:
 
 
          - уменьшить PFRATH;
 
 
          - уменьшить BORROWLIM и/или GROWLIM;
 
 
          - увеличить границу WSEXTENT процесса.
 
 
        При уменьшении значения PFRATH будет увеличена  часто-
 
   та, с которой процессы увеличивают свои рабочие наборы  при
 
   помощи средств автоматической подстройки рабочих наборов. В
 
   п.3.2.1. Приведено полное описание автоматической подстрой-
 
   ки рабочих наборов и соответствующих параметров. В п.5.2.6.
 
   Приводятся основные  положения  выбора  начальных  значений
 
   параметров.
 
 
        Если уменьшить значение BORROWLIM  и/или  GROWLIM,  то
 
   требуется рассмотреть  сколько  всего  пространства  смогут
 
   получить все процессы под рабочие наборы. При этом  необхо-
 
   димо руководствоваться основными положениями п.3.2.1.  Зна-
 
 
 
                            - 151 -
 
                         00152-01 97 12
 
 
   чение BORROWLIM надо стремиться удерживать  в  пределах  от
 
   одной трети до одной второй доступной  памяти,  а  значение
 
   GROWLIM - в пределах от одной  шестой  до  одной  четвертой
 
   доступной памяти.
 
 
        При назначении величин для экстентов  рабочих  наборов
 
   устанавливаются значения, равные наибольшим ожидаемым  зна-
 
   чениям. В п.5.2.4 описываются различные способы  подстройки
 
   характеристик экстента рабочего набора.
 
 
 
        5.2.6. Настройка    средств     автоматической
 
               подстройки рабочих наборов
 
 
 
        Может  потребоваться  увеличить  реактивность  средств
 
   автоматической подстройки  рабочих  наборов  на  страничный
 
   обмен,  чтобы  автоматическая  подстройка  рабочих  наборов
 
   быстро устанавливала размер рабочего набора на таком  уров-
 
   не, чтобы  страничный  обмен  обеспечивался  на  приемлимом
 
   уровне для данной конфигурации и загрузки системы. Для это-
 
   го необходимо уменьшить  значение  параметра  PFRATH  и/или
 
   увеличить значение параметра WSINC.
 
 
        PFRATH рассматривается в качестве максимально  возмож-
 
   ной частоты страничного обмена для любого процесса системы.
 
   PFRATH всегда должен быть больше, чем PFRATL.
 
 
        Системным параметром WSINC задается число страниц,  на
 
   которое увеличивается предел об'ема рабочего  набора,  если
 
   устанавливается необходимость расширения средствами автома-
 
   тической подстройки рабочего набора. Максимальное  значение
 
   данного параметра  представляет  разность  между  значением
 
 
 
                            - 152 -
 
                         00152-01 97 12
 
 
   WSMAX (максимальное увеличение размера, которого может дос-
 
   тичь любой рабочий набор) и значением MINWSCNT (минимальный
 
   размер рабочего набора). В качестве WSINC необходимо назна-
 
   чать значение, меньшее такой разности. Возможно  устанавли-
 
   вать назначение WSINC таким, чтобы оно приблизительно соот-
 
   ветствовало значению WSDEFAULT для стандартного пользовате-
 
   ля. Такое значение позволяет процессам сравнительно  быстро
 
   увеличивать свои рабочие наборы, в то же время  ограничивая
 
   потенциальные максимальные потери об'ема, который необходим
 
   для того, чтобы минимально обеспечить одного пользователя.
 
 
        Если после настройки WSINC и PFRATH полученный резуль-
 
   тат не удовлетворяет, можно  уменьшить  значение  параметра
 
   AWSTIME, чтобы оно стало меньше значения параметра QUANTUM.
 
   Необходимо подобрать такое  значение  AWSTIME,  которое  бы
 
   отслеживало общую тенденцию  изменения  суммарного  размера
 
   всех рабочих наборов. Если задать слишком малое значение  в
 
   качестве параметра AWSTIME, средства автоматической  подст-
 
   ройки рабочих наборов могут  реагировать  слишком  часто  и
 
   решительно, изменяя размеры рабочих наборов, а не  отражать
 
   общую тенденцию изменений.
 
 
 
        5.2.7. Блокировка принудительного уменьшения
 
 
 
        Если  размеры  некоторых  рабочих  наборов  непрерывно
 
   колеблются, когда процессы должны находиться  в  устойчивом
 
   состоянии с точки зрения потребности  в  памяти,  возможно,
 
   что страничный обмен вынуждает  производить  принудительное
 
   уменьшение. Во избежание этого необходимо установить PFRATL
 
   равным нулю. Этим действительно  будет  отключено  принуди-
 
 
 
                            - 153 -
 
                         00152-01 97 12
 
 
   тельное уменьшение. В результате система  будет  полагаться
 
   на перераспределение памяти по загрузке (подстройка  плани-
 
   ровщика памяти или выгрузка).
 
 
        Может потребуется задать параметр WSDEC  равным  нулю.
 
   Тогда через некоторое время очевидным станет факт  отключе-
 
   ния на системе принудительного уменьшения. Только установка
 
   параметра WSDEC в нуль не блокирует  те  проверки,  которые
 
   выполняются средствами автоматической  подстройки  рабочего
 
   набора при принудительном уменьшении.
 
 
 
        5.2.8. Настройка принудительного уменьшения
 
 
 
        Возможно  при  некоторой  подстройке  рабочего  набора
 
   необходимо временно освободить память, которая  в  действи-
 
   тельности не нужна. Если для параметров заданы столь  боль-
 
   шие значения, что происходит слишком много страничных обме-
 
   нов, то следует уменьшить параметры WSDEC или PFRATL. Уста-
 
   новка в нуль только PFRATL или/и WSDEC, и PFRATL  отключает
 
   уменьшение на основе временных интервалов. Однако, если все
 
   же выбран режим, в котором сохраняется  некоторое  принуди-
 
   тельное уменьшение, чтобы избежать зафиксированных  колеба-
 
   ний, значение WSDEC должно быть меньше,  чем  WSINC.  Кроме
 
   того, WSINC и WSDEC должны быть взаимно  простыми  (т.е.  У
 
   параметров не должно иметь общих  множителей).  В  качестве
 
   нормального начального значения для WSDEC указывается вели-
 
   чина, которая на порядок ниже значения WSDEFAULT  стандарт-
 
   ного пользователя.
 
 
 
 
 
 
 
                            - 154 -
 
                         00152-01 97 12
 
 
        5.2.9. Возобновление           принудительного
 
               уменьшения
 
 
 
        Существует ситуация, в которой  уменьшение  на  основе
 
   временных интервалов полностью отключено, хотя  оно  должно
 
   быть задействовано. Для включения в работу WSDEC и  PFRATL,
 
   необходимо задать для них  обоих  значения  больше  нуля  и
 
   проследить за системой, руководствуясь п.5.2.8.
 
 
 
        5.2.10. Деблокировка автоматической  подстройки
 
                рабочих наборов
 
 
 
        Для задействования той  части  средств  автоматической
 
   подстройки рабочих наборов, которые обеспечивают  для  про-
 
   цессов рост размеров их  рабочих  наборов,  следует  задать
 
   значение WSINC больше нуля.  Устанавливаемые  по  умолчанию
 
   значения параметров средствами процедуры AUTOGEN могут слу-
 
   жить хорошими данными для большинства загрузок и конфигура-
 
   ций.
 
 
 
        5.2.11. Регулировка   подстройки   планировщика
 
                памяти
 
 
 
        Если источником проблемы страничного  обмена  является
 
   интенсивная работа по подстройке, выполняемая планировщиком
 
   памяти, значение SWPOUTPGCNT слишком мало.  Существует  два
 
   подхода, которыми можно воспользоваться:
 
 
        1) увеличение значения SWPOUTPGCNT и доведение его  до
 
   достаточно большого значения, которое  стандартный  процесс
 
 
 
                            - 155 -
 
                         00152-01 97 12
 
 
   системы будет использовать в качестве размера своего  рабо-
 
   чего набора. Такой подход приводит к тому, что  планировщик
 
   памяти выгружает рабочие наборы по достижении данного  зна-
 
   чения, а не уменьшает  процессы  до  размера,  при  котором
 
   вынужденно начинается интенсивный страничный обмен;
 
 
        2) блокировка подстройки второго  уровня  планировщика
 
   памяти. Значение SWPOUTPGCNT  устанавливается  равным  наи-
 
   большему значению WSQUOTA некоторого процесса системы.  Это
 
   приводит к выгрузке, без подстройки второго  уровня  плани-
 
   ровщика памяти.
 
 
        В связи  с  подстройкой  планировщика  памяти  система
 
   использует системный параметр LONGWAIT для  контроля  того,
 
   сколько времени должно пройти до того момента, как  процесс
 
   следует считать простаивающим. Планировщик памяти  рассмат-
 
   ривает простаивающие процессы в качестве лучших  кандидатов
 
   на выгрузку. Значением для LONGWAIT является величина  про-
 
   межутка времени, на основании которого можно отличить прос-
 
   таивающий или "несостоявшийся" процесс от процесса, который
 
   кратковременно не активный. Обычно данное значение лежит  в
 
   пределах от 3 до  20  секунд.  Следует  увеличить  значение
 
   LONGWAIT, чтобы вынудить  планировщик  памяти  предоставить
 
   процессам больший отрезок времени для нахождения в  состоя-
 
   нии простоя прежде, чем они станут кандидатами на  выгрузку
 
   или подстройку. Такой подход  будет  наиболее  продуктивным
 
   при смешанном характере нагрузки в системе и включает инте-
 
   рактивные процессы. Если нагрузка составлена из  процессов,
 
   не имеющих отношения к работе в реальном масштабе  времени,
 
   необходимо увеличить значение параметра DORMANTWAIT.
 
 
 
 
                            - 156 -
 
                         00152-01 97 12
 
 
        5.2.12. Преобразование      системы,      редко
 
                производящей обмен рабочих наборов
 
 
 
        Для уменьшения работы по обмену рабочих наборов  можно
 
   системный параметр BALSETCNT сделать равным значению, кото-
 
   рое   на   два   меньше   значения   системного   параметра
 
   MAXPROCESSCNT, обеспечивая возможность параллельной  работы
 
   максимальному числу процессов. В то же время  следует  сис-
 
   темный параметр SWPOUTPGCNT установить на минимальное  зна-
 
   чение, например, 60 страниц.
 
 
        В качестве вспомогательного действия, можно  уменьшить
 
   квоты  рабочих  наборов,  воспользовавшись   рекомендациями
 
   п.5.2.4.
 
 
        В результате таких операций получится система, которая
 
   в основном занимается страничным обменом.
 
 
 
        5.2.13. Подстройка BALSETCNT
 
 
 
        Может потребоваться  использовать  системный  параметр
 
   BALSETCNT для управления подстройкой в сторону  страничного
 
   обмена или  обмена  рабочих  наборов.  Уменьшение  значения
 
   параметра BALSETCNT может приводить к уменьшению странично-
 
   го обмена, тогда как увеличение BALSETCNT  может  использо-
 
   ваться для сокращения обмена рабочих наборов.  BALSETCNT  -
 
   это такой параметр, который  влияет  на  целый  ряд  других
 
   параметров, поэтому следует его изменять в умеренных преде-
 
   лах.
 
 
        Уменьшение  BALSETCNT,  чтобы   уменьшить   страничный
 
 
 
                            - 157 -
 
                         00152-01 97 12
 
 
   обмен. Если уменьшить число свободных  участков  балансного
 
   набора, уменьшив  параметр  BALSETCNT,  можно  потенциально
 
   уменьшить потребность в памяти, ограничив число  процессов,
 
   которые конкурируют за память в данный момент времени.
 
 
        Из информации, полученной в  результате  команды  SHOW
 
   MEMORY при весьма большой загрузке системы, известно  число
 
   доступных и используемых участков балансного  набора.  Если
 
   участки балансного набора  доступны  при  большой  загрузке
 
   системы, можно уменьшить значение BALSETCNT на  это  число.
 
   Если нет доступных участков балансного набора и если умень-
 
   шить BALSETCNT, то при загрузке  система  вынужденно  будет
 
   производить обмен рабочих наборов.
 
 
        Увеличение BALSETCNT, чтобы уменьшить  проблемы,  свя-
 
   занные с обменом рабочих наборов. Если активный обмен рабо-
 
   чих  наборов  обусловлен  отсутствием  участков  балансного
 
   набора при наличии доступной памяти, то  необходимо  увели-
 
   чить BALSETCNT, задавая значение,  которое  на  два  меньше
 
   значения системного параметра MAXPROCESSCNT. Этим  гаранти-
 
   руется наличие участка в балансном наборе для любого созда-
 
   ваемого процесса. Обмен рабочих наборов будет происходить в
 
   принудительном порядке только тогда, когда памяти не доста-
 
   точно для удовлетворения потребностей.
 
 
        Вместо того, чтобы сразу задать BALSETCNT равным  зна-
 
   чению MAXPROCESSCNT  минус  два  (что  является  наибольшим
 
   используемым значением), можно  попытаться  воспользоваться
 
   более поэтапным подходом. Необходимо  разделить  оставшуюся
 
   свободную память, которая указана  в  выводе  команды  SHOW
 
   MEMORY, на размер стандартного рабочего набора и затем уве-
 
 
 
                            - 158 -
 
                         00152-01 97 12
 
 
   личить BALSETCNT на это число.
 
 
 
        5.2.14. Уменьшение страничной кэш-памяти
 
 
 
        Если активный обмен рабочих наборов вызван отсутствием
 
   свободной памяти, которое в свою очередь обусловлено  неоп-
 
   равдано большой страничной кэш-памятью, в качестве  первого
 
   шага  необходимо  уменьшить  размер  кэш-памяти,   уменьшив
 
   FREELIM  и   FREEGOAL   либо   MPW_LOLIMIT   и   MRW_THRESH
 
   (MPW_LOLIMIT относится к максимальному размеру списка моди-
 
   фицированных страниц).
 
 
        Хорошие начальные значения для этих параметров  приве-
 
   дены в п.5.2.2. Необходимо запомнить, что проблема  слишком
 
   большой кэш-памяти в  первую  очередь  вызвана  расстройкой
 
   системы. Командная процедура AUTOGEN не сгенерирует  значе-
 
   ния для страничной кэш-памяти, которые бы  оказались  чрез-
 
   мерно большими.
 
 
 
        5.2.15. Сокращение вычислительного процесса
 
 
 
        Прежде,  чем  остановить  крупный,   низкоприоритетный
 
   вычислительный процесс, рекомендуется уменьшить  выделенный
 
   ему об'ем памяти. Если у процесса не было важного события в
 
   течение 10 секунд или дольше, можно  уменьшить  DORMANTWAIT
 
   для того, чтобы сделать процесс более вероятным  кандидатом
 
   на выгрузку.
 
 
 
 
 
 
 
 
 
                            - 159 -
 
                         00152-01 97 12
 
 
        5.2.16. Приостановка вычислительного процесса
 
 
 
        Если принято решение относительно приостановки крупно-
 
   го вычислительного процесса, необходимо  убедиться  в  том,
 
   что он не использует файлов в разделенном доступе совместно
 
   с другими процессами. В противном случае  при  приостановке
 
   крупного вычислительного процесса файл с разделенным досту-
 
   пом может оказаться заблокированным. Если это случится,  то
 
   вскоре обнаружиться, что другие  процессы  заблокировались.
 
   Следует как можно скорее возобновить работу крупного вычис-
 
   лительного процесса с помощью  команды  SET  PROCESS/RESUME
 
   диалогового  командного  языка.  Если  не  удается  достичь
 
   приемлемого результата, предлагается сделать  приостановку.
 
   В таком случае необходимо обратиться к подпункту  5.2.4.2.,
 
   где описывается соответствующая операция.
 
 
 
        5.2.17. Контроль роста вычислительных процессов
 
 
 
        Если крупный вычислительный процесс  захватил  больший
 
   об'ем памяти, чем положено, может оказаться  полезным  сни-
 
   зить квоту рабочего набора процесса. Такую операцию следует
 
   предпринимать, если данный процесс должен быть одним из тех
 
   процессов, которые ощущают на себе  проявление  страничного
 
   отказа, а не принуждать другие процессы слишком часто  выг-
 
   ружаться. В подпункте 5.2.4.2. Описывается,  каким  образом
 
   производить подстройку квот рабочих наборов.
 
 
 
 
 
 
 
 
 
 
                            - 160 -
 
                         00152-01 97 12
 
 
        5.2.18. Деблокировка обмена рабочих наборов для
 
                дискового вспомогательного управляющего
 
                процесса
 
 
 
        Если  дисковый  вспомогательный  управляющий   процесс
 
   (только для уровня 1 файловой структуры на диске)  установ-
 
   лен таким образом, что он не будет выгружаться, а для улуч-
 
   шения работы системы необходима его выгрузка, следует  вос-
 
   пользоваться процедурой AUTOGEN  для  изменения  системного
 
   параметра ACP_SWAPFLGS и  затем  перезагрузить  систему.  В
 
   документе [9] указывается, каким  образом  задать  значение
 
   флага для ACP_SWAPFLGS, при помощи которого  возможна  выг-
 
   рузка вспомогательного управляющего процесса.
 
 
 
        5.2.19. Деблокировка обмена рабочих наборов для
 
                других процессов
 
 
 
        Если пользователи  заблокировали  выгрузку  для  своих
 
   процессов и результат блокирования в памяти одного или нес-
 
   кольких процессов ухудшил общую производительность системы,
 
   следует попробовать ряд вариантов.
 
 
        Вне зависимости от действительных причин  блокирования
 
   выгрузки для одного или нескольких процессов, следует  убе-
 
   дить пользователей прекратить так поступать. Если нет  воз-
 
   можности это сделать, можно убрать привилегии с тем,  чтобы
 
   они  не  могли  блокировать  выгрузку  (чтобы  пользоваться
 
   командой  SET  PROCESS/NOSWAPLING,  необходима   привилегия
 
   PSWAPM). Необходимо воспользоваться обслуживающей  програм-
 
   мой авторизации пользователей в системе для изменения  при-
 
 
 
                            - 161 -
 
                         00152-01 97 12
 
 
   вилегий.
 
 
        Если у пользователей есть основания  блокировать  выг-
 
   рузку, следует  тщательно  проанализировать,  какие  работы
 
   выполняются параллельно,  когда  падает  производительность
 
   системы. Возможно, что передиспетчеризация небольшого числа
 
   заданий окажется  вполне  достаточным  средством  повышения
 
   производительности системы в целом (п.4.2.25).
 
 
 
        5.2.20. Сокращение   количества    параллельных
 
                процессов
 
 
 
        Количество  параллельных  процессов  можно  сократить,
 
   уменьшив значение параметра MAXPROCESSCNT. Изменение данной
 
   величины влияет на большую часть системных параметров. Поэ-
 
   тому изменение  значения  параметра  MAXPROCESSCNT  следует
 
   производить небольшими шагами.
 
 
 
        5.2.21. Средства выделения рабочих наборов  при
 
                скудных ресурсах памяти
 
 
 
        Если рабочие наборы слишком  велики  из-за  того,  что
 
   процессы  используют  свои  области  заимствования   (свыше
 
   WSQUOTA) может оказаться полезным  сократить  заимствование
 
   за счет увеличения GROWLIM  и  BORROWLIM.  Чтобы  полностью
 
   заблокировать заимствование, необходимо  задать  GROWLIM  и
 
   BORROWLIM   равным   специальному   системному    параметру
 
   PHYSICALPAGES, который соответствует верхней границе об'ема
 
   физической памяти и который формируется при загрузке систе-
 
   мы.
 
 
 
                            - 162 -
 
                         00152-01 97 12
 
 
        Можно уменьшить размер WSEXTENT для некоторых  процес-
 
   сов  в  файле  авторизации  пользователей.  Если   значение
 
   WSEXTENT приравнялось значению WSQUOTA, то для  таких  про-
 
   цессов заимствование заблокировано полностью.
 
 
 
        5.2.22. Увеличение об'ема памяти
 
 
 
        Если снизить величину  SWPOUTPGCNT,  то  увеличивается
 
   об'ем используемой памяти при каждой  инициации  подстройки
 
   второго уровня. Этим параметром система наиболее эффективно
 
   преобразуется из системы с обменом рабочих наборов в систе-
 
   му со страничным обменом и наоборот. Если снижать  значение
 
   SWPOUTPGCNT, повышается вероятность  задействования  значи-
 
   тельного страничного обмена.
 
 
 
        5.2.23. Частота загрузки рабочих наборов
 
 
 
        Если увеличить специальный системный параметр SWPRATE,
 
   будет уменьшена частота,  с  которой  выгруженные  процессы
 
   загружаются обратно в память.  SWPRATE  -  это  минимальное
 
   реальное время между загрузками вычислительного процесса. В
 
   рамках данного изложения любой процесс, у которого  текущий
 
   приоритет меньше или  равен  системному  параметру  DEFPRI,
 
   считается вычислительным.
 
 
 
        5.2.24. Страничный обмен для сокращения  обмена
 
                рабочих наборов
 
 
 
        Чтобы возбудить на  системе  страничный  обмен,  когда
 
   система интенсивно занята обменом рабочих наборов,  необхо-
 
 
                            - 163 -
 
                         00152-01 97 12
 
 
   димо понизить квоты рабочих наборов в соответствии  с  опи-
 
   санном в подпункте 5.2.4.2. Также следует увеличить  значе-
 
   ние PFRATH и можно  уменьшить  значение  WSINC.  При  таких
 
   изменениях замедлится скорость подстройки  рабочих  наборов
 
   на страничный обмен. Процессы не будут получать так  быстро
 
   дополнительное пространство под рабочие наборы.
 
 
        Необходимо проверить количество параллельных заданий в
 
   очередях  пакетной  обработки.  Необходимо  воспользоваться
 
   командой SHOW SYSTEM/BATCH для  анализа  числа  и  размеров
 
   заданий пакетной обработки. Если наблюдается  много  парал-
 
   лельных заданий  пакетной  обработки,  может  потребоваться
 
   воспользоваться        командами        STOP/QUEUE        и
 
   START/QUEUE/JOB_LIMIT  диалогового  командного  языка   для
 
   наложения ограничения на их число.
 
 
 
        5.2.25. Число файлов страничного обмена
 
 
 
        Когда системный диск находится на  грани  переполнения
 
   из-за страничного обмена, то, как описано в п.4.2.1,  может
 
   потребоваться рассмотреть вопрос о  добавлении  одного  или
 
   ряда файлов страничного обмена на  различных  (независимых)
 
   дисках. Возможна организация файла и на  диске,  который  в
 
   данный момент используется (если имеется свободное  место).
 
   Необходимо воспользоваться командами CREATE и INSTALL  обс-
 
   луживающей программы SYSGEN для добавления файлов  странич-
 
   ного обмена.
 
 
 
 
 
 
 
 
 
                            - 164 -
 
                         00152-01 97 12
 
 
        5.2.26. Уменьшение потребности либо  увеличение
 
                памяти
 
 
 
        Когда все  возможности  настройки  системы  исчерпаны,
 
   существует следующие возможности:
 
 
        1) сократить потребности в  памяти,  изменив  загрузку
 
   системы;
 
 
        2) добавить память на системе.
 
 
        Уменьшение потребности. В п.2.3.2.  Описывается  целый
 
   ряд вариантов, которыми можно воспользоваться для  смещения
 
   потребностей на  системе,  чтобы  уменьшить  их  в  пиковые
 
   моменты.
 
 
        Добавление памяти. Если необходимо  увеличить  память,
 
   следующим вопросом будет определение того,  какой  величины
 
   нужна память. Величину  об'ема  памяти  следует  установить
 
   более  точно.  Для  этого  необходимо  выполнить  следующие
 
   действия:
 
 
        1) определить или оценить частоту страничных  обменов,
 
   которая будет соответствовать допустимому уровню страничных
 
   обменов в системе. Такие допущения следует делать для  гло-
 
   бальных допустимых отказов,  если  много  прикладных  задач
 
   совместно  используют  память,  выводя  частоту  глобальных
 
   допустимых отказов из суммарной частоты страничных отказов;
 
 
        2) отключить подстройку планировщика памяти (в качест-
 
   ве SWPOUTPGCNT устанавливается значение, равное  максималь-
 
   ному значению, обнаруженному для WSQUOTA);
 
 
 
 
                            - 165 -
 
                         00152-01 97 12
 
 
        3) процессам предоставить достаточные по об'ему  квоты
 
   рабочих наборов, чтобы достигнуть допустимого уровня  стра-
 
   ничного обмена в системе, пока она не полностью загружена.
 
 
        Об'ем памяти, который необходим выгруженным процессам,
 
   приблизительно соответствует тому об'ему памяти, который бы
 
   требовалось иметь на системе для получения желаемой  произ-
 
   водительности в условиях данной загрузки.
 
 
        После того, как добавлена память  на  системе,  запус-
 
   кается процедура AUTOGEN, чтобы можно было назначить  новые
 
   значения параметров исходя из увеличевшегося размера  физи-
 
   ческой памяти.
 
 
 
        5.3. Компенсация    работы    в     условиях
 
             ограничений по вводу-выводу
 
 
 
        В настоящем подразделе описываются процедуры исправле-
 
   ния конкретных ситуаций, которые могли  быть  обнаружены  в
 
   результате исследований, описанных в подразделе 4.3.
 
 
        Все решения проблем производительности методами  наст-
 
   ройки в связи  с  ограничениями  по  вводу-выводу  включают
 
   использование памяти для загрузки подсистемы  ввода-вывода.
 
   Два наиболее доступных механизма - это кэш-памяти вспомога-
 
   тельных управляющих процессов и буфферизация СУД-32.
 
 
 
        5.3.1. Ошибки  вспомогательного   управляющего
 
               процесса
 
 
 
        Проблема  блокирования  вспомогательного  управляющего
 
 
 
                            - 166 -
 
                         00152-01 97 12
 
 
   процесса является простейшей в смысле ее обнаружения и раз-
 
   решения. Более того, она реагирует на настройку программно-
 
   го обеспечения.
 
 
        Решение проблемы блокирования вспомогательного  управ-
 
   ляющего процесса, вызванного совместным использованием мед-
 
   ленным диском вспомогательного управляющего процесса наряду
 
   с одним или рядом быстрых дисков, заключается в размонтиро-
 
   вании медленного устройства  посредством  команды  DISMOUNT
 
   диалогового  командного  языка,  затем  в  выдаче   команды
 
   MOUNT/PROCESSOR=UNIQUE того же диалогового командного языка
 
   для выделения медленному  устройству  отдельного  вспомога-
 
   тельного управляющего процесса. Вспомогательный управляющий
 
   процесс для дисков  используется  только  в  случае  дисков
 
   уровня 1 файловой структуры. Необходимо  убедиться,  что  у
 
   каждого вспомогательного управляющего  процесса  есть  свой
 
   собственный рабочий набор  и  кэш-память.  Создание  многих
 
   вспомогательных управляющих процессов необходимо связано  с
 
   использованием дополнительной памяти.
 
 
        Встречаются такие ситуации, в которых могут  совместно
 
   проявляться признаки блокировки вспомогательного  управляю-
 
   щего процесса, причем последний  не  будет  реагировать  на
 
   добавление некоторого вспомогательного управляющего процес-
 
   са. Так, например, если значительная работа по вводу-выводу
 
   вся направлена на одно и то  же  устройство.  В  результате
 
   такое устройство в действительности переполняется. Добавле-
 
   ние вспомогательного управляющего процесса для другого уст-
 
   ройства без принятия мер по перенаправлению и/или перерасп-
 
   ределению работы по вводу-выводу на  другое  устройство  не
 
   приведет ни к каким улучшениям.
 
 
                            - 167 -
 
                         00152-01 97 12
 
 
        5.3.1.1. Ошибки устройства, контроллера или шины
 
 
 
        Этот случай описывается только для уровня  1  файловой
 
   структуры  на  диске.   Если   пользователи   заблокированы
 
   вследствие наличия "узкого места" по устройству, контролле-
 
   ру или шине, необходимо выполнить следующие действия:
 
 
        1) необходимо  уменьшить  потребности  на  устройстве,
 
   которое оказалось "узким" местом. Если "узким" местом  ока-
 
   залось конкретное устройство, можно  попытаться  воспользо-
 
   ваться, любым из следующих предложений:
 
 
          - используется ли устройство,  на  котором  возникла
 
            проблема, для страничного обмена или обмена  рабо-
 
            чих наборов. Необходимо рассмотреть способы смеще-
 
            ния потребностей  во  вводе-выводе.  Если  "узким"
 
            местом оказывается  системный  диск,  нельзя  весь
 
            страничный обмен целиком перенести на другой диск.
 
            Файл страничного обмена минимального  об'ема  тре-
 
            буется держать на системном диске;
 
 
          - перераспределение каталогов на один или ряд допол-
 
            нительных дисков. Можно выделить память нескольким
 
            вспомогательным управляющим процессам (только  для
 
            уровня 1 файловой структуры на диске), что  позво-
 
            лит перераспределить  некоторую  часть  работы  на
 
            другие диски. Важно не фрагментированы  ли  файлы,
 
            что может случиться  на  устройствах,  находящихся
 
            какое-то  время  в  эксплуатации.  Для  исключения
 
            фрагментировании следует воспользоваться  обслужи-
 
            вающей программой BACKUP;
 
 
 
                            - 168 -
 
                         00152-01 97 12
 
 
          - следует попытаться спланировать работу, при  кото-
 
            рой происходит интенсивный  доступ  к  устройству,
 
            чтобы работа выполнялась в течение большего проме-
 
            жутка времени либо  при  ином  сочетании  заданий,
 
            чтобы потребность использования устройства сущест-
 
            венно уменьшились в моменты пиковых нагрузок. Важ-
 
            ным действием является перенос  файлов  на  другие
 
            существующие устройства в целях обеспечения  более
 
            равномерного использования всех устройств;
 
 
        2) сокращение потребности в шине, которая  оказывается
 
   "узким" местом.  Если  контроллеры  расположены  на  "общей
 
   шине", еще одним решением является разнесение  контроллеров
 
   по отдельным шинам. Желательно разделить устройства с более
 
   низким скоростями обмена и более быстрые  устройства.  Так,
 
   например,  наибольшее  улучшение  будет  наблюдаться,  если
 
   контроллеры лент  можно  будет  поместить  на  одну  "общую
 
   шину", а контроллеры  дисков  на  другую  отдельную  "общую
 
   шину".
 
 
        Если "узким" местом системы становится  "общая  шина",
 
   единственным решением будет приобретение другой шины с тем,
 
   чтобы часть  нагрузки  можно  было  перераспределить  между
 
   обеими шинами.
 
 
 
        5.3.1.2. Увеличение           производительности
 
                 аппаратных средств
 
 
 
        Если имеется мало удобных и эффективных путей смещения
 
   потребностей от "узкого" места системы с  помощью  наличных
 
   аппаратных средств, может потребоваться приобрести дополни-
 
 
                            - 169 -
 
                         00152-01 97 12
 
 
   тельные аппаратные средства. Увеличение  производительности
 
   может быть связано либо с добавлением еще одного  аналогич-
 
   ного устройства, либо с заменой его на большее, более быст-
 
   рое либо обладающее обеими характеристиками.
 
 
        Необходимо избегать ряда наиболее часто  встречающихся
 
   ошибок. Большее число дисков того же  типа  позволит  лучше
 
   распределить нагрузку, хотя истина заключается в приобрете-
 
   нии другого контроллера для дисков, вследствие  чего  могут
 
   быть получены более удачные результаты. Вместо того,  чтобы
 
   приобрести больше дисков одного и  того  же  типа,  решение
 
   может заключаться в замене одного или нескольких существую-
 
   щих дисков дисками с большей скоростью обмена. Другая ошиб-
 
   ка, которой следует избегать, связана с приобретением  дис-
 
   ков, которые сразу же  перегрузят  тот  контроллер  или  ту
 
   шину, на которые они будут помещены.
 
 
        Для принятия правильного решения, необходимо знать,  с
 
   чем связана проблема:
 
 
          - с ограничениями по пространству и размещению;
 
 
          - с ограничениями по скорости.
 
 
        Если  требуется  улучшить  скоростные  характеристики,
 
   необходимо установить, что требуется: устройство или  конт-
 
   роллер. Следует затратить определенные усилия и разобраться
 
   в работе подсистемы ввода-вывода и в распределении  нагруз-
 
   ки.
 
 
 
 
 
 
 
 
 
                            - 170 -
 
                         00152-01 97 12
 
 
        5.3.2. Улучшение     режима      использования
 
               кэш-памяти средствами СУД-32
 
 
 
        Основной источник иформации по настройке файлов СУД-32
 
   и прикладных программ - документ [1]. СУД-32 уменьшает наг-
 
   рузку на подсистему ввода-вывода  за  счет  буферизации.  В
 
   таком сокращении нагрузки важными  моментами  являются  как
 
   размеры, так и количество буферов. В  стремлении  подобрать
 
   приемлемые величины для буферов и счетчиков буферов следует
 
   отыскать оптимальное соотношение между минимальным  об'емом
 
   ввода-вывода в СУД-32  (за  счет  использования  достаточно
 
   больших  буферов)  и  минимальным  об'емом  ввода-вывода  в
 
   управлении памятью.  Если  задать  размеры  буферов  СУД-32
 
   слишком большими, можно больше заполнить рабочий набор про-
 
   цесса информацией из таких буферов, породив  больший  стра-
 
   ничный обмен для диска.
 
 
 
        5.3.3. Подстройка     кэш-памяти      файловой
 
               структуры
 
 
 
        Соображения по настройке кэш-памяти для файловой  сис-
 
   темы на диске аналогичны соображениям, высказанным в  связи
 
   с настройкой буферов СУД-32. Файловая система диска  обслу-
 
   живает кэш-памяти различных структур данных файловой систе-
 
   мы, таких, как заголовки файлов и каталоги. Место под такие
 
   кэш-памяти выделяются в страничном пуле, если том смонтиро-
 
   ван в качестве тома уровня 2 файловой структуры на диске (в
 
   случае вспомогательного управляющего процесса уровня 1 фай-
 
   ловой структуры на диске такие кэш-памяти  являются  частью
 
   рабочего набора  вспомогательного  управляющего  процесса).
 
 
                            - 171 -
 
                         00152-01 97 12
 
 
   работы файловой системы, в которых происходит только считы-
 
   вание информации с тома  (в  противоположность  работам,  в
 
   которых осуществляется  запись),  могут  производиться  без
 
   собственно считывания с диска, если требуемые элементы дан-
 
   ных находятся в кэш-памяти файловой системы.
 
 
        Для оценки активности использования кэш-памяти  файло-
 
   вой   системой,   необходимо   выдать    команду    MONITOR
 
   FILE_SYSTEM_CASHE и проанализировать выведенную ею информа-
 
   цию. Можно запустить обслуживающую программу SYSGEN и изме-
 
   нить соответствующие системные  параметры  вспомогательного
 
   управляющего процесса. Элементы информации,  выведенной  по
 
   команде FILE_SYSTEM_CACHE, соответствуют параметрам вспомо-
 
   гательного управляющего процесса следующим образом:
 
 
                                элемент    параметры
 
                        FILE_SYSTEM_CACHE   ACP/XQP
 
      каталог блока управления DIR FCB    ACP_SYSACC
              файлом                       ACP_DINDXCACHE
      каталог данных           DIR DATA    ACP_DIRCACHE
      заголовок файла          FILE HDR    ACP_HDRCACHE
      идентификатор файла      FILE ID     ACP_FIDCACHE
      экстент                  EXTENT      ACP_EXTCACHE
                                           ACP_EXTLIMIT
      квота                    QUOTA       ACP_QUOCACHE
      карта распределения      BITMAR      ACP_MAPCACHE
 
        При изменении параметров  кэш-памяти  вспомогательного
 
   управляющего процесса необходимо  перезагрузить  систему  с
 
   тем, чтобы задействовать произведенные изменения.
 
 
 
        5.3.4. Уменьшение  количества  прерываний  при
 
               вводе-выводе с терминала
 
 
 
        Содержание настоящего пункта связано  с  рассмотрением
 
   устройства МКС. Аналогичные рассуждения могут относиться  к
 
 
                            - 172 -
 
                         00152-01 97 12
 
 
   другим устройствам.
 
 
        Выборка подходящей среды для МКС. В прикладных задачах
 
   при выводе за один  раз  200  символов  и  более  в  режиме
 
   NOFORMAT (бесформатный) наиболее удачным будет  использова-
 
   ние такой характеристики МКС, как прямой доступ  к  памяти.
 
   Обмен с прямым доступом к памяти разрешен только в том слу-
 
   чае, когда размер буфера вывода по крайней  мере  совпадает
 
   со   значением,    установленным    системным    параметром
 
   TTY_DMASIZE. Стандартные форматные выводы связаны  также  с
 
   тем, что драйвер терминала выполняет определенные операции.
 
 
        Если в прикладной  программе  за  один  раз  выводится
 
   менее 200 символов, но более 10  символов,  так  называемый
 
   обмен из буфера МКС все же на 30-60 процентов более  эффек-
 
   тивен, чем обмен с помощью устройства МПД_А. Если  в  прик-
 
   ладных программах вывод составляет  менее  10  символов  за
 
   раз, никаких существенных улучшений по  сравнению  с  МПД_А
 
   использование МКС не даст.
 
 
        Если не наблюдается  значительных  затрат  времени  на
 
   обработку  стека  прерывания  в  проведенном  исследовании,
 
   приобретение МКС, по-видимому, не устранит  проблемы,  свя-
 
   занной в вводом-выводом с терминала. Более того, МКС  улуч-
 
   шает обмен терминала только с точки зрения вывода  информа-
 
   ции и только, если размер буферов вывода позволяет  размес-
 
   тить по крайней мере 10 символов.
 
 
        В большинстве выводов на терминал, реализуемых в  виде
 
   вывода записей, передается меньше  символов,  чем  значение
 
   параметра TTY_DMASIZE. Прикладные программы нужно специаль-
 
   но разрабатывать с учетом  тех  преимуществ,  которые  дает
 
 
                            - 173 -
 
                         00152-01 97 12
 
 
   использование характеристики прямого доступа к памяти  МКС.
 
   Необходимо хорошо знать загрузку системы  для  того,  чтобы
 
   выполнить соответствующий подбор оборудования.
 
 
        Учет прикладной задачи. Среди  дополнительных  приемов
 
   сокращения работы по  обслуживанию  прерываний  в  связи  с
 
   вводом-выводом с терминала  находятся  перепрограммирование
 
   прикладных задач и уменьшение скорости обмена.
 
 
        Программисты  могут  уменьшить  число  прерываний  для
 
   ввода-вывода с терминала, если  при  разработке  прикладных
 
   программ собрать директивы QIO в крупные операции (работы),
 
   в которых производится вывод максимально  возможного  числа
 
   символов. Программисты могут использовать такие QIO,  кото-
 
   рыми выводится столько символов, сколько  допускается  сис-
 
   темным параметром MAXBUF,  которым  устанавливается  макси-
 
   мально допустимое число символов при буферизованном обмене.
 
   Если можно выделить ряд "ущемленных" программ, которые час-
 
   то используются, но в которых QIO не собраны вместе,  может
 
   оказаться целесобразным и оправданным  потратить  время  на
 
   переделку и перепрограммирование таких программ.
 
 
        Уменьшение скорости обмена терминала. Во многих  прик-
 
   ладных задачах происходит вывод  символов  на  терминалы  в
 
   режиме сглаженной "прокрутки" информации  с  использованием
 
   устройства МПД_А. Можно снизить скорости обмена и  частоты,
 
   с которой МПД_А генерирует прерывания для получения следую-
 
   щего символа. В таких условиях работы (сглаженная "прокрут-
 
   ка" информации при выводе с помощью МКС) снижение  скорости
 
   обмена эффективно сокращает время, затрачиваемое  централь-
 
   ным процессором на  обработку  прерываний.  Так,  например,
 
 
 
                            - 174 -
 
                         00152-01 97 12
 
 
   можно работать с двумя терминалами при  скорости  обмена  в
 
   4800 бод и генерировать то же количество прерываний,  какое
 
   генерирует один терминал при скорости обмена  в  9600  бод,
 
   хотя снижение скорости обмена будет едва заметно для  поль-
 
   зователей.
 
 
 
        5.4. Компенсация в условиях  ограничений  на
 
             использование центрального процессора
 
 
 
        В  настоящем  подразделе  описываются   процедуры,   с
 
   помощью которых можно  устранить  те  конкретные  ситуации,
 
   которые могли быть обнаружены  в  результате  исследований,
 
   описанных в п.4.4.
 
 
        Существует всего  два  способа  использования  средств
 
   управления по производительности, которые связаны с ограни-
 
   чениями по центральному процессору:
 
 
          - явно задать приоритеты (для  заданий  или  процес-
 
            сов);
 
 
          - изменить значение системного параметра QUANTUM.
 
 
        Другие  возможности  в  действительности  не  являются
 
   решениями, относящимися к настройке.
 
 
 
        5.4.1. Регулирование приоритетов
 
 
 
        Если данный процесс или класс  процессов  получает  не
 
   достаточное обслуживание со стороны центрального  процессо-
 
   ра, лучшее средство улучшения ситуации - увеличить  приори-
 
   тет связанных процессов. Если основной  приоритет  процесса
 
 
                            - 175 -
 
                         00152-01 97 12
 
 
   увеличен на все время,  лучше  просто  изменить  прикладную
 
   программу, чтобы временно увеличивать приоритет. Таким пра-
 
   вилом следует пользоваться в критических ситуациях.
 
 
        Приоритеты для процессов устанавливаются  по  значению
 
   из файла авторизации  пользователя.  Пользователи  с  соот-
 
   ветствующими привилегиями (ALTPRI, GROUP или  WORLD)  могут
 
   изменять свой собственный приоритет или  приоритеты  других
 
   процессов с помощью команд SET PROCESS/PRIORITY диалогового
 
   командного языка. Приоритеты процессов можно также устанав-
 
   ливать и изменять в процессе  работы  с  помощью  программы
 
   системного обслуживания $SETPRI (п.3.2.4).
 
 
        Подпроцессам  и  отсоединенным  процессам   приоритеты
 
   присваиваются  при  создании  процесса  с  помощью  команды
 
   RUN/PRIORITY диалогового командного языка  либо  с  помощью
 
   программы системного обслуживания $CREPRC.  Подпроцесс  или
 
   отсоединенный процесс, обладающий соответствующей  привиле-
 
   гией, может в процессе работы  изменять  свой  приоритет  с
 
   помощью программы системного обслуживания $SETPRI.
 
 
        Приоритеты очередям пакетной  обработки  присваиваются
 
   при их инициализации (INITIALIZE/QUEUE/PRIORITY) или запус-
 
   ке (START/QUEUE/PRIORITY). Можно отрегулировать  приоритеты
 
   очереди пакетной обработки, остановив очередь и  перезапус-
 
   тив ее (STOP/QUEUE  и  START/QUEUE/PRIORITY).  Единственным
 
   способом регулирования приоритета  процесса  во  время  его
 
   выполнения является использование программы системного обс-
 
   луживания $SETPRI.                          [6~
 
 
 
 
 
 
 
                            - 176 -
 
                         00152-01 97 12
 
 
        5.4.2. Увеличение QUANTUM
 
 
 
        Уменьшая значение QUANTUM, можно уменьшить  ту  макси-
 
   мальную задержку, которую ощущает процесс, ожидая централь-
 
   ный процессор. С  уменьшением  значения  параметра  QUANTUM
 
   увеличивается частота  переключений  контекстов  на  основе
 
   временных  интервалов  и  поэтому   увеличивается   процент
 
   использования центрального процессора на обслуживание пере-
 
   диспетчеризации самого центрального процессора. Когда такие
 
   затраты станут ощутимыми, от них начнет страдать производи-
 
   тельность.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                            - 177 -
 
                         00152-01 97 12
 
 
            ПЕРЕЧЕНЬ ССЫЛОЧНЫХ ДОКУМЕНТОВ
 
 
        1.Операционная система МОС ВП. Система управления дан-
 
   ными.  Проектирование  файлов.  Руководство   пользователя.
 
   00152-01 92 01
 
 
        2.Операционная система МОС ВП.  Подсистема  системного
 
   программиста.  Управление  системой.  Справочный  материал.
 
   00152-01 97 10
 
 
        3.Операционная система МОС ВП. Подсистема исполнитель-
 
   ной библиотеки. Руководство программиста. 00152-01 33 09-1
 
 
        4.Операционная система МОС ВП.  Подсистема  системного
 
   сервиса.  Программы  системного  обслуживания.   Справочный
 
   материал. 00152-01 97 06
 
 
        5.Операционная система МОС ВП.  Подсистема  системного
 
   сервиса. Интерфейсные программы. Руководство  программиста.
 
   00152-01 33 02
 
 
        6.Операционная система МОС ВП.  Подсистема  системного
 
   программиста. Программа авторизации пользователей в  систе-
 
   ме. Руководство оператора. 00152-01 34 09
 
 
        7.Операционная система МОС ВП. Подсистема  управления.
 
   Диалоговый  командный   язык.   Руководство   пользователя.
 
   00152-01 92 19-1
 
 
        8.Операционная система МОС ВП.  Подсистема  разработки
 
   программ. Программа компоновщик.  Руководство  програмиста.
 
   00152-01 33 04
 
 
        9.Операционная система МОС ВП.  Подсистема  системного
 
 
 
                            - 178 -
 
                         00152-01 97 12
 
 
   программиста.  Программа  генерации  системы.   Руководство
 
   пользователя. 00152-01 92 07
 
 
        10.Операционная система МОС ВП. Подсистема  системного
 
   программиста. Программа контроля рабочих характеристик сис-
 
   темы. Руководство пользователя. 00152-01 92 15
 
 
 
 
 
 
 
            
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!