Жанр: Учеба
SCO: Пособие администратора системы Unix
...буферов.
Если Вы решили изменить число буферов, то после того, как
система проработала день или около того, проверьте производительность
системы, особенно чрезмерную активность операций свопинга.
Если такая активность имеет место, то уменьшите число буферов.
- 8-10a -
Что делать при добавлении памяти
В прошлом, администраторы системы UNIX с помощью программ
увеличивали все параметры настройки при добавлении памяти на мини-
и суперминикомпьютеры. Это обычно давало возможность системе
поддерживать большее число пользователей без столкновения с ограничениями
системы во время интенсивной нагрузки системы. Для
однопользовательской среды персонального компьютера, однако, не
может появиться потребность в увеличении настраиваемых параметров
ядра. И по причинам, указанным выше, сохранение начальных
ограничений системы может обеспечить оптимальную производительность,
даже когда устанавливается дополнительная память.
- 8-11 -
Как показано в таблице 8.1, значения параметров, принятые
по умолчанию, определены в файле mtune базовой системы применительно
к системе с 2 мегабайтами памяти, для которой рекомендуется
минимальные значения размеров памяти. Если Ваша система использует
конфигурацию с большим числом пользователей, 5 и более
пользователей, Вы можете добавить дополнительную память и увеличить
некоторые параметры так, чтобы системные ограничения не были
превышены, и пропорционально увеличить размер кэш-буфера.Значения
некоторых параметров даны для 3-х- и 4-х-мегабайтной
конфигурации памяти. Вы можете попробовать установить основной
режим работы системы перед тем, как производить изменения, затем
модифицировать системные параметры, а потом снова проверить работу
системы. Это наилучший подход к определению того, улучшается
или ухудшается работа системы в результате изменения параметров.
Таблица 8.3
Зависимость ключевых параметров от размера памяти
+----------------+--------------------------------------------+
| Параметр | Размер памяти |
| +------------+----------------+--------------+
| | 2 M | 3 M | 4 M |
+----------------+------------+----------------+--------------+
|NBUF | 250 | 300 | 400 |
|NHBUF | 64 | 64 | 128 |
|NCALL | 30 | 40 | 50 |
|NINODE | 150 | 200 | 300 |
|NS5INODE | 150 | 200 | 300 |
|NFILE | 150 | 200 | 300 |
|NREGION | 210 | 250 | 300 |
|NCLIST | 120 | 140 | 170 |
|NPROC | 100 | 120 | 150 |
+----------------+------------+----------------+--------------+
Организация файловой системы
В этом разделе описываются действия, предпринимаемые для
уменьшения числа обращений к файлам. При использовании файловой
системы блоки отдельных файлов имеют тенденцию распространяться
по всему диску, и следовательно ввод/вывод становится менее эффективным.
Из-за этого распространения образуется плохой порядок
блоков и плохая организация каталога.
- 8-12 -
Организация списка свободных областей в файловой структуре
Свободные блоки размещаются файловой структурой таким образом,
чтобы обеспечить эффективное проведение операций чтения и
записи файлов. Список свободных областей создается тогда, когда
создается файловая система с помощью команды mkfs(ADM). Однако,
когда Вы начинаете изменять файлы(т.е. менять их размеры или перемещать
их), эффективность работы уменьшается. Когда файлы создаются
первый раз, они состоят из блоков, взятых из списка свободных
областей. Некоторые из блоков распределяются файлам не по
порядку. Как Вы можете видеть, список свободных областей также
распространяется по всему диску, как и блоки распределенные файлам
и освобожденные блоки.
Организация каталога
Организация каталогов также влияют на производительность
операций ввода/вывода. Проблема возникает во время перемещения
пользователем своих файлов. Когда файл удаляется из каталога,
тогда индексный дескриптор этого файла аннулируется. Из-за этого
образуется неиспользуемое место для этого дескриптора; через некоторое
время число таких пустых мест становится слишком большим.
Если Вы имеете каталог для 100 файлов и удаляете первые 99
файлов, то этот каталог содержит 99 пустых неиспользуемых мест, по
16 байтов каждое, которые предшествуют активному индексному дескриптору
файла. Разумеется, пока каталог не реорганизован на диске,
он будет сохранять тот максимальный размер, который когда-то получил.
Восстановление хорошей организации файловой системы
Не существует автоматических путей решения этих проблем;
однако, Вы можете вручную реорганизовать файловую систему. Существует
несколько путей реорганизации. Учтите, что в случаях 1
и 3 , приведенных ниже, файловая система(ы) должна(ы) быть размонтирована(ы).
1. Для реорганизации списка свободных участков, активизи-
руйте команду fsck(ADM), используя опцию -s
________________________________________________________________
Примечание
Реорганизация списка свободных участков не поддерживает
файловые системы AFS.
________________________________________________________________
- 8-13 -
2. Для реорганизации отдельных структур каталога, исполь-
зуйте команду cpio(C) -pdm для копирования их во времен-
ное новое место, удалите эти первичные структуры, а
затем используйте команду cpio -pdm для копирования их
обратно на первоначальное место.
Используйте следующую командную строку:
Ъ2find Ъ1sourcedirЪ2 -print | cpio -pdm destdir
где sourcedir - имя исходного каталога; destdir - имя
каталога, в который Вы перемещаете конкретную структу-
ру. После получения подтверждения того, что вся структу-
ра полностью скопирована, удалите полностью исходный ка-
талог. Наконец, произведите обмен указанных в
командной строке, описанной выше, имени каталога, в
который было проведено перемещение исходного каталога,
на имя исходного каталога, и выполните эту команду
снова. После удаления временного каталога, структура
Вашего исходного каталога будет реорганизована.
3. Для реорганизации файловой системы полностью использует-
ся выбор sysadmsh "Backups(Создание резервных копий)"
для выполнения незапланированного дублирования с нулевым
уровнем файловой системы. (Подробное описание дано в
разделе "Создание резервных копий файловых систем" этого
руководства). Когда операция создания резервной копии
будет завершена, следуйте инструкциям по восстановлению
всей файловой системы.
4. Если Вы имеете более одного диска, установите равновесие
распределения файловых систем.
- 8-14 -
________________________________________________________________
Определение эффективного способа использования системы
После того, как произведена настройка ядра и функций системы,
и организована файловая система, следующим шагом в увеличении
производительности системы будет выполнение служебных функций
и проверка того, уменьшилось ли время первоначальной
загрузки. Ответственный администратор системы должен проверять
следующее :
* не смешиваются менее важные работы с более важными
* устранены ли ненужные действия
* спланированы ли определенные работы для времени, когда
система не занята
* эффективны ли определенные пользователем элементы, такие
как Ъ1profilеЪ3 и $PATH
Команда ps
Команда ps(C) используется для получения информации об активных
процессах. Команда дает "моментальную" картину того, что
сейчас происходит, которая бывает очень полезна, когда Вы пытаетесь
понять, какие процессы происходят в системе. Она вероятно
изменится к тому времени, когда появится вывод команды; однако,
Вас могут заинтересовать значения TIME (минуты и секунды работы
процессора для этих процессов) и STIME (время начала процесса).
Когда Вы определите "ворующий" процесс (тот, который захватывает
все больше ресурсов системы за период времени, в течение
которого Вы наблюдаете за ним), Вы должны определить, кто его
запускает. Возможно, что такой процесс должен быть немедленно
остановлен командой kill(C). Если это действительно выходящий из
под контроля процесс, то он будет продолжать поглощать системные
ресурсы, пока система не зависнет. Для такого "неубиваемого"
процесса единственным средством прекратить его является перезагрузка.
Когда Вы заметите процесс, который выполняется слишком долго,
Вы можете использовать команду cron(C) для того, чтобы выполнить
задание в течение превышающего времени.
- 8-15 -
Переменные пользователя $PATH
$PATH просматривается при каждом выполнении команды. Перед
отображением на экран сообщения "not found(не найдено)" система
должна просмотреть каждый каталог $PATH. Этот просмотр требует
времени как процессора, так и диска. Если диск или процессор
являются узким местом в работе системы, то изменения связанные с
ними, могут улучшить производительность системы.
Вы должны проверить среди пользовательских переменных:
* Эффективность пути
$PATH читается слева направо, так чтобы определить место-
нахождение команды в первом из перечисленных путей (/bin
и /usr/bin). Сделать так, чтобы некоторые каталоги не
повторялись больше одного раза для некоторой команды.
* Удобство и человеческий фактор
Пользователи могут отдать предпочтение просмотру текущего
каталога перед тем как просматривать их из перечислен-
ных путей (:/bin).
* Длину пути
В основном, переменная $PATH должна иметь как можно мень-
ше элементов.
* Ъ1Просмотр больших Ъ3каталогов
По возможности большие каталоги должны быть обойдены.
Поместите большие каталоги в конец переменной $PATH.
- 8-16 -
________________________________________________________________
Использование средств измерения производительности для диагностирования
эффективности системы
Операционная система содержит ряд средств для измерения
производительности системы. Администратор системы может использовать
эти средства для локализации области проблемы. В этом
разделе описаны следующие средства измерения продуктивности:
sar работает с внутренними системными регистрами совокуп-
ной деятельности системы и подготавливает отчеты по
различным аспектам работы системы.
timex подготавливает отчеты по работе системы и по процес-
сам во время выполнения команды или программы.
Внутренняя активность измеряется числом содержащихся в ядре
счетчиков. Каждый раз при выполнении операции наращивается соответствующий
счетчик. Утилита sar(ADM) используется для диагностирования
системных проблем. Двумя наиболее критическими для текущего
контроля областями являются использование памяти и
центрального процессора. Это средство позволяет Вам проверить
значение этих счетчиков. В следующих разделах приведены примеры
использования этих средств. В следующих разделах также обсуждаются
функции, которыми можно управлять с помощью утилиты sar. В
этом разделе описываются опции sar c анализом выходной информации
по измерениям, полученных с помощью этих опций. Sar можно
использовать для того, чтобы собирать данные о работе системы, а
также для выбора того, что было накоплено в информационных файлах,
созданных sa1 и sa2 . sa1 и sa2 инициируются элементами,
помещенными в файл crontab sys.
Основной синтаксис команды sar имеет следующий вид:
Ъ2 sar "опция" t
где
"опция" одна из опций, описанных в следующих разделах.
t выбранный интервал в секундах, может принимать
значения 5 и более.
Вы должны обеспечить работу системы в течении выбранного
интервала времени, если Вы хотите видеть данные в реальном времени;
в противном случае будут отображены ранее собранные данные
из каталога /usr/adm/sa. Для получения большей информации по
более полному об'ему собираемых данных смотрите руководство по
команде sar(ADM).
- 8-17 -
Эти примеры даны для системы с 2 мегабайтами основной памяти
и жестким диском емкостью 30 мегабайт. Выходная информация
команды имеет типичные значения для пользовательской загрузки
системы. Значения, которые Вы получаете, могут отличаться от
значений в примерах, в зависимости от Вашего программного приложения
или контрольной задачи. Во время настройки системы рекомендуется
использовать контрольную задачу или ставить систему
под стандартную нагрузку, чтобы настраивать систему непосредственно
на Ваше конкретное применение.
Использование памяти: буферы и страницы
Определяя число системных дисковых буферов (или явно используя
утилиту configure, или неявно, используя значения по
умолчанию), эффективно разделите доступную память между двумя
пулами: дисковым буферным пулом и страничным пулом. Страничный
пул содержит программы, которые должны выполняться, и кэш-копии
недавно использованных страниц программ. Если страничный пул
слишком мал для загрузки, возложенной на систему, то система будет
постоянно обменивать страницы туда и обратно, чтобы только
поддержать текущие процессы.
Если страничный пул только слегка занижен в размере, эффект
будет виден не в увеличенном обмене, а в уменьшении работоспособности
кэша при повторном прогоне одних и тех же программ. Это
означает, что страниц достаточно для эффективной обработки текущих
программ, но их не хватает для сохранения часто используемых
страниц в памяти для того, чтобы имелся потенциальный доступ к
ним.
При использовании команды sar Вы можете определить, сколько
программ должны участвовать в обмене в течении данного интервала
времени. Если очевиден чрезмерный свопинг, Вы можете перераспределить
память так, чтобы увеличить страничный пул. (См. "Свопинг:
sar -w" для информации о текущем контроле свопинга).
Использование буферов: sar -b
Опция -b позволяет получить отчет о работе буферов:
bread/s Среднее число физических блоков, считываемых в
системные буфера с диска (или другого блок-ори-
ентированного устройства) в секунду.
lread/s Среднее число логических блоков, считываемых из
системных буферов в секунду.
%rcache Доля логического чтения из системного кэш-буфера
(100% минус отношение breads/lreads).
- 8-18 -
bwrit/s Среднее число физических блоков, записываемых из
системных буферов на диск (или другое блок-ори-
ентированное устройство) в секунду.
lwrit/s Среднее число логических блоков, записываемых в
системные буфера в секунду.
%wcache Доля операций логической записи в кэш-буфер
(100% минус отношение bwrit/s к lwrit/s).
pread/s Среднее число запросов физического чтения в се-
кунду.
pwrit/s Среднее число запросов физической записи в се-
кунду.
Наиболее интересным значением является удачное соотношение
%rcache и %wcache, которое показывает эффективность работы системных
буферов. Если %rcache опускается ниже 90, или %wcache
опускается ниже 65, то возможно улучшить работоспособность системы
за счет увеличения числа буферов.
Пример выходной информации sar -b:
+---------------------------------------------------------------
| unix unix 3.2 2 386i 02/18/89
|16:32:57 bread/s lread/s %rcache bwrit/s lwrit/s %wcache pread/s pwrit/s
|16:33:07 3 39 93 1 16 91 0 0
|16:33:17 4 40 90 2 16 87 0 0
|16:33:27 4 41 90 3 7 64 0 0
| Average 4 40 91 2 13 84 0 0
|(среднее)
Этот пример показывает что буфера не являются узким местом,
так как все данные находятся в приемлемых пределах.
Производительность процесса: sar -q
Опция sar -q позволяет определить среднее значение длины
очереди в то время как она существует и процент времени, в течении
которого она существует.
runq-sz Прохождение очереди процессов в памяти; обычно
это значение должно быть меньше 2. Если это зна-
чение постоянно больше, то это означает, что про-
цессор работает на пределе.
%runocc Процент времени, занимаемого очередью процессов;
чем больше это значение, тем лучше.
swpq-sz Обмен очереди процессов на свопинг; чем меньше
это значение, тем лучше.
%swpocc Процент времени занятости очереди на свопинг; чем
меньше это значение, тем лучше.
- 8-19 -
Пример выходной информации sar -q:
+---------------------------------------------------------------
| unix unix 3.2 2 386i 02/18/89
| 11:00:56 runq-sz %runocc swpq-sz %swpocc
| 11:01:07 1.7 98 1.5 36
| 11:01:17 1.0 63 1.0 31
| 11:01:27 1.0 58 1.0 49
| Average 1.3 74 1.2 39
|(среднее)
В этом примере использование процессора (%runocc) меняется
в пределах от 58% до 98%, во время того, как очередь на свопинг
не является пустой (%swpocc) и колеблется от 31% до 49%. Это означает,
что память не является узким местом в системе, однако,
увеличение памяти поможет уменьшить активность страничного обмена.
Если %runocc принимает значение больше 90% и runq-sz больше
2, то процессор сильно загружен, и время ответа системы увеличивается.
В этом случае может потребоваться установка дополнительного
процессора для получения удовлетворительной реакции системы.
Если %swpocc больше 20%, то добавление памяти или нескольких
буферов поможет уменьшить активность страничного обмена.
Использование процессора: sar -u
Использование процессора проверяется с помощью команды saru
(значение задано по умолчанию). В каждый данный момент процессор
может быть либо занят работой, либо простаивать. В рабочем
состоянии процессор может находиться либо в пользовательском,
либо в системном режиме. В нерабочем состоянии процессор может
либо ожидать завершения ввода/вывода, либо просто не иметь работы
для выполнения. Опция -u команды sar показывает процент времени,
в течение которого процессор находится в системном режиме
(%sys), пользовательском режиме (%user), в состоянии ожидания
завершения ввода/вывода (%wio) и в состоянии простоя(%idle).
При обычном использовании разделения времени %sys и %usr
имеют примерно равные значения. Для специальных приложений каждый
из этих параметров может быть больше других, и это не говорит
о какой-либо ненормальности в работе системы. Большая величина
%wio обычно означает, что диск является узким местом в
работе. Большое значение %idle, наряду с ухудшением реакции системы,
может означать стесненные рамки памяти; время, которое
тратится на ожидание освобождения памяти, отражено в %idle.
Колонка "idle" (процент простоя) может также обеспечить некоторое
понимание сущности работы системы. Значения, находящиеся
в этой колонке, обычно колеблются между 40 и 100 процентами, да-
- 8-20 -
же при большом числе активных пользователей. Если это значение
постоянно опускается ниже 30%, то основное соревнование за ресурсы
не подразумевает соревнование за память вообще; критическим
ресурсом является мощность процессора. (Выполните команду
ps(C) для того, чтобы определить, что чрезмерное использование
процессора не вызвано процессом-захватчиком, который захватывает
каждый резервный цикл процессора.)
Если работает большое количество пользователей, то может
помочь переход на серийные логические платы, если Вы используете
более общие платы ввода/вывода. Логические платы берут нагрузку
процессора больше на себя, чем добавляют ему работу.
Кроме того, Вы должны просмотреть /usr/spool/crontab, чтобы
определить не стоят ли задания в очереди во время пиковой нагрузки,
когда они могли бы выполняться при свободном процессоре.
Используйте команду ps для определения того, какой процесс сильно
загружает систему. Поощряйте пользователя запускать большие,
не-интерактивные команды (такие как nroff(CT) или troff(CT))
только во время небольшой загрузки системы. Возможно также запускать
такие команды с меньшим приоритетом посредством использования
команд nice(C) или batch(C). Пример использования команды
sar-u:
+---------------------------------------------------------------
| unix unix 3.2 2 386i 02/18/89
| 09:20:08 %usr %sys %wio %idle
| 09:40:12 6 7 2 86
| 10:00:03 7 9 3 80
| 10:20:07 14 16 10 61
| Average 9 11 5 76
|(среднее)
Системные таблицы: sar - v
Опция -v сообщает о статусе процесса, индексного дескриптора
файла, файла, записи разделенной памяти и файловых таблиц
разделенной памяти. Из этого сообщения Вы можете узнать, нуждаются
ли в модификации системные таблицы.
proc-sz Число элементов таблицы процессов, которые в насто-
ящее время используются или распределены в ядро систе-
мы.
inod-sz Число элементов таблицы индексных дескрипторов фай-
лов, которые в настоящее время используются или рас-
пределены в ядро системы.
file-sz Число элементов таблицы файлов, которые в настоящее
время используются или распределены в ядро системы.
ov Число случаев переполнения. (Одна колонка для каж-
дого из выше перечисленных понятий).
- 8-21 -
lock-sz Число элементов таблицы разделенной памяти, которая
в настоящее время используются или распределено в ядре
системы.
fhdr-sz Больше не применяется.
Значения даны как уровень/размер таблицы. Пример
использования команды sar -v:
+---------------------------------------------------------------
| unix unix 3.2 2 386i 02/18/89
| 17:36:05 proc-sz ov inod-sz ov file-sz ov lock-sz fhdr-sz
| 17:36:35 17/40 0 39/80 0 29/80 0 0/50 0/0
| 17:37:05 19/40 0 46/80 0 35/80 0 0/50 0/0
| 17:37:35 18/40 0 43/80 0 34/80 0 0/50 0/0
Этот пример показывает, что все таблицы достаточно велики,
чтобы не иметь переполнений. Размеры можно уменьшить для того,
чтобы оставить больше памяти, если эти значения являются максимальными.
Свопинг: sar -w
Опция -w предоставляет отчет о свопингах и действии переключения.
Далее следует некоторые целевые значения параметров и
пояснения.
swpin/s Число перемещений в память за секунду.
bswin/s Число 512-байтовых блоковых единиц (блоков), пере-
мещаемых во время свопинга в память (включая начальную
загрузку некоторых программ) в секунду.
swpot/s Число перемещений из памяти в область свопинга на
диске в секунду. Если это число больше 1, то надо уве-
личить память или уменьшить буфера.
bswot/s Число блоков, перемещаемых в секунду при свопинге
из памяти.
pswch/s Переключения процесса в секунду. Это значение долж-
но быть от 30 до 50 при работе 4-6 пользователей систе-
мы.
- 8-22 -
Пример вывода команды sar -w:
+---------------------------------------------------------------
| unix unix 3.2 2 386i 02/18/89
| 09:20:08 swpin/s bswin/s swpot/s bswot/s pswch/s
| 09:40:12 0.0 0.0 0.0 0.0 37
| 10:00:03 0.0 0.0 0.0 0.0 39
| 10:20:07 0.0 0.0 0.0 0.0 39
| Average 0.0 0.0 0.0 0.0 38
|(среднее)
Этот пример показывает, что памяти достаточно для текущей
работы пользователей, так как свопинга нет.
Проверка работы системы по командам: timex
Команда timex хронометрирует команду и сообщает о действиях
системы, которые отмечены во время выполнения команды. Если в
это время не выполнялись другие программы, то timex поможет выяснить,
какие ресурсы использует данная команда во время своего
выполнения. Потребление системных ресурсов для каждой программы
приложения может быть накоплено и использовано для перенастройки
слишком перегруженных ресурсов. timex может быть использована
следующим путем:
$ timex -s "программа приложения"
Ваша программа приложения будет работать нормально. Когда
Вы завершите и выйдете из нее, то результат работы timex появится
на Вашем экране. Вы можете получить ясную картину того, какие
системные ресурсы использовала Ваша программа.
- 8-23 -
________________________________________________________________
Описание настраиваемых системных параметров
Следующий раздел посвящен анализу настраиваемых системных
параметров, определенных в файле /etc/conf/cf.d/mtune. Категории
параметров следующие:
Диски и буферы
Символьные буферы
Файлы, индексные дескрипторы файлов и файловые системы
Процессы, управление памятью и свопинг
Часы
Мультиэкраны
Очередь сообщений
Сигнальные устройства
Разделенные данные
Имя системы
Потоки данных
Очереди событий и устройства
Аппаратно-зависимые параметры
Разделенные параметры удаленных файлов
Диски и буферы
NDISK Число дисковых драйверов, присоединенных к системе.
Этот параметр устанавливается во время загрузки.
NBUF Определяет, сколько распределять системных буферов
размером 1К. Кэш данных является матрицей памяти и
содержит информацию о файлах на диске. Кэш имеет
тенденцию к увеличению с увеличением числа буферов.
Кэш уменьшается с увеличением числа дос
...Закладка в соц.сетях