rusage. Информация о затраченных ресурсах


Это поле - хеш с информацией о ресурсах сервера, затраченных на данный момент системой на обработку вашего Parser-скрипта.
Не все операционные системы умеют возвращать эти значения (WinNT/Win2000/WinXP умеет все, Win98 умеет только tv_sec и tv_usec [3.0.8]).

Ключ
Единица
Описание значения
Как уменьшить?
utime
секунда
Чистое время, затраченное текущим процессом
(не включает время, когда работали другие задачи)
Упростить манипуляции с данными внутри Parser (улучшить алгоритм, переложить часть действий на SQL-сервер)
stime
секунда
Время, сколько система читала ваши файлы, каталоги, библиотеки
Уменьшить количество и размер необходимых для работы файлов, не подключать ненужные для обработки данного документа модули
maxrss
блок
Память, занимаемая процессом
Уменьшить количество загружаемых ненужных данных.
Найти и исправить все «select * …», задав список действительно необходимых полей. Не загружать из SQL-сервера ненужные записи, отфильтровать как можно больше средствами самого SQL-сервера.


Точное системное время. Позволяет оценить траты времени на ожидание ответа от SQL-, HTTP-, SMTP-серверов.


Сколько прошло с Epoch…
Упростить SQL запросы, для MySQL воспользуйтесь EXPLAIN; для Oracle: EXPLAIN PLAN (см. документацию по серверу); для других SQL-серверов: см. их документацию.
tv_sec
секунда
…целых секунд;

tv_usec
микросекунда
(10E-6)
…еще прошло микросекунд
(миллионных долей секунды)



Рекомендуемый способ анализа
Временно добавьте в конец вашего скрипта вызов…
^rusage[total]

…вот этого метода…

@rusage[comment][v;now;prefix;message;line;usec]
$v[$status:rusage]
$now[^
date::now[]]
$usec(^v.tv_usec.
double[])
$prefix[[^now.
sql-string[].^usec.format[%06.0f]] $env:REMOTE_ADDR: $comment]
$message[$v.utime $v.stime 
$request:uri]
$line[$prefix $message 
^#0A]
^line.
save[append;/rusage.log]
$
result[]
…и проанализируйте журнал.

Для более точного анализа, добавьте вызовы…
^rusage[before XXX]
^rusage[after XXX]

…вокруг интересующего вас блока.

Примечание: для записи журнала не рекомендуется использовать веб-пространство.

WinNT/2K/XP
Под этими OS доступен ряд дополнительных значений:

Ключ
Единица
Описание значения
Как уменьшить?
ReadOperationCount
ReadTransferCount


штук
байт
Количество операций чтения с диска и суммарное количество считанных байт
Уменьшить количество и размер необходимых для работы файлов, не подключать ненужные для обработки данного документа модули.

Больше использовать SQL-сервер, меньше файлы.
WriteOperationCount
WriteTransferCount


штука
байт
Количество операций записи на диск и суммарное количество записанных байт


OtherOperationCount
OtherTransferCount



штука
байт
Количество других операций с диском (не чтения/записи) и суммарное количество переданных байт


PeakPagefileUsage
QuotaPeakNonPagedPoolUsage
QuotaPeakPagedPoolUsage
байт
Максимальное количество памяти в файле подкачки (swap-файле)
см. комментарий к maxrss выше.



User comments:

Misha v.3 02 августа 2009 17:05

вместо предлагаемого метода @rusage[] также можно пользоваться классом Erusage.p:
http://www.parser.ru/examples/erusage/

статистику генерации страниц с его помощью реализовывать несложно, для
этоно нужно в @postprocess[] добавить:
^Erusage:log[$.sFile[/путь/к/erusage.log]]

    Поддержать сайт на родительском проекте КГБ