2008-10-16 3 views
3

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

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

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

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

busy_ticks/(idle_ticks + busy_ticks) 

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

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

Oracle 10g R2 включает стат под названием НАГРУЗКИ в этой таблице. Он обеспечивает текущую нагрузку машины как на момент считывания значения. Это намного лучше, чем использование другой информации, поскольку данные * _ticks «начиная с запуска экземпляра» не относятся к текущему моменту времени.

ответ

4

Если вы хотите, вам нужно включить «IOWAIT_TICKS».

IDLE_TICKS - Количество сотых секунду, что процессор простаивает, составило более все процессоры

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

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

Здесь есть запрос.

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.

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

См. Automatic Performance Statistics и v$OSStat для получения дополнительной информации.

+0

Получает ли результат вышеуказанного запроса среднее значение процессора в oracle? – RAFA 2016-12-12 09:34:20

0

Я не уверен, что мне нужно включить 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, скорее всего, будет необходимо.

0

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

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

0

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

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

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

Смежные вопросы