Утилита учета системных ресурсов позволяет собирать информацию и создавать отчеты об использовании различных ресурсов системы отдельными пользователями, группами и классами WLM.
Информация об учете ресурсов может применяться для составления счетов на оплату пользователями аренды системного времени или для отслеживания отдельных параметров работы системы. При вычислении платы за аренду процессорного времени система учета ресурсов обеспечивает вычисление итоговых объемов использования ресурсов (группой adm), и, если указана команда chargefee, применение коэффициентов к полученным значениям.
Система учета ресурсов также позволяет получить данные об оптимальности текущего распределения, набора ограничений и квот на использование ресурсов, а также позволяет предсказывать будущие требования к ресурсам и необходимые объемы расходных материалов для принтеров и других устройств.
Следующие разделы помогут вам настроить в системе учет ресурсов:
Для запуска автоматического сбора информации пользователь из группы adm должен выполнить инструкции, приведенные в разделе "Настройка системы учета ресурсов". Эти инструкции настраивают демон cron на запуск команд, собирающих данные о следующих параметрах:
Система создает запись для каждого сеанса и обрабатывает ее после завершения сеанса. Эти записи затем преобразуются в итоговые записи учета ресурсов (tacct) для каждого из пользователей и объединяются в ежедневный отчет. Периодически ежедневные отчеты объединяются для создания итоговых отчетов за больший период времени. Способы сбора данных и создания отчетов, а также различные команды и файлы учета обсуждаются в следующих разделах.
Хотя большая часть данных учета ресурсов собирается автоматически, пользователь из группы adm для получения конкретной информации может ввести некоторые команды с клавиатуры. Эти команды перечислены в разделе Команды, запускаемые вручную.
Существует несколько типов данных учета ресурсов:
Эти типы данных описаны в следующих разделах.
Данные о времени соединения собираются командами init и login. При каждом входе в систему программа login добавляет запись в файл /etc/utmp. Эта запись содержит имя пользователя, дату, время и порт входа в систему. Другие команды, например, команда who, считывают содержимое этого файла для получения информации о том, какие пользователи работают на различных дисплейных станциях. Если в системе существует файл учета /var/adm/wtmp, то команда login добавляет в него копию записи о входе в систему.
После завершения начальной программы (обычно при выходе из системы) процесс init добавляет в файл /var/adm/wtmp запись о завершении сеанса. Записи о выходе из системы отличаются от записей о входе в систему тем, что в них указано пустое имя пользователя. Формат обоих записей описан в файле utmp.h.
Кроме того, команда acctwtmp заносит в файл /var/adm/wtmp специальные записи при запуске и закрытии системы.
Дополнительная информация приведена в разделе Отчеты о времени подключения.
Для каждого запускаемого процесса система собирает следующие данные об использовании ресурсов:
Команда accton записывает эти данные в специальный файл, обычно /var/adm/pacct.
Связанные команды: startup, shutacct, dodisk, ckpacct и turnacct.
Дополнительная информация по этому вопросу приведена в разделе Создание отчетов об использовании ресурсов.
Большая часть информации об использовании ресурсов относится к их расходу. Команда dodisk, периодически запускаемая демоном cron, добавляет в файл /var/adm/acct/nite/dacct записи об использовании дисковой памяти каждым из пользователей. Для этого команда dodisk вызывает другие команды. В зависимости от требуемой подробности учета ресурсов, для сбора данных применяется команда diskusg или acctdusg. Для создания итоговой записи учета ресурсов применяется команда acctdisk. Итоговая запись, в свою очередь, применяется командой acctmerg для создания ежедневного отчета об использовании ресурсов.
Команда dodisk просматривает все файлы в домашних каталогах пользователей и делит стоимость каждого файла на число ссылок на него. При этом стоимость файла будет распределена между всеми пользователями, работавшими с ним. Остальные пользователи не будут вовлечены в эту процедуру.
Дополнительная информация по этому вопросу приведена в разделе Отчет об использовании дисков.
Данные об использовании принтеров собираются совместно командой enq и демоном работы с очередью. Команда enq ставит в очередь имя пользователя, номер задания и имя печатаемого файла. После завершения печати файла команда qdaemon добавляет в определенный файл (обычно в /var/adm/qacct) текстовую запись с именем, номером пользователя и числом напечатанных страниц. Эти записи затем можно отсортировать и преобразовать в итоговые записи учета ресурсов.
Дополнительная информация по этому вопросу приведена в разделе Отчет об использовании принтеров.
Введите команду chargefee для создания в файле /var/adm/fee итоговой записи учета ресурсов. Этот файл затем будет добавлен в дневной отчет командой acctmerg.
Дополнительная информация по этому вопросу приведена в разделе Отчет об оплате.
После сбора информации об использовании различных ресурсов полученные данные обрабатываются и преобразуются в отчеты.
Команды учета ресурсов автоматически преобразуют слишком большие числа в записях в экспоненциальный формат. Экспоненциальным называется следующий формат записи числа:
Само число при этом равно Мантиссе, умноженной на 10 в степени +Порядок или -Порядок. Например, экспоненциальная форма 1.345e+9 означает 1.345x109 или 1 345 000 000. Соответственно, число 1.345e-9 равно 1.345x10-9 или 0.000000001345.
Команда runacct вызывает команды acctcon1 и acctcon2 для сохранения в файле /var/adm/wtmp записей о входе и выходе из системы, а также записей о завершении работы системы. Команда acctcon1 преобразует эти записи в записи сеансов и заносит результат в файл /var/adm/acct/nite/lineuse. Команда acctcon2 преобразует записи сеансов в итоговую запись учета ресурсов в файле /var/adm/logacct, используемую командой acctmerg для составления ежедневных отчетов.
Для создания отчета об использовании линии связи в файле /var/adm/acct/nite/lineuse запустите команду acctcon1 из командной строки с флагом -l. Для создания отчета обо всех сеансах за указанный период в файле /var/adm/acct/nite/reboots введите команду acctcon1 с флагом -o.
Команда lastlogin создает отчет о дате последнего входа в систему каждого из пользователей.
Для обработки данных, сохраненных в файле /var/adm/pacct или каком-либо другом файле, служат две команды. Команда acctprc1 преобразует ИД в имена пользователей и создает текстовые записи об использовании различных ресурсов (использование процессорного времени, средний объем памяти, объем данных ввода-вывода). Команда acctprc2 преобразует эти записи в итоговые записи учета ресурсов, которые добавляются к ежедневному отчету командой acctmerg.
Кроме того, учет ресурсов процессов позволяет получить информацию об использовании ресурсов различными командами. Для создания таких отчетов служит команда acctcms. При запуске этой команды будет показано, сколько раз была запущена каждая команда, сколько памяти и времени процессора потребовалось на ее выполнение, и насколько интенсивно использовались при этом ресурсы (величина hog factor). Команда acctcms накапливает статистическую информацию, такую как полный объем использованных ресурсов и частоту запуска отдельных команд, за длительный период времени.
Команда acctcom обрабатывает те же данные, что и команда acctcms, но выводит подробную информацию о процессах. Вы можете просматривать все записи учета ресурсов для процесса или выбрать только часть из них. Критерий выбора может учитывать использование процессора, время завершения, команду запуска, пользователя, группу и порт процесса. В отличие от прочих команд учета ресурсов, команду acctcom может запустить любой пользователь.
Записи об использовании дисковой памяти, собранные в файле /var/adm/acct/nite/dacct, добавляются в ежедневный отчет командой acctmerg.
Текстовые записи файла /var/adm/qacct могут быть преобразованы в итоговые записи учета ресурсов и добавлены в ежедневный отчет командой acctmerg.
При выполнении команды chargefee, создающей счета за такие услуги, как восстановление файлов, консультации и использование расходных материалов, в файле /var/adm/fee создаются текстовые записи учета ресурсов. Этот файл добавляется в дневной отчет командой acctmerg.
Исходные данные учета времени
соединения, использования дисков, принтеров, а также сведения для создания
счетов, объединяются в ежедневные отчеты командой acctmerg. Команда runacct
ежедневно вызывает команду acctmerg, которая создает следующие
файлы:
/var/adm/acct/nite/dacct | Промежуточный отчет, создаваемый при переполнении одного из входных файлов. |
/var/adm/acct/sum/tacct | Совокупный итоговый отчет в формате tacct. Этот файл применяется командой monacct для создания текстового итогового отчета за месяц. |
Команда acctmerg преобразует записи из текстового формата в двоичный и обратно, и объединяет записи из различных источников в единую запись для каждого пользователя.
Команда monacct
вызывается демоном cron и создает следующие файлы:
Команды учета ресурсов выполняют несколько различных задач. Примеры задач, выполняемых различными командами:
Демон cron
автоматически запускает несколько команд сбора данных об учете ресурсов:
runacct | Выполняет главную процедуру дневного учета ресурсов. Команда runacct обычно запускается демоном cron в нерабочие часы и вызывает другие команды учета ресурсов для обработки файлов данных и создания итоговых записей учета ресурсов и команд, отсортированных по имени пользователя. Кроме того, эта команда вызывает команду acctmerg для создания итоговых файлов дневного отчета, и команду ckpacct для обслуживания файлов данных о работе системы. |
ckpacct | Ограничивает размер файла pacct. Обычно бывает удобно иметь несколько небольших файлов pacct, поскольку иногда возникает необходимость перезапустить процедуру runacct после сбоя при обработке записей. Команда ckpacct проверяет размер файла данных о работе системы /var/adm/pacct и, если размер превышает 500 блоков, вызывает команду turnacct switch для временного выключения учета ресурсов процессов. Данные перемещаются в новый файл pacct, /var/adm/pacct x. (x - целое число, увеличивающееся при каждом создании нового файла pacct). Если количество свободных блоков на диске становится меньше 500, то команда ckpacct выключает учет ресурсов процессов с помощью команды turnacct off. |
dodisk | Вызывает команду acctdisk, затем diskusg или acctdusg для создания записей учета использования дисковой памяти в файле /var/adm/acct/nite/dacct. Затем эти данные объединяются в дневные отчеты. |
monacct | Создает из дневных отчетов отчет за больший промежуток времени. |
sa1 | Собирает и сохраняет двоичные данные в файле /var/adm/sa/sa dd, где dd - текущее число месяца. |
sa2 | Записывает ежедневный отчет в файл /var/adm/sa/sadd, где dd - текущее число месяца. Удаляет отчеты из файлов /var/adm/sa/sadd, созданных более недели назад. |
Приведенные ниже команды также
запускаются автоматически, но не демоном cron:
startup | Команда startup должна быть добавлена в файл /etc/rc. Эта команда выполняет процедуры запуска системы учета ресурсов. |
shutacct | Вызывает команду acctwtmp для записи в файл /var/adm/wtmp строки о прекращении учета ресурсов. Затем вызывает команду turnacct off для выключения учета ресурсов. |
Пользователь из группы adm может
выполнить следующие команды учета ресурсов:
ac | Печатает записи о времени соединения. Эта команда добавлена для совместимости с системами BSD. |
acctcom | Показывает итоговые записи учета ресурсов для процессов. Эта команда доступна всем пользователям. |
acctcon1 | Показывает итоговые записи учета ресурсов о времени соединения. Необходимо указать флаг -l или -o. |
accton | Включает и выключает учет ресурсов для процессов. |
chargefee | Создает для указанного пользователя счет для оплаты использованного количества единиц работы. Эти счета добавляются к ежедневному отчету командой acctmerg. |
fwtmp | Преобразует файлы между двоичным и текстовым форматами. |
last | Показывает информацию о предыдущих входах в систему. Эта команда добавлена для совместимости с системами BSD. |
lastcomm | Показывает информацию о последних выполненных командах. Эта команда добавлена для совместимости с системами BSD. |
lastlogin | Показывает время последнего входа в систему для каждого пользователя. |
pac | Подготавливает записи учета ресурсов принтера или графопостроителя. Эта команда добавлена для совместимости с системами BSD. |
prctmp | Показывает запись для сеанса. |
prtacct | Показывает итоговые файлы учета ресурсов. |
sa | Объединяет исходную информацию учета ресурсов для упрощения управления большими объемами данных. Эта команда добавлена для совместимости с системами BSD. |
sadc | Создает отчет о различных действиях в локальной системе, например, о работе с буфером, дисками, магнитной лентой, терминалами и файлами. |
sar | Записывает в стандартный вывод содержимое некоторых счетчиков деятельности операционной системы. Команда sar создает отчет только о локальной системе. |
time | Печатает полное, пользовательское и системное время выполнения команды. |
timex | Показывает затраченное, пользовательское время и время выполнения команды в секундах. |
Система учета ресурсов работает со следующими основными каталогами: /usr/sbin/acct, в котором находятся все программы на языке C и процедуры оболочки, необходимые для работы этой системы, и /var/adm, в котором хранятся данные, отчеты и итоговые файлы.
Файлы с данными учета ресурсов принадлежат группе adm; все файлы данных о работе системы (такие как wtmp и pacct) находятся в домашнем каталоге этой группы, /var/adm.
В каталоге /var/adm
хранятся следующие файлы:
Файлы отчетов и итоговые файлы
создаются в каталоге /var/adm/acct. Перед включением системы
учета ресурсов должны быть созданы перечисленные ниже каталоги.
Дополнительная информация приведена в разделе "Настройка
системы учета ресурсов".
Ниже описаны некоторые файлы
отчетов и итоговые файлы, создаваемые командой runacct:
active | Применяется командой runacct для сохранения состояний, предупреждений и сообщений об ошибках. Файл active. mmdd - это копия файла active, создаваемая командой runacct при обнаружении ошибки. |
cms | Содержит итоговую текстовую информацию об использовании команд, применяемую командой prdaily. |
ctacct.mmdd | Итоговые записи учета ресурсов времени соединения. |
ctmp | Записи о соединении для сеансов. |
daycms | Содержит итоговую текстовую информацию об использовании команд за день, применяемую командой prdaily. |
daytacct | Итоговые записи учета ресурсов за день. |
dacct | Итоговые записи учета ресурсов дисковой памяти, созданные командой dodisk. |
accterr | Диагностический вывод, созданный при выполнении команды runacct. |
lastdate | Дата последнего выполнения команды runacct в формате date +%m%d. |
lock1 | Применяется для управления доступом к команде runacct. |
lineuse | Отчет об использовании линий терминалов, применяемый командой prdaily. |
log | Диагностический вывод команды acctcon1. |
logmmdd | Совпадает с файлом log на момент обнаружения ошибки командой runacct. |
reboots | Содержит начальные и конечные даты из файла wtmp, а также список с указанием моментов перезапуска системы. |
statefile | Применяется для записи текущего состояния при работе команды runacct. |
tmpwtmp | Файл wtmp, исправленный командой wtmpfix. |
wtmperror | Содержит сообщения об ошибках wtmpfix. |
wtmperrmmdd | Совпадает с файлом wtmperror на момент обнаружения ошибки командой runacct. |
wtmp.mmdd | Файл wtmp за предыдущий день. Этот файл удаляется при очистке командой runacct. |
Ниже приведено описание форматов
вывода и файлов учета ресурсов:
wtmp | Файл учета ресурсов для активных процессов. Формат файла wtmp описан в файле utmp.h. |
ctmp | Записи о времени соединения. Формат вывода описан в файле ctmp.h. |
pacct* | Записи учета ресурсов для активных процессов. Формат вывода описан в файле /usr/include/sys/acct.h. |
Spacct* | Записи учета ресурсов процессов за указанную дату (mmdd), созданные командой runacct. Формат описан в файле sys/acct.h. |
daytacct | Итоговые записи учета ресурсов за день. Файл записывается в формате tacct. |
sum/tacct | Двоичный файл с информацией, полученной из итоговых записей учета использования команд за каждый день. Формат описан в файле /usr/include/sys/acct.h. |
ptacct | Объединенная версия файлов pacct. Файл записывается в формате tacct. |
ctacct | Итоговые записи учета ресурсов о времени соединения. Файл записывается в формате tacct. |
cms | Итоговые записи учета использования команд, применяемые командой prdaily, в двоичном формате. Текстовая версия хранится в файле nite/cms. |
daycms | Итоговый файл учета использования команд за день, применяемый командой prdaily, в двоичном формате. Текстовая версия хранится в файле nite/daycms. |