ние версии файлов более старыми. . - 6-32 - ОПИСАНИЕ УРОВНЕЙ ДУБЛИРОВАНИЯ Самый простой и надежный способ обеспечения безопасности данных - каждый раз делать резервную копию всего содержимого файловой системы. Однако файловые системы могут оказаться боль- шими (400 MB и больше) и будут копироваться часами. Концепция уровней дублирования (или инкрементных дублирований) вызвана этой проблемой. Основная идея инкрементного дублирования - де- лать копию только тех файлов, которые изменились с предыдущего дублирования. Тем самым можно значительно сократить размер ре- зервной копии и продолжительность дублирования. Рассмотрим сле- дующую схему: ежемесячно - полное дублирование; еженедельно - все, что появилось с предыдущей недели; ежедневно - все, что появилось с предыдущего дня. Это значит, что в конце каждого месяца дублируется вся файловая система. Каждую неделю дублируются файлы, изменившиеся после предыдущей недели, и каждый день - файлы, изменившиеся за день. Если в некоторый момент файловая система получает повреждение, вам придется просто восстановить последнюю полную (ежемесячную) резервную копию, последнюю еженедельную копию и все ежедневные копии, сделанные до инцидента. Таким образом, всегда можно ре- конструировать файловую систему, имея набор резервных копий. Хотя это и выглядит просто, реализовать инкрементное дубли- рование сложнее. Принципы уровней инкрементного дублирования Чтобы процесс дублирования был более эффективным, в средс- тве дублирования предусмотрен последовательный ряд уровней, каж- дый из которых базируется на последнем дублировании более низко- го уровня. Поддерживается до десяти различных уровней дублирова- ния, что позволяет администратору системы проявлять значительную гибкость в организации дублирования. . - 6-33 - Уровень Сохраняемые файлы ---------------------------------------------- 0 Все файлы файловой системы 1 Файлы, изменившиеся после последнего дублирования уровня 0 2 Файлы, изменившиеся после последнего дублирования уровня 1 3 Файлы, изменившиеся после последнего дублирования уровня 2 .............................................. 9 Файлы, изменившиеся после последнего дублирования уровня 8 Все десять уровней могут использоваться в компьютерах с массивными файловыми системами; обычные системы используют лишь несколько уровней. Уровни предназначены для разбиения дублирова- ния на управляемые элементы. Важно усвоить, что дублирование каждого уровня создает резервную копию на основе копии предыду- щего (ближайшего более низкого) уровня. Это значит, что порядок дублирований несущественен, но существенен номер уровня. Предположим, например, что за неделю были сделаны следующие резервные копии: День Уровень Скопированные файлы -------------------------------------------------------- Понед. 0 Все файлы файловой системы Втор. 5 Все файлы, изменившиеся с понедельника Среда 2 Все файлы, изменившиеся с понедельника Четв. 7 Все файлы, изменившиеся со вторника Пятн. 5 Все файлы, изменившиеся со среды Этот пример нелогичен, но его можно использовать для де- монстрации работы уровней. Помните, что при каждом дублировании сохраняются файлы, изменившиеся после дублирования с ближайшим более низким уровнем (самый низкий уровень - 0). Следовательно, в пятницу на уровне 5 будет сделана резервная копия файлов, из- менившихся после дублирования с ближайшим более низким уровнем, уровнем 2, которое выполнялось в среду. Во вторник на уровне 5 будут сохранены только те файлы, которые изменились с предыдуще- го дня, так как единственный предыдущий более низкий уровень дублирования - уровень 0. Если бы все дублирования, кроме поне- дельника, выполнялись на уровне 5, в каждом случае дублировались бы все файлы, изменившиеся после дублирования уровня 0 в поне- дельник. Как работает расписание, принятое по умолчанию Файл schedule, принимаемый по умолчанию, поставляется с дистрибуцией; в нем используется только четыре уровня, и его можно оптимизировать для применения в системах умеренного поль- зования (8-10 пользователей с общей дисковой памятью 200-400 MB). . - 6-34 - +--------------------------------------------------------------+ | # 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10| | # Filesystem M T W T F M T W T F M T W T F M T W T F | | /dev/rroot 0 x 9 x 9 8 x 9 x 9 1 x 9 x 9 8 x 9 x 9 | | /dev/ru 9 0 9 9 9 9 8 9 9 9 9 1 9 9 9 9 8 9 9 9 | +--------------------------------------------------------------+ Рисунок 6-5. Расписание, принимаемое по умолчанию Файловая система /u Файловая система /dev/ru является интенсивно используемым ресурсом. Каждый день делается резервная копия некоторого уров- ня. Эта схема служит для минимизации ресурсов при максимизации надежности; если одна или несколько резервных копий за эту неде- лю потеряется или испортится, существующей избыточности будет достаточно для минимизации любой потери данных. Согласно расписанию, принятому по умолчанию, полное дубли- рование (уровня 0) файловой системы /dev/ru выполняется в начале месяца. (Так как резервная копия уровня 0 для корневой файловой системы делается в понедельник, то резервная копия уровня 0 для /u делается во вторник.) В среду при дублировании уровня 9 будут сохранены только те файлы /dev/ru, которые изменились после дуб- лирования уровня 0. К концу недели будет задействовано гораздо меньшее число дискет или лент, чем нужно при ежедневном полном дублировании. Значительно сокращается и время дублирования. Если нужно восстановить файловую систему в последнее зарегистрирован- ное состояние, вам придется восстановить последнюю резервную ко- пию уровня 0, а затем - все резервные копии более низкого уров- ня, сделанные с тех пор. Заметьте, что каждый вторник происходит дублирование низше- го уровня (0, 1 или 8), при котором сохраняется все с начала ме- сяца; теперь каждое последующее дублирование уровня 9 будет ба- зироваться по этой неделе. В итоге резервные копии уровня 9 не будут чрезмерно большими и избыточными. Файловая система root Корневая файловая система содержит операционную систему и другие системные файлы. Она изменяется реже, и ее не нужно дуб- лировать каждый день. Каждый понедельник делается резервная ко- пия низшего уровня, и дважды в неделю - резервная копия уровня 9. Как и для файловой системы /u, дублирование уровня 9 сводится к тем только файлам, которые изменились за эту неделю. . - 6-35 - Как используются резервные копии для восстановления файло- вой системы Теперь предположим, что произошел аппаратный сбой, разру- шивший информацию на жестком диске. Допустим, это случилось в последний четверг месяца, как раз перед тем, когда должна была быть сделана резервная копия. После того, как проблема с аппара- турой устранена и система заново установлена, нужно как-то вос- становить резервные копии. Восстановите последний вариант каждо- го уровня дублирования в убывающем порядке: * уровень 0 (сделанный в первый вторник месяца) * уровень 1 (сделанный в третий вторник) * уровень 8 (сделанный в четвертый вторник) * уровень 9 (сделанный в среду вечером) Вам не нужно восстанавливать резервную копию уровня 8, сде- ланную во второй вторник, так как последовавшая за ней копия уровня 1 покрыла те же файлы. Единственная информация, которой не хватает, - что изменилось за четверг до сбоя. Это главная причина необходимости дублирования; восстановление после сбоя пройдет просто и с минимальными потерями. Глава 7 Добавление драйверов устройств в среде конструктора связей ________________________________________________________________ Введение 7-1 Драйверы устройств 7-2 Установка драйверов устройств 7-2 Установка драйверов с предварительной конфигурацией 7-3 Установка драйверов без процедуры настройки оболочки 7-3 - 7-2 - ________________________________________________________________ Драйверы устройств Драйвер устройства в среде UNIX представляет собой набор программ, которые обеспечивают связь с физическими устройствами и являются средствами, с помощью которых операционная система может управлять выполнением операций ввода/вывода для этих уст- ройств. Драйвер устройства обычно поставляется в виде одного прог- раммного модуля. Установка этого программного модуля в ядро яв- ляется важной и необходимой частью для установки физических устройств. Она должна быть полностью завершена до того как уст- ройство будет использоваться. Драйвер обычно дополняется вспомо- гательной программой или процедурой настройки оболочки, которые помогают сформировать связи между драйвером и ядром. Чтобы подготовить установку нового драйвера устройства не- обходимо выполнить следующие действия: * После закрытия системы и отключения питания установить физическое устройство в системный блок в соответствии с инструкциями его производителя. * Загрузить систему и выбрать режим поддержки системы. Все операции, описанные в процессе установки, должны выпол- няться в этом режиме. * Убедиться, что установлен конструктор связей. Если он еще не установлен, установите его используя команду custom(ADM). * Установите каталог, содержащий конструктор связей так, чтобы можно было запустить средства конфигурации. cd /etc/conf/cf.d Большинство процедур установки, описанных ниже, должны выполняться в этом каталоге.  Установка драйверов устройств Инструкции по установке новых драйверов устройств отличают- ся для каждого типа устройств. Необходимо пользоваться только инструкцией по установке, поставляемой вместе с программным обеспечением конкретного драйвера устройства. - 7-3 - После того, как установлен конструктор связей и изучена ин- струкция по установке, можно приступить к следующим шагам по ус- тановке драйвера, которые зависят от того как, много работы уже было сделано поставщиком драйвера. Многие поставщики драйверов компонуют драйверы утилитами автоматической установки драйвера, совместимыми с custom. Вставьте гибкий диск, полученный от поставщика драйвера, в дис- ковод и введите : custom sysadmsh выбор пользователя: Система->Программное обеспечение Выберите опцию добавления поддерживаемых продуктов, и следуйте инструкциям, появляющимся на экране. Custom запустит поставляемое вместе с драйвером V-совместимое с системой UNIX программное обеспечение автоматической установки. Оно устанавли- вает программное обеспечение драйвера устройства и устанавливает связи с версией ядра UNIXa, которое содержит новый драйвер уст- ройства. После того как custom завершит свою работу, следует пе- рейти к следующему шагу установки, обычно заключающемся в тести- ровании созданного ядра. Для получения детального описания обратитесь к документации устанавливаемого драйвера устройства. Если драйвер имеет предварительную конфигурацию следует вы- полнить инструкции, описанные в "Установке драйверов с предвари- тельной конфигурацией". Если это не так, следуйте "Установке драйверов без процедуры настройки оболочки", где определены действия, необходимые для включения драйвера в конфигурацию сис- темы. Установка драйверов с предварительной конфигурацией Гибкий диск установки драйвера может поставляться с проце- дурой установки оболочки, используемой для включения нового драйвера в систему. Если такая процедура присутствует на диске, запустите ее, введя: ./<имя процедуры> - 7-3a - где имя процедуры есть имя процедуры установки оболочки. Большинство процедур установки оболочки также создает все специ- альные файлы необходимые для работы устройства; если это так, перезагрузите ядро, которое теперь включает новый драйвер. Если процедура установки оболочки не создала соответствующие специ- альные файлы в /dev, Вы должны создать их с помощью команды mknod(C). Для получения более подробной информации по созданию специальных файлов смотрите шаг 10 в "Установка драйверов без процедуры настройки оболочки" или обратитесь к руководству по команде mknod(C). Установка драйверов без процедуры настройки оболочки Если на гибком диске, поставляемом с драйвером, не сущест- вует процедуры установки оболочки, следуйте действиям описанным ниже (если у Вас возникнут проблемы, обратитесь к поставщику драйвера для получения помощи): - 7-4 - 1. Создайте резервную копию ядра с помощью следующей коман- ды: cp/unix/unix.old 2. Введите имя программы драйвера из модуля драйвера. Мо- дуль драйвера является .o файл (обычно Driver.o) в инсталяционной области. Введите команду : ./routines Driver.o ________________________________________________________________ Примечание Если Вы видите несколько .о файлов, то это значит, что установочная область содержит более чем один драйвер. Каждый .о файл является модулем драйвера. Имена этих файлов для каждого драйвера обычно содержат некоторый префикс, который является именем соответствующего устройства. Например, модуль драйвера для серийного устройства ввода/вывода может иметь имя sioDriver.o. Вы должны повторить шаги 2-10 процедуры, которая описывается в данном разделе, для каждого драйвера, который Вы хотите установить. ________________________________________________________________ 3. Определите уровень приоритета прерываний. Уровень прио- ритета драйвера имеет имя, состоящее из строки spl, за которым следует номер от 0 до 7. Наибольший номер следу- ющий за spl и есть уровень приоритета прерываний. Напри- мер, если имя spl6 является наибольшим уровнем приорите- та, то уровень приоритета прерываний устройства есть 6. Затем вычеркните все spl программы из списка. 4. Найдите соответствующие имена программ драйвера. Все программы драйвера с перестраиваемой конфигурацией имеют общий префикс, такой как sio. За каждым префиксом сле- дует один из суффиксов:open, сlose, read, write, ioctl, startup, exit, fork, exec, init, halt, poll, strategy, print, _tty, или intr. Если имя программы образовано не по этому правилу вычеркните его из списка. Например, ес- ли Ъ3routines для sioDriver.o порождает большой список программ, начинающихся с sio, и одну ttinit программу, то Вы должны вычеркнуть ее из списка, так как имя ее на- чинается не с sio. Sio драйвер содержит несколько других программ, которые также должны быть вычеркнуты, такие как siopinit - из-за "p". Sio - исключительный случай: большинство драйверов не имеют такие неправильные имена программ. - 7-5 - 5. Определите являются ли периферийные устройства блок-ориен- тированными или символ-ориентированными устройствами. Если существует программа с суффиксом strategy или print, то устройство является блок-ориентированным. Если суффикс - read, write или ioctl, то устройство сим- вол-ориентированное. Если нет программ ни с одним из вы- шеперечисленных суффиксов, то считайте, что устройство - символ-ориентированное. 6. Создайте подкаталог в /etc/conf/pack.d , в который надо поместить набор файлов устанавливаемого драйвера. В качестве имени подкаталога примите общий префикс фай- лов. Ъ2mkdir /etc/conf/pack.d/prefix Если вы планируете использовать имя драйвера отличное от общего префикса (см. использование опции -h в команде configure, описанной дальше), используйте это имя для имени подкаталога вместо префикса. Поместите файлы, связанные с драйвером в этот новый под- каталог. Список файлов будет по крайней мере включать файл Driver.o. Если набор файлов драйвера также содержит файлы space.c и stub.c, поместите эти файлы также в соз- данный подкаталог. Ъ2mv Driver.o space.c stubs.c /etc/conf/pack.d/prefix _______________________________________________________________ Примечание Если выбранные Вами файлы из установочной области относятся более чем к одному драйверу (несколько .о файлов), то имена этих файлов начинаются с имени соответствующего драйвера для каждого драйвера из установочной области (например, sioDriver.o, siospace.c и siostubs.c). Когда Вы разместите файлы в подката- логе каталога /etc/conf/pack.d, удалите префикс из имен фай- лов таким образом, чтобы имена их были просто Driver.o, space.c и stubs.c. Например : mv sioDriver.o /etc/conf/pack.d/sio/Driver.o mv space.c /etc/conf/pack.d/sio/space.c mv stubs.c /etc/conf/pack.d/sio/stubs.c Не забудьте создать подкаталог и поместить в него файлы для каждого драйвера, который Вы устанавливаете. _______________________________________________________________ - 7-6 - 7. Получите главный номер устройства с помощью следующей команды и запомните его для дальнейшего использования : ./configure -j NEXTMAJOR 8. Выберите вектор прерываний для конкретного устройства. Если существует программа с именем intr, обратитесь к руководству по техническому обеспечению для того, чтобы найти какие вектор или вектора доступны для использова- ния конкретным устройством для прерывания. Чтобы полу- чить список уже активизированных векторов, введите ко- манду : ./vectorsinuse Некоторые драйверы написаны таким образом, что позволяют разделение векторов, однако для наилучшего использования системы рекомендуется каждому устройству предоставлять свой собственный вектор или вектора, если это возможно. Выберите подходящие вектор или вектора для данного уст- ройства и запишите их. 9. Используйте команду configure для занесения информации о новом драйвере в файлы конфигурации системы. Все опции команды configure подробно описаны в руководстве по этой команде (ADM). Команда configure имеет следующий синтак- сис и вводится в одной строке, т.е. без нажатия клавиши Return до того, пока не будет полностью введена команда: ./configure -b -c -m <главный номер устройства> -с -m \ <список векторов> -l <уровень приоритета прерываний> -h \ <имя устройства> Эти опции имеют следующие назначения и ограничения ис- пользования : -b используется, если устанавливается блок-ориентиро- ванное устройство. -c используется, если устанавливается символ-ориентированное устройство. -m должна предшествовать главному номеру устройства, определенному ранее. -s используется вместе с опцией -h, когда добавляется или удаляется некоторый последовательный модуль и заменяет -m,-b и -c. Для поток-ориентированного драйвера используется с опциями -m и -c. -v используется только если драйвер имеет intr прог- рамму; предшествует списку векторов определенным ранее. -a предшествует списку имен программ драйвера, опре- деленным командой routines и вычеркиванием исклю- чительных элементов. - 7-7 - -l используется только если драйвер имеет spl прог- рамму; предшествует уровню приоритета прерываний, определенному ранее. -h используется только для того, чтобы указать имя устройства, отличное от префикса программ драйве- ра, или вместе со stream module когда не указан префикс; подкаталог каталога /etc/conf/pack.d, предназначенный для хранения файлов драйвера, должен иметь имя этого устройства. Например, для установки в конфигурацию серийного драйве- ра ввода/вывода, используется команда: ./configure -c -m 5 -v 3 4 -a sioopen sioread siowrite\ sioioctl siopoll sioinit sio_tty -l 7 Установка драйвера виртуального диска является более простым примером, для внесения его в конфигурацию ис- пользуется команда: ./configure -b -m 31 -a ramopen ramclose ramstrategy \ ramprint Используя опции -s и -h, Вы можете внести в конфигурацию поток-ориентированный модуль: ./configure -a nmi_init -s -h nmi 10. Для того, чтобы программы могли получить доступ к вновь установленному устройству, создайте специальный файл устройства в /dev. Специальные инструкции по установке, поставляемые вместе с устройством, содержат более точ- ные сведения по имени специального файла и другим пара- метрам, связанным с ним. Для создания специального фай- ла устройства используется команда mknod. Определите имя специального файла, тип устройства( "b" - для блок- ориентированного, "c" - для символ-ориентированного), главный номер устройства и младший номер устройства (показывающий номер устройства, драйвера или линейный номер). Например, для того чтобы создать специальный файл для серийного драйвера ввода/вывода, введите : /etc/mknod /dev/ttyla c 5 1 Далее приводятся примеры создания специальных файлов устройств: /etc/mknod /dev/hcd0 b 1 0 /etc/mknod /dev/rhcd0 c 1 0 /etc/mknod /dev/hqp c 7 0 Учитывайте соглашения UNIX по установке имен дисковых устройств. Вы можете присоединить цифру к мнемоническо- му коду для указания номера драйвера. Имя специального символ-ориентированного устройства должно иметь префикс "r". - 7-8 - 11. Постройте ядро, содержащее новые драйверы, используя следующую команду: ./link_unix sysadmsh выбор пользователя: Система->Конфигурация->Яд- ро->Построение Установка связей займет некоторое время, поэтому следу- ет осуществлять эту операцию после того, как будут ус- тановлены все драйверы. 12. Загрузите новое ядро, используя следующую команду : /etc/shutdown sysadmsh выбор пользователя: Система->Завершение Появится сообщение о загрузке. По нажатию клавиши <Return> активизируется перезагрузка системы и загру- зится новое ядро. ________________________________________________________________ Примечание Если  возникнут   проблемы  с  новым  ядром, перезагрузите /unix.old ________________________________________________________________ Глава 8 Настройка работы системы ________________________________________________________________ Введение 8-1 Примеры специального распределения ресурсов 8-3 Перераспределение ресурсов ядра с помощью утилиты конфигурации 8-4 Использование командной строки configure 8-5 Реконфигурация в случае постоянных сообщений об ошибках 8-7 Реконфигурация для выполнения задач 8-8 Когда настраивать и что настраивать 8-8 Специальные требования 8-8 Улучшение использования диска 8-9a Что надо сделать когда добавляется память 8-10a Организация файловой системы 8-11 Определение эффективного способа использования системы 8-14 Команда ps 8-14 Переменные пользователя $PATH 8-15 Использование средств измерения производительности для диагностирования неэффективности системы 8-16 Использование памяти: Буферы и страницы 8-17 Использование буферов: sar -b 8-17 Производительность процесса: sar -q 8-18 Использование процессора: sar -u 8-19 Системные таблицы: sar -v 8-20 Свопинг: sar -w 8-21 Проверка работы системы по командам: timex 8-22 Описание настраиваемых системных параметров 8-23 Диски и буферы 8-23 Символьные буферы 8-25 Файлы, индексные дескрипторы файла и файловые системы 8-26 Процессы, управление памятью и свопинг 8-29 Часы 8-31 Мультиэкраны 8-32 Очередь сообщений 8-32 Семафоры 8-33 Разделенные данные 8-34 Имя системы 8-35 Потоки данных 8-35 Очеpеди событий и устpойства 8-38 Аппаpатно-зависимые паpаметpы 8-38 Паpаметpы pазделения удаленных файлов 8-38 - 8-1 - ________________________________________________________________ Введение Конструктор связей содержит утилиту configure(ADM), которая используется для изменения числа параметров, влияющих на работу системы. В этой главе объясняется как изменить эти параметры применительно требованиям Вашей системы. Кроме того, включены основные процедуры, которые помогут улучшить использование ре- сурсов и работу системы. Система UNIX оптимизирована для использования с разнообраз- ными конфигурациями технических средств и является базой для различных применений. Ядро, которое является сердцем операцион- ной системы, управляет числом ресурсов постоянно использующихся, освобождающихся и повторно подключающихся. Эти ресурсы включают: буферы некоторый набор блоков внутренней памяти, используе- мых для хранения в них используемых данных. (Буферы увеличивают эффективность, так как данные хранятся во внутренней памяти, что уменьшает число операций чтения с диска). табличные элементы некоторая область в каких-либо таблицах, которая ис- пользуется ядром для хранения информации о текущих задачах, ресурсах и событиях. другие параметры Другие определяемые значения, управляющие специаль- ными ресурсами (такие как число доступных мультиэк- ранов или количество сигнальных устройств). Использование этих ресурсов определяется некоторыми грани- цами, которые можно сузить или расширить, иногда за счет других ресурсов. Настройка работы системы обязательно потребует внимания при первичной установке системы UNIX. Когда Вы первый раз загружаете систему, она автоматически настроена на стандартную конфигура- цию, которая удовлетворяет большинству ситуаций. Эта конфигура- ция, однако, не может считаться образцом использования системы для конкретного применения. Поэтому структура системы позволяет провести ее реконфигурацию для увеличения эффективности конкрет- ного использования системы по сравнению со стандартной конфигу- рацией системы. - 8-2 - ________________________________________________________________ Примечание Хотя существуют средства, которые упрощают процесс настрой- ки, мы не рекомендуем изменять параметры ядра без особой необходимости. ________________________________________________________________ Существует несколько причин для перераспределения ресурсов системы : * Вы устанавливаете дополнительную память и поэтому хотите распределить больше памяти. * Постоянно появляются сообщения об ошибках, которые пока- зывают, что заняты определенные ресурсы, такие как ин- дексные дескрипторы файла или элементы таблицы. * Время реакции системы постоянно слишком велико, а это оз- начает, что ресурсы очень малы для эффективной работы системы (например, очень мало установлено физической па- мяти). * Ресурсы необходимо перестроить для того. чтобы они отве- чали требованиям конкретного приложения. Кроме того, важно определить, какие из ресурсов оказались излишними или неэффективно распределенными. Определенные настра- иваемые параметры отвечают требованиям к системе, когда устанав- ливается дополнительная память с целью поддержки системой боль- шего количества пользователей. Однако, для компьютера, используемого в качестве высоко-производительного персонального компьютера или специализированного процессора, нет необходимости увеличивать настраиваемые параметры ядра, когда устанавливается дополнительная память. Конечно, настройка определенных парамет- ров обычно связана с установкой дополнительной памяти для под- держки большего количества пользователей (NBUF, NCLIST и др.) может на самом деле уменьшить общую производительность, так как эти параметры увеличивают размер требуемой области данных ядра, что уменьшает доступный размер новой памяти для работы пользова- телей. Проще говоря, ожидаемое использование Вашего компьютера и Ваши планы, как это делать, должны использоваться как руководс- тво при определении требований по настройке параметров. Существуют другие стороны настройки конфигурации системы, приводящие к отрицательному влиянию на работу системы. Например: * организация файловой системы * организация каталогов * эффективность использования $PATH - 8-3 - * использование ps, sar, учета работы, профилирование ядра и другие системные утилиты для определения степени ис- пользования системы. В этой главе также обсуждается вопрос о том, как убедиться, что система работает с максимальной эффективностью в конкретных областях применения. Примеры специального распределения ресурсов Специальные приложения зачастую требуют перераспределения ключевых ресурсов системы для оптимизации работы. Например, пользователи, работающие с большими базами данных, могут решить, что необходимо увеличить число распределенных файлов по отноше- нию к текущему числу файлов, установленных в системе. Пользова- тели, которым не требуется специальных средств, например, таких как управление сообщениями, могут решить, что они получат неко- торое увеличение скорости работы системы при отсоединении этих средств. Решение об оптимизации использования конкретных ресурсов рассматривается как решение о настройке ядра. Каждый ресурс или ограничение представляется отдельным параметром ядра. Текущие значения этих параметров изменяются с помощью утилиты configure. - 8-4 - ________________________________________________________________ Перераспределение ресурсов ядра с помощью утилиты CONFIGURE Утилита configure является легко используемой меню-ориенти- рованной программой, которая представляет каждый ресурс и запрос на модификацию, устанавливает распределение соответствующих ре- сурсов,  редактирует  ядро,  включая  процедуры  установки среды link_unix, копирует ядро в корневой каталог, перезагружает и тестирует новое ядро. Чтобы изменить какой-либо параметр ядра необходимо выпол- нить следующие действия: 1. Перезагрузите систему и выберите однопользовательский режим(режим сопровождения). 2. Используйте команду custom (ADM) для того, чтобы опреде- лить установлен ли пакет конструктора связей (LINK). Ес- ли нет, - установите его с помощью команды custom. 3. После того, как Вы убедитесь, что конструктор связей ус- тановлен, введите следующие команды: cd /etc/conf/cf.d ./configure sysadmsh выбор пользователя: Система-> Конфигурация-> Ядро-> Параметры 4. На экране отобразится меню утилиты configure: +---------------------------------------------------------------+ | 1. Дисковые буферы | | 2. Символьные буферы | | 3. Файлы, индексные дескрипторы и файловые системы | | 4. Процессы, управление памятью и своппинг | | 5. Часы | | 6. Мультиэкраны | | 7. Очередь сообщений | | 8. Семафоры | | 9. Разделенные данные | | 10. Имя системы | | 11. Потоки данных | | 12. Очередь событий и устройства | | 13. Аппаратно-зависимые параметры | | 14. Параметры разделенных удаленных файлов | | | | Выберите категорию параметров, подлежащих реконфигура- | | ции, набрав ее номер от "1" до "14" или "q" для выхода: | +---------------------------------------------------------------+ - 8-5 - Выберите категорию с помощью ввода соответствующего но- мера. Тогда на экране отобразятся один за другим ресурсы этой категории, каждый со своим текущим значением. Вве- дите новое значение для этого ресурса или оставьте его текущее значение простым нажатием клавиши <Return>. Пос- ле того как будут отображены все ресурсы выбранной кате- гории, утилита configure возвращается к меню со списком категорий параметров. Выберите другую категорию парамет- ров для изменения или покиньте утилиту нажатием клавиши "q". ________________________________________________________________ Примечание Следует отметить, что программный пакет, соответствующий изменяемому параметру, должен существовать, чтобы действительно использовать ресурс соответствующий параметру. Например, пакет Stream должен быть установлен для параметров потоков, чтобы был эффект. ________________________________________________________________ 5. После того, как Вы закончите изменять параметры, надо включить их в новое ядро. Введите следующую команду: ./link_unix sysadmsh выбор пользователя: Система-> Конфигурация-> Ядро-> Построение Эта команда собирает каждый из модулей ядра в новое яд- ро, которое должно быть теперь установлено. Следуйте ин- струкциям раздела "Тестирование и установка нового яд- ра" в главе "Добавление драйверов устройств с помощью конструктора связей". Использование командной строки configure Утилита configure имеет также интерфейс командной строки, используемый для разработчиков программных приложений. Например, разработчик баз данных решает, что ему необходимо разместить од- новременно 70 файлов вместо 50, тогда он может использовать про- цедуру установки среды для того, чтобы выполнить реконфигурацию. Для того, чтобы определить текущее значение некоторого ресурса конфигурации, используя интерфейс командной строки, следует ввести: - 8-6 - Ъ2./configure -y RESOURCE где RESOURCE - имя настраиваемого параметра (набирается прописными буквами). Для того чтобы изменить значение некоторого ресурса, используя командную строку, введите: Ъ2./configure RESOURCE=<значение> Этот интерфейс является дополнением к интерактивному; одни и те же ресурсы могут включаться в конфигурацию с помощью обоих интерфейсов. Следующий раздел описывает действия необходимые для рекон- фигурации ресурсов ядра. - 8-7 - ________________________________________________________________ Реконфигурация в случае постоянных сообщений об ошибках Бывают ситуации, когда операционная система выдает сообще- ния, что превышены системные ограничения. Эти сообщения выдаются в виде строк на экране консоли. Некоторые из них являются чисто информационными. Другие предшествуют аварийному состоянию систе- мы, в этом случае выводятся дополнительные диагностические сооб- щения и система "подвисает", требуя вмешательства для перезаг- рузки. Не следует изменять конфигурацию ядра, если сообщение получено один раз, или даже несколько раз, а только в том слу- чае, когда одно и тоже сообщение появляется постоянно. Если Вы встречаете одно из сообщений перечисленных в табли- це 8.1, обратите внимание на соответствующие параметры настройки для получения дополнительной информации. Если возникла необходи- мость в регулировке ресурса, попробуйте увеличить для начала его значение на небольшую величину, если проблема остается, то сле- дует увеличить значение ресурса на 100% или более относительно его первоначального значения. Если проблема все еще не будет ре- шена, то следует более детально исследовать ситуацию и опреде- лить, какая программа или последовательность приводят к ошибке. - 8-7a - Таблица 8.1  Сообщения об ошибках и связанные с ними настраиваемые параметры +-----------------------------------------------+--------------+ | Сообщения об ошибках ядра | Параметры | +-----------------------------------------------+--------------+ |iget-inode table overflow | NINODE | |(переполнение таблицы iget-inode) | | +-----------------------------------------------+--------------+ |timeout table overflow | NCALL | |(переполнение таблицы таймаутов) | | +-----------------------------------------------+--------------+ |file table overflow | NFILE | |(переполнение таблицы файлов) | | +-----------------------------------------------+--------------+ |mfree map overflow n(*) | SPTMAP | |(переполнение плана mfree) | | +-----------------------------------------------+--------------+ |Region table overflow | NREGION | |(переполнение таблицы регионов) | | +-----------------------------------------------+--------------+ |configured value of NOFILES n(*) is less than | NOFILES | |minimum(greater of the maximum) | | |[значение NOFILES в конфигурации меньше | | |минимального(больше максимального)] | | +-----------------------------------------------+--------------+ |stropen: out of streams | NSTREAM | |(выход за возможное число открытых потоков) | | +----------