mod_performance – список параметров

Устанавливает путь к сокету, посредством которого модуль общается с демоном. Параметр глобальный и не может переопределяться в виртуальных хостах и htaccess файлах. Значение по умолчанию logs/perfsocket — что означает, что сокет будет создан в директории logs Apache. Т.е там, где сервер складывает свои логи.

Не рекомендуется использовать значение по умолчанию,т.к. не на всех системах модуль будет иметь доступ к сокету послестарта и создания. Рекомендуется придерживаться инструкций и хранить сокет в отдельном каталоге /opt/performance/, созданном специально для нужд модуля.

Название: PerformanceSocket
Расположение в конфигурационном файле: Global
Значение по умолчанию: logs/perfsocket
Пример: PerformanceSocket /etc/httpd/logs/perf.sock

Флажок — On/Off. Если этот флажок установлен глобально, то ведется наблюдение за всеми виртуальными хостами. Если параметр глобально выключен, то возможно включение его в отдельных виртуальных хостах, тогда наблюдение будет производится только за этими хостами.

Название: PerformanceEnabled
Расположение в конфигурационном файле: Global, VirtualHost
Значение по умолчанию: Off
Пример: PerformanceEnabled On

Фильтр хостов, за которыми производится отслеживание.Список хостов через пробел.

При наличии трех условий PerformanceHostFilter, PerformanceScript, PerformanceURI условие выполняется только при положительной проверке трех фильтров. При наличии двух — условие выполняется при положительной проверке двумя фильтрами — третий не учитывается. Если не указан ни один фильтр — статистика не ведется ни для одного сайта. Отключить учет статистики можно можно установкой параметра PerformanceEnabled Off.

Название: PerformanceHostFilter
Расположение в конфигурационном файле: Global, VirtualHost
Значение по умолчанию: Null
Пример: PerformanceHostFilter example.host1.com example.host2.com …

Фильтр хостов, за которыми производится отслеживание.Список хостов через пробел. Список хостов для конфигурации с расширением php - описание.

Название: PerformanceHostFilterExternal
Расположение в конфигурационном файле: Global, VirtualHost
Значение по умолчанию: Null
Пример: PerformanceHostFilterExternal example.host1.com example.host2.com …

Регулярное выражение, для обработки только определенных выражением URI, иными словами – фильтр отслеживаемых запросов по URI(regexp синтаксис).

Название: PerformanceURI
Расположение в конфигурационном файле: Global, VirtualHost
Значение по умолчанию: Null
Пример: PerformanceURI \.html$

Фильтр отслеживаемых запросов по вызываемому скрипту(regexp синтаксис).

Название: PerformanceScript
Расположение в конфигурационном файле: Global, VirtualHost
Значение по умолчанию: Null
Пример: PerformanceScript \.php$

Хендлер веб-сервера — для вывода страницы отчета модуля. Статистика по всем хостам:

Название: PerformanceWorkHandler
Расположение в конфигурационном файле: Global, VirtualHost
Значение по умолчанию: performance-status
Пример: PerformanceWorkHandler performance-status

Хендлер веб-сервера — для вывода страницы отчета модуля. Статистика по вызываемому хосту:

Название: PerformanceUserHandler
Расположение в конфигурационном файле: Global, VirtualHost
Значение по умолчанию: user-status
Пример: PerformanceUserHandler user-status

Тип логирования — Log(сохранять информацию в лог PerformanceLog, PerformanceLogFormat), SQLite — сохранение информации в SQLite базу (PerformanceDB, PerformanceHistory), MySQL — сохранение информации в базу MySQL(PerformanceDbUserName, PerformanceDBPassword, PerformanceDBName, PerformanceDBHost, PerformanceHistory), Postgres — сохранение информации в базу PostgreSQL(PerformanceDbUserName, PerformanceDBPassword, PerformanceDBName, PerformanceDBHost, PerformanceHistory).

Название: PerformanceLogType
Расположение в конфигурационном файле: Global
Значение по умолчанию: SQLite
Пример: PerformanceLogType Log

Путь к базе данных типа – SQLite

Название: PerformanceDB
Расположение в конфигурационном файле: Global
Значение по умолчанию: logs/perfdb
Пример: PerformanceDB /etc/httpd/log/perf.db

Имя базы данных MySQL, PostgreSQL хранящей данные:

Название: PerformanceDbName
Расположение в конфигурационном файле: Global
Значение по умолчанию: perf_db
Пример: PerformanceDBName perfdb

Пользователь базы данных MySQL, PostgreSQL хранящей данные:

