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

$status:rusage - хеш с информацией о ресурсах сервера, затраченных на данный момент системой на обработку Parser-скрипта. Точность измерения времени в микросекундах зависит от используемой операционной системы.

Ключ
Единица
Описание значения
Как уменьшить?
utime
секунды
Чистое время, затраченное текущим процессом (не включает время выполнения других задач)
Упростить манипуляции с данными внутри Parser (улучшить алгоритм, переложить часть действий на SQL-сервер).

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

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

Найти и исправить все select * …, задав список действительно необходимых полей.

Не загружать из SQL-сервера ненужные записи, отфильтровать как можно больше средствами самого SQL-сервера.

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







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

Сколько прошло с Epoch…

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]

до и после интересующего участка кода.

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


Windows
Под ОС семейства Windows доступен ряд дополнительных значений:

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

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

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

WriteOperationCount
WriteTransferCount

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


OtherOperationCount
OtherTransferCount


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


PeakPagefileUsage
QuotaPeakNonPagedPoolUsage
QuotaPeakPagedPoolUsage

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



User comments:

Larrikin 05.08.2013 13:55

небитая ссылка на EXPLAIN выглядит, например, так:
http://dev.mysql.com/doc/refman/5.0/en/explain.html


Misha v.3 02.08.2009 17:05

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

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


In order to add comments you must register.
Copyright © 1997–2024 Art. Lebedev Studio | http://www.artlebedev.ru Дата обновления: 10.09.2024