 | Уровень сложности: средний Эрик Ву, исследовательская группа, IBM
18.04.2008 В статье описаны, дополнительные возможности, предоставляемые AIX® Advanced Accounting для IBM® eServer™ pSeries® для учета работы процессов, логических разделов (LPAR) и транзакций. Исследователь из IBM Эрик Ву рассказывает о дополнительных утилитах AIX для ведения учета, которые можно скачать с сайта IBM alphaWorks®
. Утилиты Advanced Accounting для AIX включают в себя два Web-сервиса и одно Web-приложение. Один Web-сервис предназначен для создания отчетов, а другой - для управления функциями учета. Web-приложение действует как клиент Web-сервисов и включает в себя Java™-сервлет, который обрабатывает Web-запросы. Web-приложение также содержит JSP-страницы для представления данных и интерактивного взаимодействия с пользователем.
Введение
Сервисы на базе информационных технологий (ИТ-сервисы) обычно являются критичными для компаний и организаций. Увеличение количества пользователей, потребность в новых технологиях и усложнения в клиент-серверных системах и системах "по требованию" приводят к тому, что затраты на организацию ИТ-сервисов растут быстрее, чем другие затраты. Чтобы понять, насколько хорошо выстроено управление, необходимо понимать реальные затраты на предоставление ИТ-сервисов и управлять этими затратами профессионально. Это, в свою очередь, требует учета вычислительных ресурсов.
Большинство современных систем UNIX и Linux предоставляет в различных формах средства учета активности процессов, собирающие в файл записи о каждом завершившемся процессе, выполнявшемся на уровне ядра. Системный заголовочный файл определяет перечень собираемой информации, который включает в себя:
- ID (уникальный идентификатор) пользователя;
- ID группы;
- системное время;
- пользовательское время;
- использование памяти.
Впервые реализованная в UNIX System V и BSD, методология учета работы процессов во многих вариантах UNIX основана на разработках прошлых десятилетий, и применяемые сегодня средства командной строки примитивны, хотя и дают достаточно много информации.
Можно улучшить учет статистики работы процессов, используя интервальный учет и учет проектов. Интервальный учет улучшает учет статистики процессов за счет периодического предоставления отчетов. Это приводит к уменьшению задержек между записями, т.к. работающие в течение долгого времени процессы приложений, например, баз данных и Web-серверов, могут работать в течение месяцев без остановки. Интервальный учет позволяет собирать промежуточные данные через определенные периоды времени. Вдобавок к созданию записи учета по завершению процесса при интервальном учете периодически создаются новые записи учета статистики до самого завершения процесса. Учет проекта - это возможность записать идентификатор проекта в данные учета работы процессов. Идентификатор проекта - это поле, определяемое системным администратором и ассоциированное с процессами с использованием политики назначения для проекта. Несколько групп и пользователей могут использовать одну учетную запись, а один пользователь может использовать различные учетные записи для различных приложений. AIX® Advanced Accounting поддерживает как интервальный учет, так и учет проекта (см. первую ссылку в разделе ).
Недавние улучшения в динамических логических разделах (dynamic logical partitions, DLPAR) позволяют нескольким независимым операционным системам работать на одном сервере (см. вторую ссылку в разделе Ресурсы). Каждая операционная система работает на одном LPAR, который может иметь несколько выделенных ему физических процессоров. При изменении загрузки операционной системы объем выделенных ресурсов, включая процессоры и память, в динамическом LPAR может увеличиваться или уменьшаться без необходимости перезагрузки операционной системы. Если сервис-провайдер предоставляет каждому клиенту отдельный LPAR, то AIX® Advanced Accounting должен обеспечить учет работы LPAR для записи увеличения и уменьшения вычислительных ресурсов в процессе использования.
Когда приложение обрабатывает транзакции нескольких учетных записей, использующих разделяемый ресурс, то недостаток информации об учетной записи не позволяет операционной системе или даже приложению предоставлять точные данные об использовании ресурсов. Например, ID пользователя, обращающегося к базе данных, может использоваться всеми Web-запросами от сервера приложения. В этом случае Web-сервер или сервер приложения может определить имя и, следовательно, класс учетной записи. Класс учетной записи требуется передать во время транзакции (и ее подтранзакций) через приложения и системы по сети, и каждая запись учета транзакции, созданная с использованием возможностей дополнительного учета статистики, требует захвата класса учетной записи для обеспечения учета транзакций.
Пакет дополнительных утилит учета статистики Advanced Accounting для AIX включает в себя утилиту командной строки для вывода записей учета и создания отчетов, а также приложение на платформе Java™ 2 Enterprise Edition (J2EE), которое состоит из двух Web-сервисов и Web-приложения. Java-утилита командной строки для чтения/создания отчетов может быть запущена на любой операционной системе, которая поддерживает Java 1.4 или более новую версию, включая платформы Windows®, Linux и AIX. В последующих разделах будет описано использование утилит создания отчетов и показано, как применять приложения для учета транзакций.
Утилиты Advanced Accounting для AIX
Утилиты Advanced Accounting для AIX используют отображаемые файлы Java NIO для высокопроизводительного доступа к файлам. Например, порядок байтов (big-endian и little-endian) может быть определен, основываясь на архитектуре компьютера в отображаемых файлах Java NIO. Так как файлы учета, созданные в IBM® eServer™ pSeries®, используют порядок байтов big-endian, то и в пакете разработчика используется порядок big-endian, когда осуществляется доступ к файлам дополнительного учета в пакете.
В таблице 1 показана часть списка файлов пакета. Для J2EE-приложения учета статистики требуется разделяемая библиотека libaaa.so для конвертации идентификатора пользователя/группы в имя пользователя/группы. Детальные инструкции по установке J2EE-приложения учета статистики можно найти в файле README. Подкаталог aaa содержит несколько файлов с исходными кодами на Java для обработки записей учета.
Таблица 1. Часть списка файлов пакета
|
Имя файла
|
Описание
|
| README | Файл с инструкциями по установке | | AIXNEW.ear | Файл EAR J2EE-приложения учета статистики | | libaaa.so | Разделяемая библиотека | | aaa.jar | Файл JAR для утилиты чтения/создания отчетов | | sampleData | Пример данных учета (1 Mb) | | aaa | Каталог с примерами файлов чтения отчетов |
Для запуска из командной строки приложения Java для чтения/создания отчетов, нужно использовать следующую команду: java -cp aaa.jar aaa.Aacct [-h] [-t <tran_id>] [-s <summary_id>] [-b begin_time] [-e end_time] [-F <file_name>]. В файле README указаны tran_id и summary_id. В листинге 1 показаны команды для обработки списка записей и создания итогового отчета по пользователям. Если не указана опция -F, то по умолчанию используется файл отчета /var/aacct/acctdata. Заметим, что пакет установки содержит файл отчета sampleData. Дополнительную информацию по опциям выполнения утилиты командной строки можно найти в файле README.
Листинг 1. Команды для обработки списка записей и создания итогового отчета по пользователям
# java -cp aaa.jar aaa.Aacct -t1 -F sampleData
# java -cp aaa.jar aaa.Aacct -s0 -F sampleData
|
J2EE-приложение учета
J2EE-приложение учета включает в себя два Web-сервиса и Web-приложение, которое работает как клиент Web-сервиса. Инструкции по установке в системе AIX можно найти в файле README. Так как Web-приложение и Web-сервисы связаны отношениями "клиент - сервер", то их можно установить на различных системах. Например, можно установить Web-сервисы в системе AIX, а Web-приложение - на отличной от AIX системе. Установив J2EE-приложение, загрузите в своем Web-браузере страницу http://<machine_address>/AdvancedAccounting. Будет отображена домашняя страница J2EE-приложения учета, показанная на рисунке 1.
Рисунок 1. Домашняя страница J2EE-приложения учета
J2EE-приложение способно создавать отчеты по статистике работы процессов, LPAR и проведения транзакций. Для этого в левой панели домашней страницы имеются специальные ссылки. Также там имеется ссылка для управления возможностями учета, такими как остановка и запуск утилит учета, а также создание проектов. Поэтому пользователи, которые имеют мало опыта работы с утилитами Advanced Accounting в AIX, могут использовать это J2EE-приложение для управления и генерации отчетов. Программа имеет доступ к каталогу Web-сервисов, и пользователь может использовать Web-браузер, следуя ссылкам для учета процессов, взаимодействуя с Web-сервисом и посылая запросы. Каждая JSP-страница учета выводит список доступных файлов учета, а пользователь в интерактивном режиме выбирает из них необходимые для направления запросов.
Учет процессов Process Accounting
Для учета процессов можно создавать отчеты по:
- проектам;
- группам;
- пользователям;
- командам;
- комбинациям предыдущих четырех пунктов.
Разделяемая библиотека libaaa.so конвертирует идентификатор группы/пользователя в более понятное имя группы/пользователя. Сервис использует файл определения проекта по умолчанию /etc/project/projdef для конвертации идентификаторов проектов в имена. Также для конвертации может использоваться и указываемый пользователем файл.
Рисунок 2. JSP-страница для учета процессов
На рисунке 2 показана JSP-страница для учета процессов. JSP-страницы учета процессов отображают файлы учета, доступные на текущий момент в дополнительных возможностях учета. Также можно выбрать один или несколько файлов учета. По умолчанию отчеты создаются по всем файлам учета. В верхней половине можно выбрать предопределенные отчеты, которые могут быть созданы по проекту, группе или пользователю. В нижней половине можно выбрать комбинирование отчетов по проекту, группе, пользователю и команде. Вдобавок, каждый отчет отображает информацию о файлах учета, включая:
- время первой и последней записей;
- имя хоста;
- номер раздела;
- модель компьютера;
- серийный номер.
Таблица 2. Отчет о процессах по пользователям
|
User (ID)
|
Count
|
Elapsed time (secs)
|
Thread elapsed time (secs)
|
CPU time (secs)
|
Local file IO (MBs)
|
Other file IO (MBs)
|
| db2inst1 (108) | 106 | 274.856597 | 274.8565974 | 1.851674 | 1.470214 | 0.266301 | | dasusr1 (106) | 27244 | 16956.202063 | 16956.202063 | 256.885551 | 4206.399989 | 2.303904 | | rb (8696) | 10734 | 1279.405031 | 1279.405031 | 73.800936 | 63.884209 | 114.010237 | | root (0) | 502 | 3.521525 | 3.521525 | 1.522373 | 5.475159 | 0.061119 |
|
User (ID)
|
Count
|
Disk page (secs)
|
Real page (secs)
|
Virtual page (secs)
|
Local socket IO (MBs)
|
Remote socket IO (MBs)
|
| db2inst1 (108) | 106 | 0.0 | 30144.0 | 28771.0 | 1.619968 | 0.930296 | | dasusr1 (106) | 27244 | 0.0 | 5340690.0 | 4977788.0 | 0.0 | 194.434616 | | rb (8696) | 10734 | 0.0 | 583215.0 | 555743.0 | 0.0 | 0.621488 | | root (0) | 502 | 0.0 | 932.0 | 1323.0 | 2.389731 | 0.613404 |
В таблице 2 показан отчет по статистике работы процессов, сделанный по пользователям; в отчет не включена информация о файле учета. Отчет по пользователю включает в себя:
- общее время;
- время потока;
- время CPU;
- локальный и общий файловый ввод/вывод;
- страницы на диске;
- всего страниц.
Если используется комбинация отчета со значениями по проекту, группе, пользователю и команде (например, по пользователю и команде), каждая строка в таблице будет разбита на несколько строк, по одной на каждую команду. Интерфейс Web-сервиса также позволяет указать определенное значение проекта/группы/пользователя/команды для создание отчета.
Учет LPAR
Advanced Accounting в AIX поддерживает возможности учета LPAR, периодически создавая записи о компьютерных ресурсах, включающие:
- CPU и оперативную память;
- файловые системы;
- диски;
- сетевые интерфейсы.
Для систем с процессорами POWER5 и пакетом дополнительной виртуализации POWER (Advanced POWER Virtualization) список ресурсов включает в себя виртуальные SCSI-устройства и клиенты. Для создания записей о компьютерных ресурсах необходимо включить системный интервальный учет. Это можно сделать, воспользовавшись командой acctctl isystem 60, которая включает системный интервальный учет с созданием записей по компьютерным ресурсам каждые 60 минут. Вдобавок возможности дополнительного учета создают записи до и после изменения количества процессоров и объема оперативной памяти. Web-страница для управления возможностями учета также предоставляет Web-интерфейс для включения системного интервального учета.
Рисунок 3. JSP-страница для учета LPAR
На рисунке 3 показана JSP-страница для учета LPAR. Как и на JSP-странице для учета процессоров, для выбора доступны файлы учета и можно выбрать ресурсы в LPAR перед генерацией отчета. По умолчанию отчет составляется по всем ресурсам.
Таблица 3. Учет LPAR для CPU, оперативной памяти и файловых систем
Процессор (CPU) и оперативная память
|
Project ID
|
Count
|
CPU (secs)
|
Memory MB (secs)
|
Average utilization of large page pool
|
Page swap ins
|
Page swap outs
|
Average page rate (per second)
|
| 0 | 588 | 8304.350659 | 8.581623808E9 | NA | 5198.0 | 0 | 0.0024809999222002717 |
|
Project ID
|
Count
|
Idle time (secs)
|
IOWait time (secs)
|
SProcess time (secs)
|
UProcess time (secs)
|
Interrupt time (secs)
|
Number of IOs
| | 0 | 588 | 7983.561266 | 55.293451 | 179.127087 | 27.838338 | 58.530517 | 2.95326123E8 |
Файловые системы
| Proj_ID | Count | Device name | Mount point | DFS type | MB transferred | Number of reads/writes | Number of opens | number of creates | | 0 | 579 | /dev/hd9var | /var | 0 | 684.224503 | 1040825.0 | 404086.0 | 2164.0 | | 0 | 1 | /export/sp1n101-fs3/kryu | /farm/kryu | 18 | 0.0747 | 28.0 | 23.0 | 0.0 | | 0 | 579 | /etc/auto/maps/auto.remote | /remote | 19 | 0.0 | 0.0 | 0.0 | 0.0 | | 0 | 20 | /share/gnu | /remote/gnu5 | 18 | 0.611181 | 175 | 274 | 0.0 | | 0 | 579 | /export/sp1n101-fs2/cwu | /farm/cwu | 18 | 4272706.894652 | 3.4307896E7 | 11882.0 | 1399.0 | | 0 | 579 | /dev/hd10opt | /opt | 0 | 0.4423 | 197.0 | 63.0 | 0.0 | | 0 | 3 | /export/sp1n101-fs5/rb | /farm/rb | 18 | 0.0 | 0.0 | 10.0 | 0.0 | | 0 | 12 | /export/sp1n101-fs2/para | /farm/para | 18 | 0.508278 | 207.0 | 302.0 | 6.0 | | 0 | 579 | /proc | /proc | 6 | 0.0 | 0.0 | 0.0 | 0.0 | | 0 | 6 | /export/sp1n101-fs1/niteesh | /farm/niteesh | 018 | 0.329688 | 88.0 | 82.0 | 2.0 |
В таблице 3 показан отчет по статистике работы LPAR для CPU и оперативной памяти, а также - вследствие недостатка места лишь часть отчета - по файловой системе. Отчет по CPU и оперативной памяти включает в себя загруженность CPU в секундах и выделение оперативной памяти в MБ/сек для учета суммарного объема ресурсов, затраченных в течение некоторого времени. Если в LPAR выделяется 1000 Мбайт памяти в течение первой минуты и 2000 байтов в течение второй минуты, то выделение памяти будет составлять 180000 байтов в секунду. Другие значения отчета включают в себя:
- среднюю загруженность пула больших страниц;
- обмен страницами (входящий и выходящий потоки);
- средний коэффициент страниц;
- общее системное время;
- пользовательское время.
Отчет по файловым системам включает в себя:
- имена устройств;
- точки монтирования;
- количество переданных байтов;
- число операций чтения/записи;
- число операций открытия, создания и блокировки файлов.
Для экономии места в таблице 3 не показаны таблицы для дисков и сетевых интерфейсов. Шаблон включает в себя общее число передач данных на диск, общее число прочитанных и записанных блоков и размер блока для каждого диска и раздела. Последнее включает в себя общее число операций ввода/вывода и количество переданных байтов. Для создания собственных отчетов необходимо установить пакет утилит.
Средства управления
Назначение Web-страниц управления - управление Advanced Accounting, включая такие операции, как создание файлов учета, запуск и остановка сбора статистики, создание новых проектов. Они экспортируют интерфейсы командной строки и управления проектом через операции Web-сервиса. Критические функции, такие как createFile(), реализованы как отдельные операции Web-сервисов.
Web-сервисы помогают объединить множество шагов в единый сервис. Например, операция defineProj4App() используется для назначения приложения определенному проекту для заданного пользователя или группы. Операция включает в себя шесть шагов. Сначала открывается существующий файл администрирования в определенном каталоге, затем создается временный файл, в который UNIX sed добавляет сохраняемые команды. При запуске команды sed при наличии существующего административного файла создается новый административный файл. При успешном окончании выполнения старый файл переименовывается и сохраняется как резервная копия, а новый файл получает его имя. Также требуется удалить временный файл по окончании работы. В результате операции Web-сервиса скрывают детали и позволяют эффективно изучать и использовать возможности Advanced Accounting .
Рисунок 4. Web-страница для управления Advanced Accounting
На рисунке 4 показана Web-страница управления Advanced Accounting для выполнения таких операций, как проверка статуса, начало учета, завершение учета и создание файла учета заданного размера.
Рисунок 5. Web-страница управления проектом
На рисунке 5 показана Web-страница для управления проектом. Она похожа на страницу управления Advanced Accounting и использует тот же Web-сервис для экспорта управления проектом. Вдобавок к привязке приложения к существующему проекту здесь предлагаются такие операции, как:
- добавление нового проекта;
- получение определенных проектов;
- получение загруженных проектов;
- загрузка определенных проектов;
- запрос к определенным проектам.
Заключение
В этой статье обсуждалось три типа учета: учет работы процессов, LPAR и учет проведения транзакций. С использованием пакета дополнительных утилит учета в AIX показано, как создавать отчеты по учету процессов и LPAR. Следующая статья этой серии будет посвящена более детальному рассказу об учете транзакций и демонстрации инструментов мониторинга приложений.
Ресурсы
Об авторе  | |  | Эрик Ву (C. Eric Wu) - член команды исследователей центра IBM T.J. Watson Research center. Он получил степени M.S. И Ph.D. в Department of Computer Science and Engineering в университете штата Мичиган. Эрик написал несколько статей для IBM DeveloperWorks, с ним можно связаться по адресу cwu@us.ibm.com. |
Выскажите мнение об этой странице
|  |