Statusrusage
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, см. http://www.mysql.com/doc/en/EXPLAIN.html; для 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 выше. |