Oproxyctl

Материал из ISPWiki

Перейти к: навигация, поиск

Содержание

Назначение

Утилита служит для управления oProxy и просмотра её внутренней статистики.

Для работы ей необходимо знать путь до сокета oProxy. Путь читается и oproxy.conf и по умолчанию равен /tmp/oproxy.sock. Поменять можно с помощью ключа --socket:

/usr/local/ispmgr/sbin/oproxyctl --socket /other/path/oproxy.sock команда

Режимы работы

Режим задаётся с помощью команд. Одновременно в командной строке можно передать несколько команд:

/usr/local/ispmgr/sbin/oproxyctl команда1 команда2

Остановка oProxy (stop daemon)

/usr/local/ispmgr/sbin/oproxyctl 'stop daemon'

Будет корректно завершена работа oProxy.

Просмотр рабочих процессов (show workers)

/usr/local/ispmgr/sbin/oproxyctl 'show workers'

Вывод будет примерно таким:

id	pid	closed_connections
0	19932	1818
1	19933	1842
2	19934	1821
3	19935	1864

id — внутренний идентификатор рабочего процесса

pid — PID процесса

closed_connections — количество завершённых соединений

Просмотр информации о бэкендах (show nodes <http|mysql>)

/usr/local/ispmgr/sbin/oproxyctl 'show nodes http'

Вывод будет примерно таким:

id	ip		active_connections	closed_connections	active
0	10.0.0.1	3			1289			on
1	10.0.0.2	4			1353			on
2	10.0.0.3	4			1410			on

ip — IP-адрес, по которому известен узел

active_connections — количество в данный момент обрабатываемых соединений

closed_connections — количество завершённых соединений

active — статус узла. off, если узел помечен как down

По аналогии, командой 'show nodes mysql' можно посмотреть статистику по рабочим узлам MySQL.

Просмотр информации об относительно текущем трафике (show traffic <http|mysql>)

Почему "об относительно текущем"? Статистика обновляется от всех рабочих процессов раз в 3 секунды. Команда может показывать информацию, устаревшую на несколько секунд.

/usr/local/ispmgr/sbin/oproxyctl 'show traffic http'
/usr/local/ispmgr/sbin/oproxyctl 'show traffic mysql'

Вывод будет примерно таким:

host			received	sent	time	requests
host.com		144872		1038753	5.12540	193
site.com		474		242807	0.00000	1
somesite.info		92		71904	0.46369	1

host (для http) — имя хоста

user (для mysql) — имя пользователя

received — сколько данных получено от клиента

sent — сколько данных передано клиенту

time — суммарное время ожидания ответа (т.е. время реакции на все запросы в сумме

requests — количество обработанных запросов

Внимание! Статистика обнуляется каждый раз, когда сбрасывается в файл статистики (если это настроено).

Обнуление статистики трафика

/usr/local/ispmgr/sbin/oproxyctl 'reset traffic'

Управление списками наблюдения

В oProxy есть возможность писать отдельные логи запросов, которые могут пригодиться для дальнейшего анализа производительности и тому подобного. Часто бывает, что у клиентов на хостинге есть перерасход ресурсов и они хотят знать, откуда эта нагрузка происходит. Для этих целей был разработан микроязык запросов к oProxy OpQL.

Допустим, по MySQL-пользователю nobody случилось превышение нагрузки на MySQL. Вы можете написать команду:

/usr/local/ispmgr/sbin/oproxyctl 'start save time, sent, query from mysql where user = "nobody" into file "/home/nobody/data/mysql_load.txt"'

С этого момента, oProxy начнёт сохранять в указанный файл все запросы к MySQL, пришедшие от пользователя nobody. Будет записано время выполнения запроса, количество посланных клиенту байт и сам запрос. Чтобы остановить запись, достаточно написать ту же команду, но в начале вместо ключевого слова start слово stop:

/usr/local/ispmgr/sbin/oproxyctl 'stop save time, sent, query from mysql where user = "nobody" into file "/home/nobody/data/mysql_load.txt"'

Запись прекратилась. Более сложный пример:

/usr/local/ispmgr/sbin/oproxyctl 'start save current_time, time/60, sent/1024/1024, host, uri
  from http
  where host = "somesite.com"
    and ((uri = "/" and time < 0.5) or (uri = "/news/" and time > 0.01))
  into file "/tmp/requests.txt";
stop save host from http into file "/tmp/all_http.txt"'

Можно посмотреть текущий список наблюдения:

/usr/local/ispmgr/sbin/oproxyctl 'show queries'

За подробностями синтаксиса, смотрите OpQL.

Опции командной строки

--socket /tmp/oproxy.sock

Путь до управляющего сокета. По умолчанию, /tmp/oproxy.sock.

--field-separator <табуляция>

Разделитель полей в выводимых данных. По умолчанию, символ табуляции.

--record-separator <новая_строка>

Разделитель записей в выводимых данных. По умолчанию, символ новой строки.

--console

Интерфейс командной строки для управления oProxy.

--help

Справка по использованию.

Была ли эта информация полезной? Да | Нет
Личные инструменты