3

Oracle ビュー V$OSSTAT には、次のようないくつかの操作統計が保持されます。

  • IDLE_TICKS プロセッサーがアイドル状態だった 100 分の 1 秒の数 (すべてのプロセッサーの合計)
  • BUSY_TICKS プロセッサがユーザーまたはカーネル コードの実行でビジーだった 100 分の 1 秒の数 (すべてのプロセッサの合計)

私が読んだドキュメントでは、これらがリセットされるかどうかについて明確ではありませんでした。誰か知っていますか?

もう 1 つの質問は、システムが経験している平均 CPU 負荷を計算したいということです。そうするために、私は行かなければならないと思っています:

busy_ticks / (idle_ticks + busy_ticks)

これは正しいです?

08年11月更新

Oracle 10g r2 には、このテーブルに LOAD と呼ばれる統計が含まれています。値が読み取られた時点でのマシンの現在の負荷を提供します。*_ticks データは現時点ではなく「インスタンスの開始以降」であるため、これは他の情報を使用するよりもはるかに優れています。

4

5 に答える 5

4

利用可能な場合は、「IOWAIT_TICKS」を含める必要があります。

IDLE_TICKS - プロセッサーがアイドル状態だった 100 分の 1 秒の数 (すべてのプロセッサーの合計)

BUSY_TICKS - プロセッサがユーザー コードまたはカーネル コードの実行でビジーだった 100 分の 1 秒の数 (すべてのプロセッサで合計)

IOWAIT_TICKS - プロセッサが I/O の完了を待機していた 100 分の 1 秒の数、すべてのプロセッサの合計リード

ここにクエリがあります。

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を参照してください。

于 2008-10-16T13:04:34.793 に答える
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;

これにより、マシンのIO競合または待機率が高い場合でも、誤解を招くことはなく、より多くのジョブを実行することで問題が増えることが保証されます。

于 2008-10-16T23:49:54.303 に答える
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を含める必要があるようです。

于 2008-10-16T20:31:28.573 に答える
0

あなたの視点に依存します。あなたが何を求めているかを知っているので、あなたはそれが正しいと思います。

于 2008-10-17T01:45:25.460 に答える
0

ビジー値については正しいです。システムの 1 つをチェックしたところ、Busy は User + Sys と同じです。

また、私のシステムでは常に Busy と Idle が発生していることも確認しました (私のシステムには IOWAIT がありません)。

于 2008-10-16T22:03:11.413 に答える