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: |