Oracle V $ OSSTAT - PullRequest
       27

Oracle V $ OSSTAT

3 голосов
/ 16 октября 2008

Представление Oracle V $ OSSTAT содержит несколько статистических данных, в том числе:

  • IDLE_TICKS Число сотых секунды, в течение которых процессор простаивал, для всех процессоров
  • BUSY_TICKS Число сотых долей секунды, в течение которых процессор был занят выполнением кода пользователя или ядра, всего для всех процессоров

В документации, которую я прочитал, не было ясно, сбрасываются ли они когда-либо. Кто-нибудь знает?

Другой вопрос, который у меня возникает, заключается в том, что я хотел бы определить среднюю нагрузку на процессор, которую испытывает система. Я ожидаю, что для этого мне нужно идти:

busy_ticks / (idle_ticks + busy_ticks)

Это правильно?

Обновление от 08 ноября

Oracle 10g r2 включает в эту таблицу статистику LOAD. Он обеспечивает текущую загрузку машины на момент считывания значения. Это гораздо лучше, чем использовать другую информацию, поскольку данные * _ticks «с момента запуска экземпляра», а не на текущий момент времени.

Ответы [ 5 ]

4 голосов
/ 16 октября 2008

Вам нужно будет включить 'IOWAIT_TICKS`, если они доступны.

IDLE_TICKS - Количество сотых во-вторых, процессор простаивал, насчитывается по всем процессорам

BUSY_TICKS - Количество сотых секунды, что процессор был занят выполнением код пользователя или ядра, всего процессоры

IOWAIT_TICKS - Количество сотых секунды, что процессор ждал ввода / вывода в завершено, общее количество Процессоры

Вот запрос.

SELECT (select value from v$osstat where stat_name = 'BUSY_TICKS') /
(
   NVL((select value from v$osstat where stat_name = 'IDLE_TICKS'),0) +
   NVL((select value from v$osstat where stat_name = 'BUSY_TICKS'),0) +
   NVL((select value from v$osstat where stat_name = 'IOWAIT_TICKS'),0)
)
FROM DUAL;

10.2 и более поздние имена _TICKS были изменены на _TIME.

Накопленные значения в динамических представлениях сбрасываются при завершении работы экземпляра базы данных.

Подробнее см. Автоматическая статистика производительности и v $ OSStat .

0 голосов
/ 17 октября 2008

Зависит от вашей перспективы. Зная, что вы ищете, я думаю, вы поняли это правильно.

0 голосов
/ 17 октября 2008

Если подумать, если моя цель состоит в том, чтобы получить представление об общей загрузке машины, я бы лучше включил IOWAIT_TICKS в числитель и знаменатель, чтобы получить представление о количестве процессорного времени, недоступного для моего компьютера. работа.

SELECT (
(select value from v$osstat where stat_name = 'BUSY_TICKS') +
(select value from v$osstat where stat_name = 'IOWAIT_TICKS'))
/
(
   NVL((select value from v$osstat where stat_name = 'IDLE_TICKS'),0) +
   NVL((select value from v$osstat where stat_name = 'BUSY_TICKS'),0) +
   NVL((select value from v$osstat where stat_name = 'IOWAIT_TICKS'),0)
)
FROM DUAL;

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

0 голосов
/ 17 октября 2008

Вы правы относительно значения Busy. Я проверил одну из моих систем, и Busy равен User + Sys.

Я также подтвердил, что учетная запись Busy and Idle все время находится в моей системе (в моей системе нет IOWAIT).

0 голосов
/ 17 октября 2008

Я не уверен, что мне нужно включать USER_TICKS и SYS_TICKS.

Документация для BUSY_TICKS гласит:

"...been busy executing user or kernel code, totalled over all processors"

, что говорит о том, что BUSY_TICKS уже включает USER_TICKS и SYS_TICKS.

То же самое для NICE_TICKS - это все еще время пользователя (только более низкий приоритет).

Включение IOWAIT_TICKS, вероятно, будет необходимо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...