Название: PerformanceDbUserName
Расположение в конфигурационном файле: Global
Значение по умолчанию: perf_user
Пример: PerformanceDbUserName perf

Пароль базы данных MySQL, PostgreSQL хранящей данные:

Название: PerformanceDBPassword
Расположение в конфигурационном файле: Global
Значение по умолчанию: perf_password
Пример: PerformanceDBPassword pass

Хост базы данных MySQL, PostgreSQL хранящей данные:

Название: PerformanceDBHost
Расположение в конфигурационном файле: Global
Значение по умолчанию: localhost
Пример: PerformanceDBHost host1.com

Путь к файлу логов, где сохраняется информация по запросам в режиме Log:

Название: PerformanceLog
Расположение в конфигурационном файле: Global, VirtualHost
Значение по умолчанию: Null
Пример: PerformanceLog logs/perf.log

Формат выводимой в лог информации в режиме Log. Служебные переменные:

  • %DATE% -дата запроса,
  • %HOST% – хост запроса,
  • %URI% – uri запроса,
  • %SCRIPT% – скрипт исполняющий запрос,
  • %CPU% – использование процессора,
  • %MEM% – использование памяти,
  • %EXCTIME% – время исполнения скрипта,
  • % % – знак процента:
Название: PerformanceLogFormat
Расположение в конфигурационном файле: Global
Значение по умолчанию: [%DATE%] from %HOST% (%URI%) script %SCRIPT%: cpu %CPU%, memory %MEM%, execution time %EXCTIME%
Пример: PerformanceLogFormat [%DATE%] from %HOST% (%URI%) script %SCRIPT%: cpu %CPU%, memory %MEM%, execution time %EXCTIME%

Число дней хранения истории для SQLite, MySQL, Postgres.

Название: PerformanceHistory
Расположение в конфигурационном файле: Global
Значение по умолчанию: 30
Пример: PerformanceHistory 10

Позволяет игнорировать redirect-handler. Если для анализируемого скрипта или сайта используется mod_rewrite. Рекомендуется установить его в On:

Название: PerformanceUseCanonical
Расположение в конфигурационном файле: Global
Значение по умолчанию: Off
Пример: PerformanceUseCanonical On

Режим подсчета % CPU. Solaris – 100% – это когда загружены все ядра, например 4 ядра и одно загружено на 100%, то будет отображено 25%. Irix – 100% – это когда одно ядро загружено на 100%. Например, если 2 ядра загружены на 100%, то будет отображаться – 200%

Название: PerformanceUseCPUTopMode
Расположение в конфигурационном файле: Global
Значение по умолчанию: Irix
Пример: PerformanceUseCPUTopMode Solaris

Период выполнения демона или время перезапуска демона. В общем, временной интервал через который демон перезапустится. Необходим в случае, если демон потребляет много памяти.

В формате HH:MM:SS или HH-MM-SS или ddddd.

Если задано время, то ежедневно в это время демон будет перезапущен. Если задано число, то по истечении стольких секунд — демон будет перезапущен.

Название: PerformanceCheckDaemonTimeExec
Расположение в конфигурационном файле: Global
Значение по умолчанию: NULL
Пример: PerformanceCheckDaemonTimeExec 20:00:00

Экспериментальный параметр для MySQL базы данных. Запускает оптимизацию базы данных модуля в указанное параметром время — ежедневно. Время указывается в формате HH:MM:SS или HH-MM-SS.

Название: PerformanceFragmentationTime
Расположение в конфигурационном файле: Global
Значение по умолчанию: NULL
Пример: PerformanceFragmentationTime 20:00:00

два параметра

  1. число(в 1/100 секунды),
  2. HARD/SOFT – задает минимальное время выполнения скрипта и способ его сохранения HARD(не сохранять)/SOFT(сохранять с 0 %CPU)
Название: PerformanceMinExecTime
Расположение в конфигурационном файле: Global
Значение по умолчанию: NULL
Пример: PerformanceMinExecTime 10 SOFT

Фильтр отслеживаемых запросов по вызываемому скрипту(regexp синтаксис) для таких модулей как mod_suphp и пр.

Название: PerformanceExternalScript
Расположение в конфигурационном файле: Global, VirtualHost
Значение по умолчанию: NULL
Пример: PerformanceExternalScript \.php$

On или Off тихий режим, когда сообщения о том, что клиентский скрипт не смог соединиться с демоном или окончить сессию не падают в лог сервера

Название: PerformanceSilentMode
Расположение в конфигурационном файле: Global
Значение по умолчанию: On
Пример: PerformanceSilentMode Off

Данный параметр и режим введены для уменьшения нагрузки на свободное пространство сервера. Невозможность соединения с демоном или неоконченная сессия не критичны для сервера и запроса, а также статистики

Используется в виде PerformanceSocketPermType 600 PID или PerformanceSocketPermType 777 NOPID. Используется для режимов работы mod_performance+mod_fcgid+php-cgi. Устанавливает права на сокет, указанные в этом параметре, а также модификацию имени сокета. По умолчанию, имя сокета задается как PerformanceSocket+.pid процесса. А для режима mod_fcgid, php-cgi должен знать точный путь к сокету, и чтоб он не менялся, задается режим NOPID. Если необходимо омтавить станадртные права, то задается PerformanceSocketPermType 000 NOPID. Для изменения прав сокета без смены названия – PerformanceSocketPermType 755 PID

Название: PerformanceSocketPermType
Расположение в конфигурационном файле: Global
Значение по умолчанию: 000 PID
Пример: PerformanceSocketPermType 777 NOPID

Для слежения за птоком/процессом использовать идентификатор потока (TID) – если On или идентификатор процесса (PID), если Off:

Название: PerformanceUseTid
Расположение в конфигурационном файле: Global
Значение по умолчанию: Off
Пример: PerformanceUseTid On

Устанавливает имя хоста, которое логируется вместе с параметрами запросов. Необходимо для одной глобальной базы данных, в которую собирается статистика со многих серверов:

Название: PerformanceHostId
Расположение в конфигурационном файле: Global
Значение по умолчанию: localhost
Пример: PerformanceHostId server1

Путь к файлу пользовательских отчетов:

Название: PerformanceCustomReports
Расположение в конфигурационном файле: Global
Значение по умолчанию: NULL
Пример: PerformanceCustomReports /opt/performance/customrep.tpl

Для создания пользовательского отчета используется следующий синтаксис в файле custom.tpl:

[название отчета]
header=Fld 1|Fld 2|Fld 3;
ssql=запрос в синтаксисе SQLite;
msql=запрос в синтаксисе MySQL;
psql=запрос в синтаксисе PostgerSQL;
sort=1,2;

В квадратных скобках пишется название отчета, оно будет выводится в заголовке отчета.

Header – название и список выводимых полей по порядку в select разделенные знаком «|». В примере, первое подхваченное поле из select будет выведено в столбце Fld 1, второе в столбце Fld 2 и т.д.

Ssql, msql, psql – запросы к базе. Рекомендую использовать не прямые названия полей таблицы, а их псевдонимы. Отчет отображается, если для текущей конфигурации БД есть запрос(SSQL,MSQL,PSQL)

Соответствие поля таблицы и псевдонима:

  • id :ITEMNUMBER: – идентификатор записи
  • dateadd :DATEADD: – дата добавления записи
  • host :FORHOST: – хост, к которому осуществлялся запрос
  • uri :REQUESTURI: – URI запроса
  • script :CALLEDSCRIPT: – вызываемый скрипт
  • cpu :CPUUSAGE: – CPU в %
  • memory :MEMUSAGEINPRCT: – память в %
  • exc_time :EXECUTIONTIME: – время исполнения запроса
  • cpu_sec :CPUUSAGEINSEC:
  • memory_mb :MEMUSAGEINMB: – память в Mb
  • bytes_read :BYTESREAD:- байт прочитано
  • bytes_write :BYTESWRITE: – ,fqn pfgbcfyj
  • hostnm :HOSTNAME: – запрос осуществлялся на сервере …

Поля для фильтра:

  • :FILTER: – учитывать поля фильтра
  • :PERIOD: – учитывать введенный период
  • performance – :TBL: – псевдоним таблицы

Пример:

custom.tpl
select count(*) as t1, sum(:CPUUSAGE:)/count(*) as t2, sum(:MEMUSAGEINPRCT:)/count(*) as t3, sum(:BYTESREAD:+:BYTESWRITE:)/count(*) as t4,  :CALLEDSCRIPT:, :FORHOST: from :TBL: where :FILTER: and :PERIOD: group by :CALLEDSCRIPT:,:FORHOST:

Установить этап сбора статистики модулем. LogHook - в logtransaction hook апача или Filter - в выходном фильтре. LogHook - рекомендуется для: mpm-prefork, mpm-itk, а Filter - для mpm-worker, mpm-event.

Название: PerformanceWorkMode
Расположение в конфигурационном файле: Global
Значение по умолчанию: LogHook
Пример: PerformanceWorkMode Filter